Je sais que dans JSL, je peux modifier l'indicateur Suppress Eval sur des colonnes individuelles pour empêcher l'évaluation de la formule de cette colonne.Ceci est utile pour les formules complexes dont l'évaluation prend un certain temps.Je peux évaluer une fois et le supprimer, mais garder la formule intacte afin que je puisse revenir en arrière et réévaluer plus tard si nécessaire.
Dans certaines situations, lorsque je fais des opérations qui itèrent sur plusieurs colonnes, je voudrais connaître l'état actuel de l'indicateur Suppress Eval sans le changer 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, 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:
Suppress Eval [Boolean] [Scripting Only]
Cela signifie donc que c'est une fonction qui accepte un argument booléen, ne renvoie pas de valeur et n'est accessible qu'à partir du script?Y a-t-il un moyen d'obtenir la valeur?
Je ne connais pas un moyen direct de l'obtenir, mais ce morceau de code idiot fonctionnera pour cela;
suppresseval = contains(char(:<YOURCOLUMNNAME> <<GET script=""></GET></YOURCOLUMNNAME>
C'est une manière intelligente de le faire.Merci!