Sugerencia sobre cómo crear un script para una pequeña ventana de actualización/progreso para el modeladoQuerida comunidad JMP,
Estoy interesado en crear una pequeña ventana que aparece cuando ejecuto el script de creación de modelos para mostrarme en qué paso (entre miles) se está ejecutando actualmente. Estoy pensando en hacer algo como el siguiente script, que funciona, pero también crea una nueva ventana cada vez.
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>soltero</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
Re: Sugerencia sobre cómo crear un script para una pequeña ventana de actualización/progreso para modeladoActualizar:
Después de modificar el JSL en la publicación a la que hice referencia, pude crear esta ventana de prueba para mostrar el progreso como una barra (visual), más el recuento de pasos real X de Y. ¡Fue divertido!
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>
Re: Sugerencia sobre cómo crear un script para una pequeña ventana de actualización/progreso para modeladoHola @Mark_Bailey ,
Gracias por su rápida respuesta sobre esto. ¡Solución perfecta!
Me movía en esta dirección después de leer esta publicación: https://community.jmp.com/t5/Discussions/JMP-script-progress-indicator/mp/6057#M6056 . Pero todavía estaba a unos pasos de distancia. Para el script de prueba, necesitaba agregar Wait() en el bucle FOR porque fue muy rápido. El modelado lleva más tiempo en cada paso, así que no me preocupa esto.
En una versión futura de esto, podría cambiarlo a una "barra de progreso" modificando lo que hizo el otro usuario en la publicación anterior.
¡Gracias de nuevo!,
DS
Re: Sugerencia sobre cómo crear un script para una pequeña ventana de actualización/progreso para modeladoAbra la ventana con la actualización por separado y antes de que comience la iteración. Guarde una referencia al cuadro de texto en una variable. Envíe el mensaje << Set Text( "new text" ) a la referencia dentro de las iteraciones.
Names Default To Here( 1 );
imax = 5;
update_window = New Window( "Progress Update",
tb = Text Box( "Initial message", <<SET font="" size=""></SET>