Verehrte Gäste,
Ich arbeite an einem Skript, in dem ich auf ein Berichtsfenster verweisen muss. Was ich insbesondere zu automatisieren versuche, ist die Verwendung der Simulate()-Funktion einiger Parameterschätzungen. Ich weiß, dass ich in diesem Bericht den Befehl „Simulieren“ an die Number Col Box(8) senden muss.
Das Problem, das ich habe, ist, dass ich ein Hauptfenster der Benutzeroberfläche habe, in dem der Benutzer auf ein Schaltflächenfeld klicken kann, um entweder die Parameterschätzungen zu simulieren oder sie zu booten. Das Problem besteht darin, dass es im Hauptfenster (siehe Bild unten), wenn der Benutzer auf eines der Schaltflächenfelder klickt, einen Befehl in meinem Skript gibt, mit dem ich versuche, den aktuellen Bericht abzurufen, der in einem anderen Fenster geöffnet ist.

Berichtsfenster:

Wenn Sie jedoch auf die Schaltfläche klicken, gibt der JSL-Befehl obj = Current Report() einen Verweis auf das Hauptfenster der Benutzeroberfläche zurück, NICHT auf den Bericht, auf den ich eigentlich verweisen möchte. Wenn ich auf das Berichtsfenster klicke und dann das Skript ausführe, funktioniert es.
obj = Current Report();
NBSnum = NBS << Get;
RSnum = RS << Get;
obj[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( :ColumnA ),
In( :ColumnB )
);
Es ist mir weder im Skriptindex noch bei der Suche nach einer richtigen Referenzierung des Berichts gelungen, sodass der Benutzer einfach auf das Schaltflächenfeld im Hauptfenster klicken kann.
Alle Gedanken und Ideen sind willkommen. Ich stelle mir vor, dass das einfach sein sollte, aber ich bin im Moment ratlos.
Danke!,
DS
Dies könnte Ihnen einige Ideen geben, was Sie tun könnten
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Penicillin.jmp");
dt << Fit Model(
Freq(:Count),
Y(:Response),
Effects(:"ln(dose)"n),
Personality(Generalized Linear Model),
GLM Distribution(Binomial),
Link Function(Logit),
Run
);
report_windows = Get Window List("Report");//; << Get Window Title
report_of_interest = Empty();
For Each({report_window}, report_windows,
outline_title = Try(report_window[OutlineBox(1)] << get title, "");
If(Starts With(outline_title, "Generalized Linear "),
report_of_interest = report_window;
break();
);
);
ref = report_of_interest[OutlineBox(1)] << Get Scriptable Object;
Ich denke, Sie können die Fensterliste auch verwenden, um festzustellen, welches Fenster zuletzt geöffnet wurde (wenn ich mich richtig erinnere, ist es das letzte).
Hallo @jthi ,
Toller Vorschlag, es hat funktioniert – tatsächlich reichte es aus, nur „report_of_interest“ zu erhalten, und dann konnte ich „report_of_interest“[Number Col Box(8)] aufrufen und ihm den Befehl an Simulate oder Bootstrap senden. Hat super funktioniert!
Danke für die Hilfe!,
DS