Ciao,
Ho creato un'applicazione che prevede che l'utente selezioni le colonne da utilizzare nella costruzione di un modello, per selezionare PQA, attraverso l'uso di finestre modali, come nel file JMP allegato con i dati del giocattolo e lo script intitolato "Model for Select PQA and Colonne".
Questo modello dovrebbe creare un output personalizzato per ogni PQA selezionato per qualsiasi set di dati con qualsiasi ortografia dei nomi delle colonne. In cui viene eseguito lo script, viene visualizzato un popup che chiede all'utente di selezionare colonne specifiche. Questa finestra è mostrata nella figura seguente:

La finestra successiva chiede all'utente di impostare i PQA, la condizione di archiviazione e chiede se l'utente desidera visualizzare il set di dati del sottoinsieme per ogni PQA - condizione di archiviazione o meno. Cioè, per ogni PQA selezionato, viene creato un set di dati di sottoinsieme in background. Quindi, i risultati del modello e del grafico vengono prodotti e quindi aggiunti ad ogni iterazione del ciclo for a una finestra con i dati personalizzati e formattati (con le linee dell'asse y LSL e USL ed etichette dell'asse y con misurazioni).

Ecco il codice dello script JSL che produce l'output dato l'input dell'utente dalle finestre sopra menzionate:
//select the data in the original data table
Names Default To Here( 1 );
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array( col9 ) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
Con la mia finestra di output creata, voglio essere in grado di salvare lo script nella tabella di dati originale con tutti i dati in essa contenuti (da cui dipendono i dati del sottoinsieme). Tuttavia, quando salvo gli script per tutto l'output nella finestra di script, ottengo i seguenti risultati:
Notare il
Where ( :PQA == pqa_val & column(listDT, set_storage_condition_col) == selected_stor_cond )
istruzione non consente allo script di funzionare.
Voglio che questa affermazione in questo script abbia l'output particolare. Ad esempio, nel set di dati del giocattolo che ho allegato, il file
column(listDT, set_storage_condition_col)
è uguale a :Condizioni di conservazione
Inoltre, se dovessi selezionare A come pqa_val ( così che :PQA == "A" ) e 5C come il cond_stor_selezionato (così che :Condizione di conservazione == "5C" ).
Tuttavia, lo script di output prodotto non esisterebbe, anche se mi riferisco all'input dell'utente. Perché JMP non scrive questi valori come in questo esempio sopra nello script per ogni particolare istanza nel ciclo?
Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute dovrebbe aiutarti. Inoltre << Chiudi finestra non è necessario quando si preme il pulsante poiché si utilizzano finestre modali.
Ho aggiunto un Eval(EvalExpr()) e pochi Expr() intorno e all'interno dell'istruzione where.:
Visualizza di più...
//select the data in the original data table
Names Default To Here(1);
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array(col9) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
Grazie mille. Non ho nemmeno pensato di usare Eval() e correlati. Leggerò sicuramente di più su questo e darò un'occhiata al link che hai fornito.