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.
Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute dovrebbe aiutarti. Anche << Chiudi finestra non è necessario quando si preme il pulsante poiché si utilizzano finestre modali.
Ho aggiunto un Eval(EvalExpr()) e pochi Expr() attorno e all'interno dell'istruzione where.:
Visualizza altro... Ciao,
Ho creato un'applicazione che coinvolge l'utente nella selezione delle colonne da utilizzare nella costruzione di un modello, per PQA selezionati, attraverso l'uso di finestre modali, come nel file JMP allegato con i dati del giocattolo e lo script intitolato "Modello per PQA selezionati e Colonne".
Questo modello dovrebbe creare un output personalizzato per ogni PQA selezionato per qualsiasi set di dati con qualsiasi ortografia dei nomi delle colonne. Quando 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, le condizioni di archiviazione e chiede se l'utente desidera visualizzare o meno il set di dati del sottoinsieme per ogni PQA - condizione di archiviazione. In altre parole, per ogni PQA selezionato, viene creato in background un set di dati di sottoinsieme. Quindi, i risultati del modello e del grafico vengono prodotti e quindi aggiunti a ogni iterazione del ciclo for a una finestra con i dati personalizzati e formattati (con le linee dell'asse y LSL e USL e le etichette dell'asse y con le 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 al suo interno (da cui dipendono i dati del sottoinsieme). Tuttavia, quando salvo gli script per tutto l'output nella finestra dello 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 sui giocattoli che ho allegato, il file
column(listDT, set_storage_condition_col)
è uguale a :Condizioni di conservazione
Inoltre, se dovessi selezionare A come pqa_val ( affinché :PQA == "A" ) e 5C come il selected_stor_cond (affinché :Condizioni di archiviazione == "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?