Je sais qu'en JSL, je peux modifier l'indicateur Supprimer l'évaluation sur des colonnes individuelles pour empêcher l'évaluation de la formule de cette colonne. Ceci est utile pour les formules complexes qui prennent un certain temps à évaluer. Je peux effectuer une évaluation une fois et la supprimer, mais garder la formule intacte afin de pouvoir revenir en arrière et effectuer une nouvelle évaluation plus tard si nécessaire.
Dans certaines situations, lorsque j'effectue des opérations qui parcourent plusieurs colonnes, j'aimerais connaître l'état actuel de l'indicateur Supprimer l'évaluation sans le modifier réellement. Je n'ai trouvé aucun moyen d'extraire ces informations. Je peux définir la valeur sur 1 ou 0, mais je ne peux pas la basculer et je ne peux pas obtenir la valeur actuelle. Est-ce possible ?
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.
J'ai également remarqué que si Supress Eval est déjà défini sur 1 et que la ligne « col << Supress Eval » s'exécute, l'avertissement suivant s'affiche :
Un message avec un argument booléen vide a activé une option qui était déjà activée. Cette option reste activée. Dans les versions précédentes de JMP, cela aurait désactivé l'option.
Ainsi, dans les versions précédentes de JMP, cette option pouvait être activée ou désactivée, mais cette fonctionnalité a été supprimée.
J'ai également regardé la sortie de Show Properties(col) et je n'ai trouvé qu'une seule référence à Supress Eval :
Supprimer l'évaluation [booléen] [script uniquement]
Cela signifie donc qu'il s'agit d'une fonction qui accepte un argument booléen, ne renvoie pas de valeur et n'est accessible qu'à partir d'un script ? Existe-t-il un moyen d'obtenir la valeur ?
C'est une façon intelligente de le faire.Merci!
Je ne suis pas au courant d'un moyen direct de l'obtenir, mais ce morceau de code idiot fonctionnera pour cela;
suppresseval = contains(char(:<YOURCOLUMNNAME> <<GET script=""></GET></YOURCOLUMNNAME>