Suggerimento su come creare uno script per una piccola finestra di aggiornamento/avanzamento per la modellazioneCara comunità JMP,
Sono interessato a creare uno script per una piccola finestra che si apre quando eseguo lo script di creazione del modello per mostrarmi in quale passaggio (tra migliaia) è attualmente in esecuzione. Sto pensando di fare qualcosa come il seguente script, che funziona, ma crea anche una nuova finestra ogni volta.
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>
Of course, my imax is much larger than 5, this is just a test script. I get an output at each iteration of the following (five windows in this case):
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Snap2.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="Snap2.png" style="width: 254px;"><img src="https://us.v-cdn.net/6038925/uploads/images/22132iC6ED49231F83C2B5/Snap2.png" role="button" title="Snap2.png" alt="Snap2.png" /></span></SPAN>
But, as mentioned, this would make several thousand such windows, which I don't want. I'd like to update just the step "i" of the total.
The modeling script is built into a data table and has it's own FOR loop as it's running a giant tuning table one line at a time -- imax is the NRows() of this tuning table, and can be on the order of 24k+ rows. I want to insert into the main for loop a script that creates a <EM>separare</EM> window that stays on the screen and tells the user what step "i" it's at out of NRows(). (Scrolling through the data table is tedious, and this seems like a reasonable solution.)
I don't need a progress bar, or anything like that, just a simple number that changes at each iteration of the main FOR loop. There is only one FOR loop, BTW.
Thanks for your suggestions!
DS
Ri: Suggerimento su come creare script per una piccola finestra di aggiornamento/avanzamento per la modellazioneAggiornamento:
Dopo aver modificato il JSL nel post a cui ho fatto riferimento, sono riuscito a creare questa finestra di test per mostrare l'avanzamento come una barra (visuale), oltre al conteggio dei passi effettivo X di Y. È stato divertente!
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><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Snap1.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="Snap1.png" style="width: 218px;"><img src="https://us.v-cdn.net/6038925/uploads/images/22135iDC529E2F063EFA18/Snap1.png" role="button" title="Snap1.png" alt="Snap1.png" /></span></SPAN>
Ri: Suggerimento su come creare script di una piccola finestra di aggiornamento/avanzamento per la modellazioneCiao @Mark_Bailey ,
Grazie per la tua rapida risposta a questo riguardo. Soluzione perfetta!
Mi stavo muovendo in questa direzione dopo aver letto questo post: https://community.jmp.com/t5/Discussions/JMP-script-progress-indicator/mp/6057#M6056 . Ma ero ancora a pochi passi di distanza. Per lo script di test, avevo bisogno di aggiungere un Wait() nel ciclo FOR perché andava molto velocemente. La modellazione richiede più tempo ad ogni passaggio, quindi non sono preoccupato per questo.
Nella versione futura di questo, potrei cambiarlo in una "barra di avanzamento" modificando ciò che ha fatto l'altro utente nel post precedente.
Grazie ancora!,
DS
Ri: Suggerimento su come creare script di una piccola finestra di aggiornamento/avanzamento per la modellazioneAprire la finestra con l'aggiornamento separatamente e prima dell'inizio dell'iterazione. Salva un riferimento alla casella di testo in una variabile. Invia il messaggio << Set Text( "new text" ) al riferimento all'interno delle iterazioni.
Names Default To Here( 1 );
imax = 5;
update_window = New Window( "Progress Update",
tb = Text Box( "Initial message", <<SET font="" size=""></SET>