Vorschlag zum Erstellen eines Skripts für ein kleines Aktualisierungs-/Fortschrittsfenster für die ModellierungLiebe JMP-Community,
Ich bin daran interessiert, ein kleines Fenster zu erstellen, das angezeigt wird, wenn ich mein Modellerstellungsskript ausführe, um mir anzuzeigen, in welchem Schritt (von Tausenden) es gerade ausgeführt wird. Ich denke darüber nach, so etwas wie das folgende Skript zu erstellen, das funktioniert, aber jedes Mal ein neues Fenster erstellt.
Names Default To Here( 1 );
imax = 5;
For( i = 1, i <= imax, i++,
update_window = New Window( "Progress Update",
Text Box( " Current step " || Char( i ) || " of " || Char( imax ), <<SET font="" size=""></SET>
Natürlich ist mein Imax viel größer als 5, das ist nur ein Testskript. Ich erhalte bei jeder Iteration Folgendes (in diesem Fall fünf Fenster):

Aber wie gesagt, das würde mehrere Tausend solcher Fenster ergeben, was ich nicht möchte. Ich möchte nur den Schritt „i“ der Gesamtsumme aktualisieren.
Das Modellierungsskript ist in eine Datentabelle integriert und verfügt über eine eigene FOR-Schleife, da es eine riesige Optimierungstabelle Zeile für Zeile ausführt – imax ist die NRows() dieser Optimierungstabelle und kann in der Größenordnung von mehr als 24.000 Zeilen liegen. Ich möchte in die Hauptfor-Schleife ein Skript einfügen, das eine erstellt einzel Fenster, das auf dem Bildschirm bleibt und dem Benutzer mitteilt, in welchem Schritt „i“ es sich außerhalb von NRows() befindet. (Das Scrollen durch die Datentabelle ist mühsam, und dies scheint eine vernünftige Lösung zu sein.)
Ich brauche keinen Fortschrittsbalken oder ähnliches, sondern nur eine einfache Zahl, die sich bei jeder Iteration der Haupt-FOR-Schleife ändert. Es gibt übrigens nur eine FOR-Schleife.
Vielen Dank für Ihre Vorschläge!
DS
Betreff: Vorschlag zum Erstellen eines Skripts für ein kleines Aktualisierungs-/Fortschrittsfenster für die ModellierungAktualisieren:
Nachdem ich die JSL in dem Beitrag, auf den ich verwiesen habe, geändert hatte, konnte ich dieses Testfenster erstellen, um den Fortschritt als Balken (visuell) sowie die tatsächliche Schrittzahl X von Y anzuzeigen. Das hat Spaß gemacht!
Names Default To Here( 1 );
i = 1;
imax = 100;
dlgStatus = New Window( "Overall Modeling Progress",
V List Box(
dlg_gb = Graph Box(
Title( "Overall Modeling Progress" ),
FrameSize( 150, 15 ),
X Scale( 0, 100 ),
Y Scale( 0, 1 ),
yaxis( show major ticks( 0 ), show minor ticks( 0 ) ),
xname( "% complete" ),
yname( "" )
),
tb = Text Box(
" Current step " || Char( i ) || " of " || Char( imax ),
<<SET font="" size=""></SET>
Betreff: Vorschlag zum Erstellen eines Skripts für ein kleines Aktualisierungs-/Fortschrittsfenster für die ModellierungHallo @Mark_Bailey ,
Vielen Dank für Ihre schnelle Antwort hierzu. Perfekte Lösung!
Ich habe mich in diese Richtung bewegt, nachdem ich diesen Beitrag gelesen hatte: https://community.jmp.com/t5/Discussions/JMP-script-progress-indicator/mp/6057#M6056 . Aber ich war immer noch ein paar Schritte entfernt. Für das Testskript musste ich ein Wait() in die FOR-Schleife einfügen, weil es so schnell ging. Da die Modellierung bei jedem Schritt länger dauert, mache ich mir darüber keine Sorgen.
In einer zukünftigen Version davon werde ich es möglicherweise in einen „Fortschrittsbalken“ ändern, indem ich die Vorgehensweise des anderen Benutzers im obigen Beitrag ändere.
Danke noch einmal!,
DS
Betreff: Vorschlag zum Erstellen eines Skripts für ein kleines Aktualisierungs-/Fortschrittsfenster für die ModellierungÖffnen Sie das Fenster mit dem Update separat und vor Beginn der Iteration. Speichern Sie einen Verweis auf das Textfeld in einer Variablen. Senden Sie die Nachricht << Set Text( "new text" ) an die Referenz innerhalb der Iterationen.
Names Default To Here( 1 );
imax = 5;
update_window = New Window( "Progress Update",
tb = Text Box( "Initial message", <<SET font="" size=""></SET>