Parte del codice JSL non funziona nello script finale, ma funziona se isolataAttenzione: domanda di livello principiante
Ho una tabella dati alla quale sto aggiungendo una colonna temporanea (:Parameter_new) da riempire con le voci se viene soddisfatta una determinata condizione. Le voci che voglio quindi inserire in un'altra colonna (:Parameter_old). La mia impressione è che il codice si comporti diversamente quando fa parte dello script finale, rispetto a quando copio singole righe in uno script diverso. Quando si applica il codice dello script riga per riga, tutto funziona come previsto. Quando implementato nello script finale ottengo solo valori vuoti. Dove sbaglio?
//Code works OK
dt << New Column ("Parameter_new", character);
dt << go to( :Parameter_new ) << move selected columns( After( :Parameter_old ));
For Each Row(
If(:Parameter_old == "Parameter x",
:Parameter_new = :Parameter_old || " " || "by" || " " ||:Method_description));
dt << select where(:Parameter_old == "Parameter x");
//Code does not work and deletes all entries in column "Parameter_old", i.e. cells come out blank
//Code does however work if applied individually, line by line
:Name("Parameter_old")[dt << get selected rows] = :Parameter_new;Ingegneria della qualità e dei processiRi: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoCIAO. Sembra che ci sia stato un cambiamento nella piattaforma della community. Abbiamo contattato l'assistenza. Nel frattempo, abbiamo implementato una correzione temporanea che dovrebbe consentirti di utilizzare il pulsante come previsto. Grazie.
Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoTutti i miei blocchi di codice vengono contrassegnati per errori quando pubblico qui nei forum della community.Nello specifico, `class=" linguaggio-jsl"` all'interno del blocco viene rimosso, come di seguito
Names Default To Here( 1 );
x = [10, 50, 90];
y = [10, 90, 10];
New Window( "Line Seg Example", g = Graph Box( Line Seg( x, y ) ) );
frame = g[FrameBox( 1 )];
seg = (frame << Find Seg( Line Seg( 1 ) ));

Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoSono felice che tu sia riuscito a risolvere il problema. Per quanto riguarda la codifica a colori, sembra che tu stia utilizzando che si trova a sinistra di nella barra degli strumenti dell'editor.
Potresti aver provato a usarli entrambi sullo stesso snippet, ma solo uno funziona. Ho corretto la formattazione in entrambi i tuoi post.
Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoMi sento stupido a sapere dei Se adesso...
Inoltre, perché il mio snippet di codice JSL è tutto grigio? Come posso ottenere il carattere e i colori corretti?
dt2 << New Column ("Parameter_new", character);
dt2 << go to( :Parameter_new ) << move selected columns( After( :Parameter_old ));
For Each Row(
If( :Parameter_old == "Parameter x", :Parameter_new = :Parameter_old || " " || "by" || " " || :Method_description,
:Parameter_old != "Parameter x", :Parameter = :Parameter_old));Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoGrazie. Sembra interessante. Per favore, dammi un po' di tempo prima di sistemare i dettagli su questo approccio, poter pubblicare il mio codice iniziale in forma completa e accettare il tuo post come soluzione.
(Inoltre, perché il mio codice JSL è formattato senza colore nel mio post? Sto utilizzando l'icona per inserire snippet.)
Modifica: post meraviglioso sull'abbonamento. Non ne ero a conoscenza, ma è stata una lettura interessante. Da allora ho accettato come soluzione una mia risposta, poiché mi sembrava intuitivamente più semplice.
Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoGrazie ih, apprezzo la risposta! Ho provato entrambi, non ha funzionato. Aperto ai suggerimenti mentre si pesca nella Guida allo scripting.
Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoL'enunciato finale ha una matrice sul lato sinistro (LHS) e una colonna sul lato destro (RHS).
Hai due casi diversi: all'interno di ForEachRow e all'esterno. Se all'interno, c'è una riga implicita e la colonna si risolve in uno scalare. Se esterno, non esiste una riga implicita. Probabilmente avevi selezionato esattamente una riga quando funzionava all'interno di ForEachRow.
una matrice di colonne (LHS) supporta solo uno scalare su RHS. Non funzionerà correttamente con una matrice sull'RHS.
Puoi usare Sottoscrizione della tabella dati Invece. Ciò tratta la tabella come una matrice 2D (3 righe, 1 colonna in questo piccolo esempio).
dt = Open( "$sample_data/big class.jmp" );
dt[[2, 3, 4], {name}] = dt[[5, 6, 7], {name}];Ri: Parte del codice JSL non funziona nello script finale, ma funziona se isolatoProbabilmente JMP non sta valutando la formula in Parametro_nuovo prima di passare alla riga successiva.Prova ad aggiungere questo dopo la funzione Per ogni riga:
dt << Run Formulas;
Inoltre, potresti usare un'attesa:
Wait(0);