Un outil utile pour manipuler les sorties booléennes, le ! (PAS) opérateur dans JMP peut également avoir d'autres applications utiles, telles que l'utilisation avec Contains() dans le message <
Tout d’abord, précisons ici que nous discutons de l’utilisation de ! comme un opérateur et non comme l'outil syntaxique utilisé dans Séquences d'échappement dans les chaînes entre guillemets ; dans ces cas, il ne prend pas le sens NOT.
Vous pouvez y penser ! comme n'importe quel autre opérateur dans JMP. Vous connaissez probablement les plus courants : Ajouter (+), Soustraire (-), Multiplier (*), Diviser (/), etc. D'une manière générale, un opérateur est un symbole à un ou deux caractères utilisé pour effectuer des actions arithmétiques courantes, comparer des valeurs, construire des listes, inscrire un indice dans un élément de données, envoyer des messages, concaténer des listes, des noms de portée, coller des expressions et terminer des expressions. .
Le ! (souvent appelé caractère « bang ») dans JMP est utilisé dans le code JSL comme opérateur pour indiquer un NON logique, ce qui signifie, dans le contexte de valeurs booléennes (vrai ou faux), qu'il mappe une valeur différente de zéro (ou vrai ) valeurs à 0 (ce qui signifie faux) et mappe les valeurs 0 (0 ou faux) à 1 (ce qui signifie vrai).
Voici quelques exemples simples de son utilisation :
Exemple 1 :
x = 1;
!x;
//LOG RESULT: 0
Exemple 2 :
x = 0;
!x;
//LOG RESULT: 1
Exemple 3 :
!(1 < 2);
//LOG RESULT: 0
Lorsque vous le regroupez avec d'autres opérateurs, vous pouvez le considérer comme appartenant à d'autres opérateurs « logiques » tels que OR (|) et AND (&), qui sont généralement utilisés dans les instructions If().
Exemple 1 :
x = 4;
//Check if x is NOT equal to 2 or 3
If( x != 2 & !(x == 3),
Show("Not Equal to 2 or 3"),
Show("Equal to 2 or 3")
);
//LOG RESULT: "Not Equal to 2 or 3"
Remarque : Notez ici que vous pouvez affirmer NOT Equal avec != ou en ajoutant ! avant l'expression d'égalité entière, telle que !(x==3).
Exemple 2 :
str = "hello world";
//Check if str does NOT contain the letter "o"
If (!Contains(str,"o"),
Show("Does not contain o"),
Show("Contains o")
);
//LOG RESULT: "Contains o"
Il existe de nombreuses situations dans lesquelles il peut être utile d'utiliser ! où cela ne se limite pas à vos instructions If() comme ci-dessus. Nous avons vu un exemple d'utilisation ! avec Contains(), mais allons un peu plus loin. Une utilisation classique de Contains() se situe dans le contexte d'un message << Select Where(), comme le montre cet exemple :
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
<FONT color="#000000">dt << Select Where (!Contains(:name, "A"));
</FONT>
C'est la même chose que
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
dt << Select Where (Contains(:name, "A")==0);<BR />
La première instruction « Sélectionner où » ci-dessus correspond au résultat que vous verriez si vous parcouriez le Lignes fenêtre dans l'interface utilisateur, accédez à Sélection de ligne -> Sélectionner où … puis sélectionnez l’option dans la liste déroulante de la boîte de dialogue « ne contient pas ».

Comme vous pouvez le voir dans l'exemple ci-dessus, l'utilisation de ! peut rendre le code plus concis et plus lisible ; cela fonctionne également mieux lorsque vous souhaitez combiner des instructions dans vos messages << Select Where, comme celui ci-dessous :
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" and "E", and contain letter "I"
dt << Select Where (!Contains(:name, "A") & !Contains(:name,"E") & Contains(:name, "I"));
L'opérateur NOT a de nombreuses applications utiles en JSL, alors essayez-le dans votre code. Bien sûr, n'hésitez pas à contacter le support technique de JMP si vous rencontrez des problèmes ou si vous avez des questions !