Ciao a tutti,
Ho il seguente script che richiederà di aprire un file di dati e quindi uno script da eseguire automaticamente una volta premuta la casella OK.
Names Default To Here( 1 );
New Window( "Data and Limits file",
<<MODAL></MODAL>
Se intendevo aprire più di un file di dati (2 file contemporaneamente) e quindi eseguire il singolo script assegnato ad esso, come farlo con jsl. Ad esempio, datatable1 verrà eseguito con script1 e datatable2 viene assegnato per l'esecuzione con script2
Grazie.
Oh ragazzo!Questo tipo di interfaccia sembra pieno di problemi. Cosa succede se l'utente sceglie 10 file di dati e solo 8 script o viceversa? Cosa succede se l'utente desidera eseguire 3 diversi script (analisi) su un file o seleziona 10 file di dati ma desidera eseguire le stesse analisi su ciascuno?Non conosco il tuo caso d'uso, tuttavia, creerei una finestra di dialogo, con 3 elementi in una visualizzazione orizzontale: 1) un elenco di selezione dei file in
/Test , 2) una casella di pulsanti, chiamata "Seleziona" o "Analizza" e 3) un elenco di selezione con gli script sulla destra.
L'utente seleziona i file desiderati su ciascun lato, quindi preme il pulsante "Seleziona". Ogni selezione creerebbe un elenco di due elementi, un elenco dei file di dati selezionati e un elenco degli script e li memorizzerebbe in un altro elenco chiamato sel_List (o altro oggetto, un array associativo o una tabella di dati). L'intento è che ogni script venga eseguito su ciascun file di dati per una determinata selezione. Se i file utilizzati sono 1:1, consentire solo una selezione in ciascuna casella di riepilogo, ovvero selezionare un file di dati, selezionare un file jsl, quindi premere "Seleziona".
Premendo "Ok" inizierà l'elaborazione su ciascuna selezione, utilizzando cicli for nidificati:
- For(i=1, i<=nitems(sel_Lista), i++,
- For(j=1, j<=nitems(sel_List[i][1]), j++, //apri (sel_List[i][1][j] ); //apri una tabella di dati
- For(k=1, k<=nitems(selLista[i][2]), k++,
- Include(sel_Lista[i][2][k]); // include le esecuzioni nella tabella dati corrente
- Salva/o journal e probabilmente chiudi le finestre di analisi
- ); // termina per k. Utilizzando include, il file JSL viene eseguito ma non aperto.
- ); //end for j close(selList[i][1][j]) chiude la tabella dati
- ); // termina per i
Se si utilizza JMP 14, Multiple File Import() potrebbe essere utile.
Ho allegato uno script (ha il nome App, ma non è un componente aggiuntivo) che non ha l'interfaccia sopra descritta, ma potrebbe darti qualche idea su come creare la finestra di selezione. [È stato scritto per il capitolo 2 di JSL Companion].
Buona fortuna!
Se esiste davvero solo 1 script associato per ciascun file o tipo di file, non farei in modo che l'utente lo selezioni, ma creerei la logica con convenzioni di denominazione ecc.
Comunque, i miei 2 centesimi.