Salut tout le monde,
J'ai le script suivant qui m'invitera à ouvrir un fichier de données, puis un script à exécuter automatiquement une fois que j'aurai cliqué sur la case OK.
Names Default To Here( 1 );
New Window( "Data and Limits file",
<<MODAL></MODAL>
Si j'avais l'intention d'ouvrir plus d'un fichier de données (2 fichiers à la fois), puis d'y exécuter un script individuel, comment le faire avec jsl. Par exemple, datatable1 s'exécutera avec script1 et datable2 est chargé de s'exécuter avec script2
Merci.
Oh mec!Ce type d’interface semble semé d’embûches. Que se passe-t-il si l'utilisateur sélectionne 10 fichiers de données et seulement 8 scripts, ou vice versa ? Que se passe-t-il si l'utilisateur souhaite exécuter 3 scripts (analyses) différents sur un fichier, ou sélectionne 10 fichiers de données mais souhaite exécuter les mêmes analyses sur chacun ?Je ne connais pas votre cas d'utilisation, cependant, je créerais une boîte de dialogue, avec 3 éléments dans un affichage horizontal : 1) une liste de sélection des fichiers dans
/Test , 2) une boîte de boutons, appelée "Sélectionner" ou "Analyser", et 3) une liste de sélection avec les scripts à droite.
L'utilisateur sélectionne les fichiers souhaités de chaque côté, puis appuie sur le bouton "Sélectionner". Chaque sélection créerait une liste de deux éléments, une liste des fichiers de données sélectionnés et une liste des scripts et les stockerait dans une autre liste appelée sel_List (ou un autre objet, un tableau associatif ou une table de données). L'objectif est que chaque script soit exécuté sur chaque fichier de données pour une sélection donnée. Si vos fichiers d'utilisation sont 1:1, autorisez une seule sélection dans chaque zone de liste, c'est-à-dire sélectionnez un fichier de données, sélectionnez un fichier JSL, puis appuyez sur "Sélectionner".
En appuyant sur "Ok", le traitement de chaque sélection commencerait, en utilisant des boucles for imbriquées :
- Pour(i=1, i<=nitems(sel_List), i++,
- For(j=1, j<=nitems(sel_List[i][1]), j++, //open (sel_List[i][1][j] ); //ouvre une table de données
- Pour(k=1, k<=nitems(selList[i][2]), k++,
- Inclure(sel_List[i][2][k]); // inclut les exécutions sur la table de données actuelle
- Enregistrer/ou journaliser et probablement fermer les fenêtres d'analyse
- ); // fin pour k. En utilisant include, le fichier JSL est exécuté mais pas ouvert.
- ); //fin pour j close(selList[i][1][j]) ferme la table de données
- ); // fin pour moi
Si vous utilisez JMP 14, Multiple File Import() peut être utile.
J'ai joint un script (qui porte le nom App, mais n'est pas un complément) qui n'a pas l'interface décrite ci-dessus, mais qui pourrait vous donner quelques idées sur la façon de créer la fenêtre de sélection. [Il a été écrit pour le chapitre 2 de JSL Companion].
Bonne chance!
S'il n'y a vraiment qu'un seul script associé à chaque fichier ou type de fichier, je ne demanderais pas à l'utilisateur de le sélectionner, mais d'intégrer la logique avec les conventions de dénomination, etc.
Quoi qu'il en soit, mes 2 cents.