Suggestion sur la façon de créer un script pour une petite fenêtre de mise à jour/de progression pour la modélisationChère communauté JMP,
Je suis intéressé par le script d'une petite fenêtre qui apparaît lorsque j'exécute mon script de construction de modèle pour me montrer à quelle étape (parmi des milliers) il est en cours d'exécution. Je pense faire quelque chose comme le script suivant, qui fonctionne, mais crée également une nouvelle fenêtre à chaque fois.
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>
Bien sûr, mon imax est bien supérieur à 5, ce n'est qu'un script de test. Je reçois une sortie à chaque itération de ce qui suit (cinq fenêtres dans ce cas):

Mais, comme mentionné, cela ferait plusieurs milliers de telles fenêtres, ce que je ne veux pas. Je voudrais mettre à jour juste l'étape "i" du total.
Le script de modélisation est intégré dans une table de données et possède sa propre boucle FOR car il exécute une table de réglage géante une ligne à la fois -- imax est le NRows() de cette table de réglage et peut être de l'ordre de 24k+ lignes. Je veux insérer dans la boucle for principale un script qui crée un seul fenêtre qui reste à l'écran et indique à l'utilisateur à quelle étape "i" il se trouve de NRows(). (Faire défiler le tableau de données est fastidieux, et cela semble être une solution raisonnable.)
Je n'ai pas besoin d'une barre de progression, ou quoi que ce soit du genre, juste un simple nombre qui change à chaque itération de la boucle FOR principale. Il n'y a qu'une seule boucle FOR, BTW.
Merci pour vos suggestions !
DS
Re : Suggestion sur la façon de créer un script pour une petite fenêtre de mise à jour/de progression pour la modélisationMise à jour:
Après avoir modifié le JSL dans le message que j'ai référencé, j'ai pu créer cette fenêtre de test pour afficher la progression sous forme de barre (visuelle), plus le nombre réel de pas X de Y. C'était amusant!
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>
Re : Suggestion sur la façon de créer un script pour une petite fenêtre de mise à jour/de progression pour la modélisationSalut @Mark_Bailey ,
Merci pour votre réponse rapide à ce sujet. Solution parfaite !
J'allais dans cette direction après avoir lu ce post: https://community.jmp.com/t5/Discussions/JMP-script-progress-indicator/mp/6057#M6056 . Mais, j'étais encore à quelques pas. Pour le script de test, j'avais besoin d'ajouter un Wait () dans la boucle FOR car cela allait si vite. La modélisation prend plus de temps à chaque étape, donc je ne suis pas inquiet à ce sujet.
Dans la future version de ceci, je pourrais le changer en "barre de progression" en modifiant ce que l'autre utilisateur dans le message ci-dessus a fait.
Merci encore!,
DS
Re : Suggestion sur la façon de créer un script pour une petite fenêtre de mise à jour/de progression pour la modélisationOuvrez la fenêtre avec la mise à jour séparément et avant le début de l'itération. Enregistrez une référence à la zone de texte dans une variable. Envoyez le message << Set Text( "new text" ) à la référence à l'intérieur des itérations.
Names Default To Here( 1 );
imax = 5;
update_window = New Window( "Progress Update",
tb = Text Box( "Initial message", <<SET font="" size=""></SET>