|
|
|
|
|
- Utilisation
- Utilisation du mode optimisé par défaut
- Règles
- Notes
- Variable numérique
- Variable chaîne
- Priorité
Les opérateurs logiques sont les suivants : | | | Multiplication logique. Les conditions composées de ET sont toujours évaluées dans leur totalité (même si la première condition est fausse). | | Multiplication logique. Les conditions composées de _ET_ sont évaluées de manière optimisée. Si la première partie de l'expression est fausse, la suite de l'expression n'est pas évaluée. | | Addition logique. Les conditions composées de OU sont toujours évaluées dans leur totalité (même si la première condition est vraie). | | Addition logique. Les conditions composées de _OU_ sont évaluées de manière optimisée. Si la première partie de l'expression est vraie, la suite de l'expression n'est pas évaluée. | | Négation logique. | | Correspond à la combinaison des opérateurs OU et '='. DANS permet d'effectuer une comparaison d'un élément par rapport à une liste d'expressions. Toutes les expressions de la liste sont évaluées. Pour plus de détails, consultez Instruction SI. | | Correspond à la combinaison des opérateurs OU et '='. _DANS_ permet d'effectuer une comparaison optimisée d'un élément par rapport à une liste d'expressions. Les expressions de la liste sont évaluées de gauche à droite. Dès qu'une expression remplie la condition, le reste des expressions n'est pas évalué. Pour plus de détails, consultez Instruction SI. |
Les opérateurs logiques permettent d'effectuer des opérations logiques et de construire des conditions. SI Client.Ville = "Montpellier" ET Client.Civilité = "Monsieur" ALORS HommeMontpellier ++ // Nombre d'hommes habitant à Montpellier FIN SI Client.Ville = "Montpellier" OU Client.Ville = "Lyon" ALORS MontpellierLyon ++ // Nombre de clients habitant soit à Montpellier, // soit à Lyon FIN
Utilisation du mode optimisé par défaut A partir de la version 2024, il est possible d'utiliser le mode optimisé des opérateurs ET, OU et DANS par défaut (sans utiliser la syntaxe _ET_, _OU_ et _DANS_). Il suffit pour cela d'activer l'option "Optimisation évaluation optimisée des expressions booléennes (ET, OU, DANS)" dans l'onglet "Compilation" de la fenêtre de description du projet (voir Description du projet : Onglet Compilation). Remarque : Cette option est automatiquement activée dans tous les nouveaux projets créés à partir de la version 2024. Vrai ET Vrai : retourne Vrai (idem _ET_) Vrai ET Faux : retourne Faux(idem _ET_) Vrai OU Vrai : retourne Vrai(idem _OU_) Vrai OU Faux : retourne Vrai(idem _OU_) PAS Vrai : retourne Faux Variable numérique Si une variable numérique est manipulée comme un opérateur logique (booléen), "0" est équivalent à Faux. Toute autre valeur est équivalente à Vrai. Par exemple, les deux lignes de code suivantes sont équivalentes :
SI NumTest <> 0 ALORS ...
La première syntaxe (SI NumTest ALORS) doit être préférée à la seconde syntaxe. Variable chaîne Si une variable chaîne est manipulée comme un opérateur logique, une erreur du WLangage sera générée. Par exemple, la syntaxe : "SI ChTest ALORS" retournera une erreur lors de l'exécution (mais pas lors de la compilation du projet). Priorité Les opérateurs ET et OU, _ET_ et _OU_ ont la même priorité. Pour donner des priorités à ces opérateurs, il suffit de mettre des parenthèses. Par exemple :
SI (A = 2 ET B > 3) OU (A = 2 ET B < 0) ALORS ... Exceptions : - Dans les filtres SQL et les requêtes SQL, l'opérateur ET est prioritaire sur l'opérateur OU.
Par exemple :
Condition1 ET Condition2 OU Condition3 sera évalué ainsi :
(Condition1 ET Condition2) OU Condition3 - L'addition logique optimisée _OU_ ne doit pas être utilisée si une des expressions à comparer utilise le résultat d'une fonction pouvant renvoyer NULL.
Par exemple, la comparaison suivante :
SI AppelFonction() = "Valeur1" _OU_ AppelFonction() = "Valeur2" ALORS... devra être remplacée par le code suivant si la fonction AppelFonction peut renvoyer la valeur NULL :
SI AppelFonction() = "Valeur1" OU AppelFonction() = "Valeur2" ALORS...
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|