So che in JSL posso cambiare il flag Suppress Eval su singole colonne per evitare che la formula di quella colonna venga valutata.Ciò è utile per formule complesse che richiedono un po 'di tempo per essere valutate.Posso valutare una volta e sopprimerlo, ma mantenere intatta la formula in modo da poter tornare indietro e valutare di nuovo più tardi, se necessario.
In alcune situazioni, quando eseguo operazioni che ripetono su più colonne, vorrei conoscere lo stato corrente del flag Suppress Eval senza modificarlo effettivamente.Non sono riuscito a trovare alcun modo per estrarre queste informazioni.Posso impostare il valore su 1 o 0, ma non posso attivarlo e non posso ottenere il valore corrente.È 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 a 1 e la riga "col << Supress Eval" viene eseguita, viene visualizzato il seguente avviso:
Un messaggio con un argomento booleano vuoto ha abilitato un'opzione che era già abilitata. Questa opzione rimane abilitata. Nelle versioni precedenti di JMP, questo avrebbe disabilitato l'opzione.
Pertanto, nelle versioni precedenti di JMP questa opzione poteva essere attivata, 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 [Boolean] [Scripting Only]
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?
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>
È un modo intelligente per farlo.Grazie!