PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Sortir d'une instruction SELON
  • SELON avec test sur une condition
  • Mot-clé OU
  • Mot-clé AUTRE CAS
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
L'instruction conditionnelle SELON permet de choisir d'exécuter une action en fonction de la valeur d'une expression.
Deux syntaxes sont disponibles pour cette instruction :
  • Syntaxe complète
  • Syntaxe simplifiée pour une valeur entière de valeurs consécutives.
Versions 16 et supérieures
WINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible pour les applications Windows Phone.
Nouveauté 16
WINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible pour les applications Windows Phone.
WINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible pour les applications Windows Phone.
Versions 17 et supérieures
WINDEV MobileiPhone/iPad Cette fonctionnalité est disponible pour les applications iPhone/iPad.
Nouveauté 17
WINDEV MobileiPhone/iPad Cette fonctionnalité est disponible pour les applications iPhone/iPad.
WINDEV MobileiPhone/iPad Cette fonctionnalité est disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible en mode Windows Store apps.
WINDEV MobileWidget Android Cette fonctionnalité est disponible en mode Widget Android.
Nouveauté 18
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible en mode Windows Store apps.
WINDEV MobileWidget Android Cette fonctionnalité est disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible en mode Windows Store apps.
WINDEV MobileWidget Android Cette fonctionnalité est disponible en mode Widget Android.
Versions 21 et supérieures
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Nouveauté 21
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Cette fonctionnalité est disponible en mode Apple Watch.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Exemple
SELON Quantité
        CAS 1 : Comment = "Profitez des promotions : 2 produits pour le prix d'un"
        CAS 2 : Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"
        AUTRE CAS : Comment = ""
FIN
SELON Valeur
        CAS 10 : Trace(10)
        CAS 10<*<20 : Trace("Compris entre 10 et 20")
       CAS >30 : Trace("Supérieur à 30")
FIN
SELON Quantité
        CAS A 8:         // Valeur inférieure ou égale à 8
                        Comment = "Un cadeau pour tout achat"
        CAS 9,10:        // Valeur égale à 9 ou 10
                        Comment = "Profitez des promotions : 2 produits pour le prix d'un"
        CAS 11 A 20         // Valeur comprise entre 11 et 20 (inclus)
                        Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"
       CAS > 20:        // Valeur supérieure à 20
                        Comment = ""
FIN
// Syntaxe simplifiée : Combo_Sel contient des chiffres de 1 à 5
// Selon le chiffre sélectionné, un prénom est affiché
Valeur est un entier  = COMBO_sel[COMBO_sel]
Résultat1 est une chaîne = ""
Résultat1 = SELON (Valeur, "Zoé", "Emma", "Camille", "Frédéric", SINON "Pas trouvé")
Syntaxe

Syntaxe complète Masquer les détails

SELON <Variable de comparaison>
  CAS <Expression 1> : <Action 1>

  CAS <Expression 2> :
      <Action 2.1>
      <Action 2.2>

  CAS <Expression 3>
      <Action 3.1>
      <Action 3.2>
      <Action 3.3>

  CAS <Expression 4>, <Expression 5> : <Action 4>

  CAS <Expression 6>, <Expression 7> :
      <Action 5>

  CAS <Expression 8>, <Expression 9>
      <Action 6.1>
      <Action 6.2>

  CAS <Expression minimale> A: <Action 7>

  CAS A <Expression maximale> : <Action 8>

  CAS <Expression minimale> A <Expression maximale> : <Action 9>

  CAS [= / ~= / ~~ / [= / > />= / < / <= / [~ / [~~ ] <Expression 10> : <Action 10>

  CAS <Expression minimale> [<= * <=] [< * <=] [<= * <] [< * <]  <Expression maximale> : <Action 11>

  ...
  [
  AUTRE[S] CAS : <Action autre(s) cas>
  OU
  AUTRE[S] CAS :
  <Action autre(s) cas>
  OU
  AUTRE[S] CAS
  <Action autre(s) cas>
  ]
FIN
<SELON> :
Signale le début du bloc d'instructions.
<Variable de comparaison> :
Variable de comparaison (tout type).
<CAS> :
Différents cas de comparaison.
<Expression N> :
Valeur à comparer à la variable de comparaison (type identique à celui de la variable de comparaison).
<Action N> :
Action à lancer si l'expression correspondante est égale à la variable de comparaison. Après exécution de cette action, le traitement continue après le mot FIN.
<AUTRE[S] CAS> :
Action à lancer si la variable de comparaison n'est égale à aucune expression (optionnelle).
<FIN> :
Signale la fin du bloc d'instructions.

Syntaxe simplifiée pour une valeur entière de valeurs consécutives Masquer les détails

<Résultat> = SELON (<Valeur>, <Résultat 1>, <Résultat 2>, ... <Résultat 3> [SINON <Résultat Autre>])
<Résultat> = SELON (<Valeur>
      <Résultat 1>,
      <Résultat 2>,
      ...
      )
<Résultat> :
Valeur renvoyée par le SELON.
<SELON> :
Signale le début du bloc d'instructions.
<Valeur> :
Variable de comparaison (tout type).
<Résultat N> :
Valeur renvoyée. Renvoie <Résultat 1> si <Valeur> vaut 1, <Résultat 2> si <Valeur> vaut 2, ...
<SINON> :
Permet de traiter le cas où aucun résultat ne correspond à la valeur. Si ce cas n'est pas traité, une erreur WLangage est affichée.
<Résultat Autre> :
Valeur renvoyée si aucun résultat ne correspond à la valeur.
Remarques

Sortir d'une instruction SELON

L'instruction SORTIR SELON permet de sortir d'une instruction SELON et d'exécuter la suite du traitement.
La syntaxe est la suivante :
SELON <Expression>
CAS <VALEUR>
...
SI <Condition> ALORS
SORTIR SELON
FIN
FIN
Par exemple :
SELON Quantité
CAS 1
 SI Utilisateur = "Admin" ALORS
SORTIR SELON
 FIN
 Comment = "Profitez des promotions : 2 produits pour le prix d'un"

CAS 2 :
 SI Utilisateur = "Admin" ALORS
SORTIR SELON
 FIN
 Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"

AUTRE CAS : Comment = ""
FIN

SELON avec test sur une condition

Il est possible dans une instruction SELON de tester le résultat d'une condition réalisée dans le CAS. Cette condition peut être par exemple une condition complexe, contenant des appels de fonctions, ...
Par exemple :
SELON Vrai
       // Test d'une condition complexe
        CAS Valeur1 = 10 ET Valeur2 = 20 : Trace(10)
       // Test d'une condition sur une fonction
        CAS VérifieCondition()
Remarque : pour un test sur une condition simple, il est conseillé d'utiliser la syntaxe suivante :
SELON Valeur
        CAS 10 : Trace(10)
        CAS 10<*<20 : Trace("Compris entre 10 et 20")
       CAS >30 : Trace("Supérieur à 30")
FIN

Mot-clé OU

Il n'est pas possible d'utiliser le mot-clé OU pour comparer la valeur à une expression ou à une autre. Il faut utiliser la virgule. Par exemple, ne pas faire :
Ind est un entier = 2
SELON Ind
        CAS 1 OU 2 : Info("cas 1 ou 2")
        CAS 3 : Info("cas 3")        
        AUTRE CAS : Info("autre cas")        
FIN
mais faire :
Ind est un entier = 2
SELON Ind
        CAS 1,2 : Info("cas 1 ou 2")
        CAS 3 : Info("cas 3")        
        AUTRE CAS : Info("autre cas")        
FIN

Mot-clé AUTRE CAS

AUTRE CAS doit être la dernière instruction utilisée dans l'instruction conditionnelle SELON.
Versions 18 et supérieures
Champ Sélecteur : SELON automatique
Lors de la saisie sous l'éditeur de code de l'instruction SELON relative à un champ Sélecteur, l'éditeur de code ajoute automatiquement les CAS correspondant aux différentes options du sélecteur. Le libellé de chaque option est ajouté automatiquement en commentaire de la ligne.
Quelques exemples :
  • Code pour un sélecteur renvoyant un entier : la saisie de "SELON SEL_Civilité" sous l'éditeur de code affiche :
    Code pour un sélecteur renvoyant un entier
  • Code pour un sélecteur renvoyant une valeur : la saisie de "SELON SEL_PlatDuJour" sous l'éditeur de code affiche :
    Code pour un sélecteur renvoyant une valeur
Nouveauté 18
Champ Sélecteur : SELON automatique
Lors de la saisie sous l'éditeur de code de l'instruction SELON relative à un champ Sélecteur, l'éditeur de code ajoute automatiquement les CAS correspondant aux différentes options du sélecteur. Le libellé de chaque option est ajouté automatiquement en commentaire de la ligne.
Quelques exemples :
  • Code pour un sélecteur renvoyant un entier : la saisie de "SELON SEL_Civilité" sous l'éditeur de code affiche :
    Code pour un sélecteur renvoyant un entier
  • Code pour un sélecteur renvoyant une valeur : la saisie de "SELON SEL_PlatDuJour" sous l'éditeur de code affiche :
    Code pour un sélecteur renvoyant une valeur
Champ Sélecteur : SELON automatique
Lors de la saisie sous l'éditeur de code de l'instruction SELON relative à un champ Sélecteur, l'éditeur de code ajoute automatiquement les CAS correspondant aux différentes options du sélecteur. Le libellé de chaque option est ajouté automatiquement en commentaire de la ligne.
Quelques exemples :
  • Code pour un sélecteur renvoyant un entier : la saisie de "SELON SEL_Civilité" sous l'éditeur de code affiche :
    Code pour un sélecteur renvoyant un entier
  • Code pour un sélecteur renvoyant une valeur : la saisie de "SELON SEL_PlatDuJour" sous l'éditeur de code affiche :
    Code pour un sélecteur renvoyant une valeur
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire