Come eseguire lo script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?Ho dati in arrivo simili alla tabella dati allegata.
Vorrei (ad esempio)
- salva i valori delle righe che appaiono (primo/in alto) nella colonna Breakdown_5 rispetto alle righe USL/LSL (sotto Etichetta) per T5 (sotto TestStage) come limiti nella proprietà della colonna Breakdown_5, allo stesso modo
- salva i valori delle righe che appaiono (primo/in alto) nella colonna Resistance_7 rispetto alle righe USL/LSL (sotto Etichetta) per S7 (sotto TestStage) come limiti nella proprietà della colonna Resistance_7
- salva i valori delle righe visualizzati (primo/in alto) nella colonna Current_7 rispetto alle righe USL/LSL (sotto Etichetta) per S7 (sotto TestStage) come limiti nella proprietà della colonna Current_7
- salva i valori delle righe visualizzati (primo/in alto) nella colonna Current_11 rispetto alle righe USL/LSL (sotto Etichetta) per W11 (sotto TestStage) come limiti nella proprietà della colonna Current_11
- salva i valori delle righe che appaiono (primo/in alto) nella colonna Capacitance_6 rispetto alle righe USL/LSL (sotto Etichetta) per U6 (sotto TestStage) come limiti nella proprietà della colonna Capacitance_6
In generale, come posso scrivere uno script in JSL per applicare i limiti delle specifiche corrispondenti alle righe LSL/USL (sotto Etichetta) che appaiono (prima/in alto) sotto le colonne di dati misurati (Breakdown_#, Resistance_#, Current_# e così via on) corrispondente al TestStage# corretto, dove # si riferisce al numero della fase di test.

Automazione e scriptingfinestreRi: Come eseguire uno script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?Ecco uno script che funziona con i dati di esempio
Names Default To Here( 1 );
dt = Data Table( "exampleDataSummary" );
// Find all numeric columns and place in a list
numColList = dt << get column names( numeric, string );
// Find the unique values of TestStage
Summarize( dt, tstStage = By( :TestStage ) );
// Loop across all test stages and match with response column
stageNumber = "";
For Each( {Stage}, tstStage,
stageNumber = Substr( Stage, 2 );
resCol = "";
For Each( {col}, numColList,
If( Word( -1, col, "_" ) == stageNumber,
resCol = col
);
// Get LSL and USL
If( resCol != "",
theLSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]];
theUSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "USL" ))[1]];
Show( theLSL, theUSL );
Eval(
Substitute(
Expr(
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ )} )
),
Expr( _LSL_ ), theLSL,
Expr( _USL_ ), theUSL
)
);
);
);
);Ri: Come eseguire uno script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?@txnelson Sì grazie. Lo script funziona con il file di dati di esempio. Ho due domande.
1. Mi sono appena reso conto che i nomi dei parametri (colonne) misurati possono essere nel formato Resistance_Null_Port_7, Capacitance_Full_Plate_6 ecc. Come modificare lo script quando è presente più di un carattere di sottolineatura nei nomi delle colonne prima che il numero TestStage arrivi alla fine. Immagino che l'implementazione della funzione Word () debba essere modificata, ma ho difficoltà a gestirla (è un po' confuso non averlo usato prima).
2. Come abilitare "Mostra come linee di riferimento del grafico" a livello di codice per ciascuna colonna una volta applicati i limiti? So come farlo manualmente tramite Gestisci limiti specifiche (). Sono su JMP 16.2.
Ri: Come eseguire uno script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?Vai all'indice degli script per trovare i dettagli sulle varie funzioni che ho utilizzato nello script che ho fornito.Alla funzione Word(), come l'ho usata, non importa quanti "_" ci sono nei nomi.Il primo termine nella funzione Word(), come la sto usando, è -1, che indica alla funzione di prendere la prima parola, a partire dalla fine della stringa.
Per indicare a JMP di visualizzare automaticamente i valori come linee di riferimento, il parametro "Show()" nella specifica Spec Limits.
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show(1)} )
Per favore, prenditi il tempo necessario per studiare lo script che ho fornito, per aiutarti a diventare uno scripter più efficiente.
Ri: Come eseguire uno script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?@txnelson Sto studiando il tuo codice e grazie per aver spiegato come funziona Word ().
Finora lo script non funziona per i miei dati effettivi (che differiscono solo nei nomi effettivi delle colonne, ovvero con più caratteri di sottolineatura).
Il problema è che lo script viene eseguito senza generare errori sui miei dati effettivi e non c'è nulla nel registro a differenza di quando eseguo lo stesso script sulla tabella dati di esempio allegata qui. Quindi non c'è nulla a cui aggrapparmi per il debug.
Avevo già provato show (1) per mostrare i limiti da abilitare "Mostra come linee di riferimento del grafico" a livello di codice. Esso non funziona per me in JMP 16.2 utilizzando i dati di esempio pubblicati qui.
Proverò a eseguire il debug dello script e tornerò da te se trovo qualcosa. Sarebbe utile avere qualche indicazione per il debug in assenza di qualcosa nel log.
Ri: Come eseguire uno script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?Errore mio, cambia
mostra(1)
A
mostra limiti(1)
Ri: Come eseguire uno script per applicare i valori limite delle specifiche visualizzati in una colonna alla propria proprietà in base alle etichette su altre colonne?@txnelson Avevo bisogno di cambiare
Substr( )
affinché lo script funzioni per i miei dati effettivi. Tuttavia, show (1) non mostra ancora i limiti quando viene tracciata una distribuzione per qualsiasi parametro misurato.
Anche quanto segue non funziona sul mio JMP16.2, ovvero la visualizzazione dei limiti non è abilitata "Mostra come linee di riferimento del grafico" nelle proprietà della colonna.
dt=Open("$SAMPLE_DATA/Process Measurements.jmp");
Column(dt, "Process 2")<<SET property=""></SET>Tuttavia, questo fa il lavoro.
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )})