PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

Nouveauté WINDEV 24 !
  • Ce que vous allez apprendre dans cette leçon
  • Présentation
  • Les instructions SI et SELON
  • L'instruction SI
  • L'instruction SELON
  • Exemple pratique : Utilisation de l'instruction SI et SELON
  • Projet manipulé
  • Création de la fenêtre
  • Création des champs de la fenêtre pour l'instruction conditionnelle SI
  • Instruction conditionnelle SI
  • Création des champs de la fenêtre pour l'instruction conditionnelle SELON
  • Instruction conditionnelle SELON
Leçon 2.2. Les instructions conditionnelles
Ce que vous allez apprendre dans cette leçon
  • L'instruction SI.
  • L'instruction SELON.
  • Exemple pratique.

Durée estimée : 1 h
Leçon précédenteSommaireLeçon suivante
Présentation
Le WLangage est une suite d'instructions manipulant des données.
Les instructions conditionnelles permettent de comparer des variables et/ou des valeurs entre elles afin de faire des traitements différents. Il existe plusieurs instructions conditionnelles :
  • SI... ALORS... SINON... FIN
  • SELON ...
Les instructions SI et SELON

L'instruction SI

Cette instruction permet d'exécuter une action ou une autre en fonction du résultat d'une expression. Si l'expression est vérifiée, un traitement est lancé ; si l'expression n'est pas vérifiée, un autre traitement peut être lancé.
L'instruction SI s'utilise comme ci-dessous :
SI <Expression à vérifier> ALORS
  Traitement à exécuter dans le cas où l'expression est vérifiée
SINON
  Traitement à exécuter dans le cas contraire
FIN
Exemple de code : Le code suivant sélectionne un nombre au hasard et selon la valeur affiche un message.
Tot est un monétaire
// Prend un nombre au hasard entre 100 et 4000
Tot = Hasard(100, 4000)
SI Tot>2000 ALORS
Info("Le montant est supérieur à 2000")
SINON
Info("Le montant est inférieur ou égal à 2000")
FIN
Dans ce cas, l'expression à vérifier correspond à "Tot>2000".
Remarque : Il est possible d'exécuter plusieurs lignes de code lors du traitement correspondant à une condition. Dans ce cas, la syntaxe à utiliser est la suivante :
SI <Expression à vérifier> ALORS
Ligne de code 1
Ligne de code N
SINON
Ligne de code 1
Ligne de code N
FIN

L'instruction SELON

Cette instruction permet d'évaluer une expression et d'exécuter un traitement pour chaque valeur possible de l'expression.
L'instruction SELON s'utilise comme ci-dessous :
SELON <Expression>
CAS Valeur 1 :
Traitement 1...
CAS Valeur 2 :
Traitement 2...
...
CAS Valeur N :
Traitement N...

AUTRES CAS
Traitement ...
FIN
Exemple : Le code suivant récupère la date du jour et selon sa valeur affiche un message différent. Pour le 1er et le 15 du mois, un message spécifique est affiché. Dans les autres cas, la date du jour est affichée.
D est une Date
D = DateDuJour()
SELON D..Jour // Teste le jour de la date
CAS 1 : Info("On est le premier jour du mois")
CAS 15 : Info("On est le 15 du mois.")
AUTRES CAS : Info("On est le : " + DateVersChaîne(D))
FIN

Note

Le WLangage est composé de fonctions et de propriétés. Les fonctions peuvent attendre des paramètres et renvoient des résultats. Les propriétés sont directement appliquées aux champs ou aux variables grâce à la syntaxe :
<Nom du champ ou de la variable>..<Nom de la propriété>
Dans notre exemple, la propriété ..Jour est utilisée sur le la variable D pour obtenir le jour de la date.
A tout moment, il est possible de consulter l'aide en ligne d'une fonction ou d'une propriété grâce à la touche F1. Pour plus de détails sur l'aide en ligne, consultez "Comment accéder à l'aide en ligne ?".
Remarques :
  • Si la ligne de code "CAS 1:..." est exécutée, les autres lignes de code correspondant aux valeurs possibles ne sont pas exécutées.
  • Il est possible de regrouper dans le même cas plusieurs valeurs. Les différentes valeurs sont séparées par une virgule. Par exemple :
    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
  • Il est possible d'exécuter plusieurs lignes de code lors du traitement correspondant à une valeur de l'expression. Dans ce cas, la syntaxe à utiliser est la suivante :
    SELON <Expression>
    CAS Valeur 1 :
    Traitement 1 - Ligne de code 1...
    Traitement 1 - Ligne de code 2...
    CAS Valeur N :
    Traitement N - Ligne de code 1...
    Traitement N - Ligne de code 2...
    AUTRES CAS
    Traitement ...
    FIN
Exemple pratique : Utilisation de l'instruction SI et SELON
Pour utiliser les instructions conditionnelles que nous venons d'étudier, nous allons réaliser la fenêtre suivante :
Test des instructions conditionnelles
Deux manipulations sont disponibles :
  • Si l'utilisateur clique sur l'interrupteur, le bouton "Fermer" apparaît.
  • Si l'utilisateur clique sur le bouton "Tester", la case cochée dans le sélecteur est affichée.

Projet manipulé

Pour manipuler les différents concepts de cette leçon, nous allons réaliser différentes fenêtres. Ces fenêtres vont être créées dans le projet "WD Mes premières fenêtres".
  • Ouvrez si nécessaire le projet "WD Mes Premières Fenêtres".
    Pour cela, dans la page d'accueil de WINDEV (Ctrl + <), cliquez sur "Cours d'auto-formation" et sélectionnez le premier projet "Mes premières fenêtres (Exercice)".

Création de la fenêtre

  • Créez une nouvelle fenêtre vierge :
    1. Cliquez sur Création parmi les boutons d'accès rapide. La fenêtre de création d'un nouvel élément s'affiche : cliquez sur "Fenêtre­" puis sur "Fenêtre". L'assistant de création de fenêtres s'affiche.
    2. Sélectionnez "Vierge" et le gabarit "Elegant".
    3. Validez. La fenêtre est automatiquement créée sous l'éditeur. La fenêtre de sauvegarde de l'élément créé apparaît.
    4. Indiquez le titre de la fenêtre "Instructions conditionnelles". Le nom de la fenêtre "FEN_Instructions_conditionnelles" est automatiquement proposé.
    5. Validez les informations affichées dans la fenêtre de sauvegarde en cliquant sur le bouton vert.

Création des champs de la fenêtre pour l'instruction conditionnelle SI

Deux champs doivent être créés :
  • un champ Interrupteur permettant d'afficher ou non le bouton "Fermer".
  • un bouton "Fermer" permettant de fermer la fenêtre.
  • Pour créer le champ Interrupteur :
    1. Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur "Interrupteur" puis cliquez dans la fenêtre à la position où le champ doit être créé (par exemple en haut de la fenêtre).
    2. Cliquez sur le champ que vous venez de créer : le libellé "Option 1" passe en édition.
    3. Saisissez le libellé de l'option "Rendre visible le bouton de fermeture".
    4. Validez la saisie avec la touche Entrée.
  • Le libellé de l'option apparaît tronqué sous l'éditeur. Pour afficher correctement le champ :
    1. Sélectionnez le champ.
    2. Dans le menu contextuel (clic droit), sélectionnez l'option "Adapter la taille".
    3. Le champ est immédiatement agrandi et le libellé apparaît en entier.
  • Pour créer le bouton "Fermer" :
    1. Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur Champ Bouton.
    2. Cliquez à l'emplacement de création du bouton (par exemple à droite du champ Interrupteur).
    3. Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe en édition. Saisissez le libellé "Fermer".
    4. Validez la saisie avec la touche Entrée.
  • Ce bouton permet de fermer la fenêtre. Nous allons saisir le code WLangage correspondant :
    1. Sélectionnez le bouton "Fermer".
    2. Utilisez la touche F2 : l'éditeur de code apparaît affichant les traitements associés au bouton.
    3. Dans le traitement "Clic sur BTN_Fermer", saisissez le code suivant :
      Ferme()
      La fonction Ferme permet de fermer la fenêtre en cours.
  • Le bouton "Fermer" doit être invisible à l'ouverture de la fenêtre. Cette information correspond à son "état initial". Nous allons modifier cet état dans la fenêtre de description du champ :
    1. Sélectionnez le bouton "Fermer".
    2. Affichez le menu contextuel du champ et sélectionnez l'option "Description".
    3. Dans l'onglet "IHM", modifiez l'état initial du champ en cliquant sur "Visible". Cette option est désormais décochée.
    4. Validez la fenêtre de description du champ.
    5. Le bouton "Fermer" est toujours visible sous l'éditeur. Nous avons changé son état uniquement en exécution.
    6. Enregistrez les modifications en cliquant sur Enregistrer parmi les boutons d'accès rapide (à gauche du ruban) ou par la combinaison de touches Ctrl + S.

Instruction conditionnelle SI

Dans notre exemple, le clic sur l'interrupteur doit déclencher l'apparition du bouton Fermer.
  • Nous allons saisir le code WLangage associé à l'interrupteur :
    1. Sélectionnez le champ Interrupteur.
    2. Utilisez la touche F2.
    3. Dans le traitement "A chaque modification de INT_SansNom1", saisissez le code suivant :
      SI INT_SansNom1 = Vrai ALORS
      BTN_Fermer..Visible = Vrai
      SINON
      BTN_Fermer..Visible = Faux
      FIN
      Examinons ce code :
      • INT_SansNom1 et BTN_Fermer correspondent respectivement aux noms des champs Interrupteur et Bouton.

        Astuce

        Pour manipuler le champ en cours dans un des traitements qui lui sont associés, il est possible d'utiliser le mot-clé MoiMême.
        Dans notre exemple, il est également possible d'écrire :
        Si MoiMême = Vrai ALORS
      • Le champ Interrupteur est un champ à 2 états : coché/non coché. Il correspond en programmation à une variable de type Booléen. Si le champ est coché, sa valeur est Vrai ; si le champ est décoché, sa valeur est Faux.
      • Ce code teste la valeur de l'interrupteur.
        • Si l'interrupteur est coché, le bouton BTN_Fermer devient visible à l'aide de la propriété WLangage ..Visible.
        • Si l'interrupteur est décoché, le bouton BTN_FERMER devient invisible.
  • Nous allons tester la fenêtre :
    1. Cliquez sur GO d'une fenêtre parmi les boutons d'accès rapide (ou utilisez la touche F9). La fenêtre est exécutée.
      Bouton Fermer visible
    2. Dans la fenêtre en exécution, cliquez sur l'interrupteur. Le bouton "Fermer" devient visible.
    3. Cliquez sur le bouton "Fermer" : la fenêtre se ferme et l'éditeur de fenêtres apparaît.

Création des champs de la fenêtre pour l'instruction conditionnelle SELON

Deux champs doivent être créés :
  • un champ Sélecteur permettant de sélectionner la valeur à tester.
  • un champ Bouton permettant de lancer le test.
  • Pour créer le champ Sélecteur :
    1. Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Sélecteur" (cliquez sur la flèche). La liste des champs Sélecteur proposés par défaut s'affiche.
    2. Dans la liste des champs, dans la catégorie "Pré-Rempli", cliquez sur le premier champ proposé (avec "Monsieur").
    3. Cliquez dans la fenêtre pour créer le champ (par exemple sous le champ Interrupteur créé précédemment).
  • Pour créer le bouton "Tester" :
    1. Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur Champ Bouton.
    2. Cliquez à l'emplacement de création du bouton (par exemple à droite du champ Sélecteur).
    3. Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe en édition. Saisissez le libellé "Tester".
    4. Validez la saisie avec la touche Entrée.

Instruction conditionnelle SELON

Dans notre exemple, le bouton Tester permet de tester la valeur sélectionnée et d'afficher un message.
  • Nous allons saisir le code WLangage associé au bouton Tester :
    1. Sélectionnez le bouton Tester.
    2. Utilisez la touche F2.
    3. Dans le traitement "Clic sur BTN_Tester", saisissez le code suivant :
      SELON SEL_Civilités
    4. Lors de l'appui sur la touche Entrée pour passer à la ligne suivante, l'éditeur de code affiche automatiquement les différentes possibilités du SELON :
      Editeur de code
    5. Saisissez le code suivant :
      SELON SEL_Civilités
      // Monsieur
      CAS 1
      Info("Vous avez sélectionné Monsieur")
      // Madame
      CAS 2
      Info("Vous avez sélectionné Madame")
      // Mademoiselle
      CAS 3
      Info("Vous avez sélectionné Mademoiselle")
      // Autre
      CAS 4
      Info("Vous avez sélectionné Autre")
      FIN
      Examinons ce code :
      • SEL_Civilités correspond au nom du champ Sélecteur.
      • Le champ Sélecteur est un champ proposant plusieurs options (dans notre cas, 4). Seule une option peut être cochée à la fois. Le champ Sélecteur correspond en programmation à une variable de type Entier. Chaque option est associée à une valeur. Si l'option est cochée, le champ Sélecteur a pour valeur l'identifiant de l'option cochée.
      • Ce code teste la valeur du sélecteur. Selon la valeur du sélecteur, un message est affiché.
  • Nous allons tester la fenêtre :
    1. Cliquez sur GO de fenêtre parmi les boutons d'accès rapide (ou utilisez la touche F9).
    2. Dans la fenêtre en cours de test, sélectionnez une option puis cliquez sur "Tester" : le message correspondant à l'option sélectionnée s'affiche.
      Test de la fenêtre
    3. Fermez la fenêtre.
Leçon précédenteSommaireLeçon suivante
Version minimum requise
  • Version 24
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire