So che in JSL posso modificare il flag Suppress Eval su singole colonne per impedire che la formula di quella colonna venga valutata. Questo è utile per formule complesse che richiedono un po' di tempo per essere valutate. Posso valutare una volta e sopprimerla, ma mantenere la formula intatta in modo da poter tornare indietro e valutare di nuovo in seguito, se necessario.
In alcune situazioni, quando eseguo operazioni che iterano su più colonne, vorrei conoscere lo stato attuale del flag Suppress Eval senza modificarlo effettivamente. Non sono riuscito a trovare un modo per estrarre queste informazioni. Posso impostare il valore su 1 o 0, ma non posso alternarlo e non riesco a ottenere il valore attuale. È possibile?
Names Default To Here(1);
dt = Current Data Table();
col = Column(dt, "myColumn");
col << Suppress Eval(1); //suppresses formula eval
col << Suppress Eval(0); //un-suppresses formula eval
suppress_state = col << Suppress Eval; //does not work as expected. sets suppress eval to 1.
Show(suppress_state); //prints "suppress_state = Scriptable[]" in the log. current state not returned.
Ho anche notato che se Supress Eval è già impostato su 1 e viene eseguita la riga "col << Supress Eval", viene visualizzato il seguente avviso:
Un messaggio con un argomento booleano vuoto ha abilitato un'opzione che era già abilitata. Tale opzione rimane abilitata. Nelle versioni precedenti di JMP, ciò avrebbe disabilitato l'opzione.
Nelle versioni precedenti di JMP questa opzione poteva essere attivata o disattivata, ma questa funzionalità è stata rimossa.
Ho anche esaminato l'output di Show Properties(col) e ho trovato solo un riferimento a Supress Eval:
Sopprimi Eval [Booleano] [Solo script]
Quindi questo significa che è una funzione che accetta un argomento booleano, non restituisce un valore ed è accessibile solo da Scripting? C'è un modo per ottenere il valore?
Questo è un modo intelligente per farlo.Grazie!
Non sono a conoscenza di un modo diretto per ottenerlo, tuttavia questo stupido pezzo di codice funzionerà per questo;
suppresseval = contains(char(:<YOURCOLUMNNAME> <<GET script=""></GET></YOURCOLUMNNAME>