PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Ce que vous allez apprendre dans cette leçon
  • Présentation
  • Types de procédure
  • Création et appel d'une procédure
  • Procédure globale
  • Procédure locale
  • Procédure interne
  • Appel d'une procédure
  • Paramètres d'une procédure
  • Qu'est-ce qu'un paramètre ?
  • Comment utiliser les paramètres ?
  • Paramètres obligatoires ou optionnels ?
  • Résultat d'une procédure
  • Exemple pratique : Utilisation d'une procédure
  • Projet manipulé
  • Mise en place
  • Création et utilisation d'une procédure
  • Conclusion
Annexe 5. Les procédures
Ce que vous allez apprendre dans cette leçon
  • Types de procédure
  • Création et appel d'une procédure
  • Paramètres d'une procédure
  • Résultat d'une procédure
  • Exemple pratique

Durée estimée : 1 h
Leçon précédenteSommaireLeçon suivante
Présentation
Une procédure permet d'associer un identificateur à une portion de code afin de la réutiliser. Dans cette leçon, nous allons voir les différents types de procédures existant en WLangage, leur mode de création, comment les appeler, leur passer des paramètres et récupérer un résultat.
Types de procédure
Les procédures peuvent être de trois types :
  • Procédure globale : utilisable dans tous les traitements du projet (déclarée dans une collection de procédures).
  • Procédure locale à une Fenêtre, Page ou Fenêtre mobile : utilisable dans tous les traitements dépendant de l'objet dans lequel cette procédure a été déclarée.
  • Procédure interne à un traitement : utilisable uniquement dans le traitement dans lequel elle a été déclarée.

Note

Portée des procédures
Les procédures respectent les règles de portée que nous avons détaillées pour les variables (voir "La portée des variables").
Création et appel d'une procédure

Procédure globale

Pour créer une procédure globale, il faut :
  1. Créer si nécessaire une collection de procédures (via le volet "Explorateur de projet", dossier "Procédures"). Donner un nom à la collection de procédures.
  2. Créer une procédure globale dans la collection de procédures (via le volet "Explorateur de projet", dossier "Procédures, Nom de la collection"). Donner un nom à la procédure.
  3. Saisir le code de la procédure globale. Le code de la procédure est de la forme :
    PROCEDURE <Nom de la procédure globale>()

Procédure locale

Pour créer une procédure locale, il faut :
  1. Sélectionner l'élément associé à la procédure (fenêtre, page, ...).
  2. Créer une procédure locale (par exemple via le volet "Explorateur de projet", déroulez le nom de l'élément, dossier "Procédures locales").
  3. Donner un nom à la procédure.
  4. Saisir le code de la procédure locale. Le code de la procédure est de la forme :
    PROCEDURE <Nom de la procédure locale>()

Procédure interne

Pour créer une procédure interne, il suffit de saisir le code suivant dans le traitement voulu :
PROCEDURE INTERNE <Nom de la procédure>()
<Code de la procédure interne>
FIN

Appel d'une procédure

Pour appeler une procédure, il suffit d'utiliser directement le nom de la procédure (avec éventuellement les paramètres à lui passer).
<Nom de la procédure>(<Paramètre 1>, ..., <Paramètre N>)
Pour plus de détails, consultez Appeler une procédure/une fonction.
Paramètres d'une procédure

Qu'est-ce qu'un paramètre ?

Un paramètre est une valeur envoyée à une procédure lors de l'appel de la procédure.
L'exemple suivant permet d'appeler la procédure Multiplie10 en lui passant en paramètre la valeur à manipuler dans la procédure :
Multiplie10(50)
Il est possible de passer de 0 à plusieurs valeurs en paramètre à une procédure. Ces valeurs peuvent être de tout type (comme pour les variables).
Le paramètre est spécifié dans la déclaration de la procédure sous forme de variable. Par exemple, pour la procédure Multiplie10, le code de la procédure est :
PROCEDURE Multiplie10(P)
P=P*10
P est le paramètre attendu par la procédure.

Note

Pour préciser la fonction du paramètre dans la procédure, il est possible de typer le paramètre dans la déclaration de la procédure.
Par exemple, pour n'utiliser que des numériques, il est possible de déclarer :
PROCEDURE Multiplie10(P est un numérique)
Dans l'exemple suivant, la procédure Multiplication attend deux paramètres de type Entier et renvoie le résultat de la multiplication.
Le code de la procédure est le suivant :
PROCÉDURE Multiplication(Nb1 est un entier, Nb2 est un entier)
Résultat est un entier
Résultat = Nb1 * Nb2
RENVOYER Résultat
Le code permettant d'appeler la procédure est le suivant :
res est un entier
res = Multiplication(10, 50)
// Res vaut 500

Comment utiliser les paramètres ?

Par défaut, le WLangage utilise le passage de paramètre par référence (ou par adresse). Le paramètre dans la procédure représente (référence) directement la variable passée lors de l'appel.
Ainsi, lorsqu'une instruction de la procédure modifie la valeur du paramètre, la valeur de la variable correspondant à ce paramètre est modifiée.
Exemple :
  • Le code de la procédure est le suivant :
    PROCÉDURE Test_adresse(P1)
    P1 = P1 * 2
  • Le code permettant d'appeler la procédure est le suivant :
    T est un entier
    T = 12 // T vaut 12 avant l'appel
    Test_adresse(T)
    // T vaut 24 après l'appel
Pour ne pas modifier la valeur de la variable correspondant au paramètre, il suffit d'utiliser le passage de paramètre par valeur. Le passage de paramètre par valeur permet de manipuler une copie de la valeur du paramètre. Si le code de la procédure modifie la valeur de la variable, la valeur de la variable correspondant au paramètre n'est pas modifiée.
Pour forcer le passage d'un paramètre par valeur à une procédure, il faut utiliser le mot-clé LOCAL devant le nom du paramètre dans la déclaration de la procédure. Ce mot-clé indique que le paramètre suivant ne sera pas modifié par la procédure.
Exemple :
  • Le code de la procédure est le suivant :
    PROCÉDURE Test_valeur(LOCAL P1)
    // Local indique que le paramètre sera passé par valeur
    P1 = P1 * 2
  • Le code permettant d'appeler la procédure est le suivant :
    T est un entier
    T = 12 // T vaut 12
    Test_valeur(T)
    // T ne change pas

Note

Dans une même procédure, certains paramètres peuvent être passés par adresse et d'autres paramètres peuvent être passés par valeur. Il suffit d'utiliser le mot-clé LOCAL devant chaque paramètre passé par valeur.

Paramètres obligatoires ou optionnels ?

Les paramètres reçus dans la procédure peuvent être obligatoires ou optionnels. Un paramètre obligatoire doit être renseigné lors de l'appel de la procédure, alors qu'un paramètre optionnel peut être omis : il prendra dans ce cas la valeur par défaut définie lors de la déclaration des paramètres de la procédure.

Note

Dans la déclaration d'une procédure, les paramètres optionnels sont toujours les derniers paramètres spécifiés (après tous les paramètres obligatoires).
Dans l'exemple suivant, la procédure Multiplication utilise un paramètre optionnel, Nb2. Ce paramètre optionnel est indiqué après les paramètres obligatoires, en précisant sa valeur par défaut. Dans cet exemple, le paramètre optionnel a pour valeur par défaut 10.
PROCÉDURE Multiplication(Nb1 est un entier, Nb2 est un entier=10)
Résultat est un entier
Résultat = Nb1 * Nb2
RENVOYER Résultat
Le code d'appel de la procédure est le suivant :
res est un entier
res = Multiplication(6)
// Res vaut 60
Dans cet exemple, le second paramètre n'a pas été précisé. C'est donc sa valeur par défaut qui est utilisée.
Résultat d'une procédure
Les procédures peuvent retourner un ou plusieurs résultats. Le résultat peut être typé. Il faut utiliser le mot-clé RENVOYER pour retourner une valeur.
Pour plus de détails, consultez Instruction RENVOYER.
Exemple pratique : Utilisation d'une procédure
Dans une nouvelle page, nous allons maintenant :
  • Créer deux champs de saisie numériques, contenant la valeur HT et la valeur TTC.
  • Créer un champ Combo, permettant de choisir le taux de TVA.
  • Créer un bouton permettant de calculer et afficher la valeur TTC du montant HT saisi.
Le résultat du calcul sera affiché dans le champ "Prix TTC".
Cette page est la suivante :

Projet manipulé

Pour manipuler les différents concepts de cette leçon, nous allons réaliser différentes pages. Ces pages vont être créées dans le projet "Mes_Premières_Pages".
  • Ouvrez si nécessaire le projet "Mes_Premières_Pages".
    Pour cela, dans la fenêtre de bienvenue, cliquez sur "Cours d'auto-formation" et sélectionnez le premier projet "Mes premières pages (Exercice)".
    Astuce : si la fenêtre de bienvenue n'est pas affichée, sous le volet "Accueil", dans le groupe "Aide en ligne", déroulez "Guide d'Auto-formation" puis sélectionnez l'option "Mes premières pages (Exercice)".

Mise en place

  • Créez une nouvelle page vierge :
    1. Cliquez sur parmi les boutons d'accès rapide. La fenêtre de création d'un nouvel élément s'affiche : cliquez sur "Page" puis sur "Page". L'assistant de création de pages s'affiche.
    2. Sélectionnez "Page vierge" puis "Mise en page simple".
    3. Validez. La page 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 page "Procédures". Le nom de la page "PAGE_Procédures" est automatiquement proposé.
    5. Validez la fenêtre de sauvegarde (bouton vert).
  • Pour créer le champ de saisie correspondant au prix HT :
    1. Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Saisie" (cliquez sur la flèche). La liste des différents champs de saisie disponibles s'affiche. Sélectionnez le champ "Monétaire" et positionnez le champ dans la page.
    2. Faites un clic droit sur le champ et sélectionnez l'option "Description".
    3. Dans la fenêtre de description :
      • Saisissez le nom du champ "SAI_PrixHT".
      • Saisissez le libellé "Prix HT".
    4. Validez.
  • Pour créer le champ dans lequel sera affiché le résultat :
    1. Sous le volet "Création", dans le groupe "Champs usuels", déroulez "Saisie" (cliquez sur la flèche). La liste des différents champs de saisie disponibles s'affiche. Sélectionnez le champ "Monétaire" et positionnez le champ dans la page (par exemple sous le champ de saisie affichant le prix HT).
    2. Saisissez les informations du champ : faites un clic droit sur le champ et sélectionnez l'option "Description".
      • Indiquez le nom du champ "SAI_PrixTTC".
      • Modifiez le libellé par "Prix TTC".
    3. Le résultat affiché dans ce champ ne doit pas être modifiable. Cliquez sur l'onglet "IHM" et choisissez l'état initial "En affichage".
    4. Validez.
    5. Sauvez la page.
  • Pour créer le champ Combo de sélection de la TVA :
    1. Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur "Combo" puis cliquez dans la page à la position où le champ doit être créé (à côté du champ "Prix HT").
    2. L'assistant de création d'un champ Combo s'affiche. Cet assistant permet de définir simplement les principales caractéristiques du champ.
    3. Sélectionnez l'option "Je veux remplir moi-même la combo".
    4. Affichez l'écran suivant.
    5. Conservez les options proposées par défaut. Affichez l'écran suivant.
    6. Dans l'écran intitulé "Contenu initial", saisissez la liste des valeurs de TVA possibles :
      • 5.5
      • Appuyez sur la touche Entrée.
      • 10
      • Appuyez sur la touche Entrée.
      • 20.
    7. Affichez l'écran suivant et donnez un nom au champ (COMBO_TVA) et un libellé (TVA).
    8. Validez.
  • Pour créer le bouton "Calculer" :
    1. Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur .
    2. Cliquez à l'emplacement de création du bouton (par exemple sous le champ Combo).
    3. Cliquez sur le bouton que vous venez de créer. Le texte affiché dans le bouton passe en édition. Saisissez le libellé "Calculer".
    4. Validez la saisie avec la touche Entrée.
  • Le montant TTC va être obtenu dans le traitement du bouton "Calculer".
    1. Affichez le code du champ "Calculer" (option "Code" du menu contextuel par exemple).
    2. Dans le traitement "Clic sur BTN_Calculer (code serveur)", saisissez le code suivant :
      SELON COMBO_TVA..ValeurAffichée
      // 5.5 %
      CAS 5.5
      SAI_PrixTTC = SAI_PrixHT * 1.055
      // 10 %
      CAS 10
      SAI_PrixTTC = SAI_PrixHT * 1.1
      // 20 %
      CAS 20
      SAI_PrixTTC = SAI_PrixHT * 1.2
      FIN

      Ce code calcule le montant TTC en utilisant la valeur sélectionnée dans le champ Combo (donnée obtenue avec la propriété ..ValeurAffichée).
    3. Testez votre page ( parmi les boutons d'accès rapide). Donnez un prix HT. Sélectionnez les différentes valeurs dans le champ Combo et cliquez sur le bouton "Calculer".
Maintenant, notre page fonctionne correctement. Cependant, au lieu d'utiliser 3 fois une formule pour calculer le prix, il est possible d'utiliser une procédure pour effectuer ce calcul.
  • Fermez la page de test pour revenir sous l'éditeur de code.

Création et utilisation d'une procédure

  • Pour créer la procédure de calcul du montant TTC :
    1. Cliquez sur le fond de la page.
    2. Affichez les traitements associés à la page (touche F2).
    3. Sous l'éditeur de code, sous le volet "Code", dans le groupe "Procédures", déroulez "Nouveau" et sélectionnez "Nouvelle procédure locale (Serveur)".
    4. Dans la fenêtre qui s'affiche, saisissez le nom de la procédure locale "Calcul_TTC" et validez (bouton "Ajouter").
    5. La nouvelle procédure locale à la page est automatiquement créée et son code est affiché sous l'éditeur de code.
    6. Saisissez le code suivant :
      PROCÉDURE Calcul_TTC(PrixHT, TauxTVA)
      moTTC est un monétaire
      moTTC = PrixHT * (1 + TauxTVA/100)
      RENVOYER moTTC

      Examinons ce code :
      • La procédure Calcul_TTC attend 2 paramètres : le prix hors taxe et le montant du taux de TVA.
      • Cette procédure déclare une variable de type monétaire. Cette variable permet de stocker le montant du prix TTC calculé.
      • Cette procédure calcule le prix TTC et renvoie la valeur calculée.
    7. Fermez l'éditeur de code.

Note

Lors de la création d'une procédure, des commentaires sont automatiquement générés AVANT le code de la procédure. Ces commentaires permettant notamment de préciser le contenu des paramètres et de la valeur de retour.
Il est important de remplir ces commentaires. En effet, ils seront automatiquement affichés dans une bulle d'aide lors de la saisie de l'appel de la procédure sous l'éditeur de code.
  • Il ne reste plus qu'à appeler la procédure depuis le bouton de calcul.
    1. Sélectionnez le bouton "Calculer".
    2. Affichez le code du bouton (touche F2 par exemple).
    3. Remplacez le code existant par le code suivant :
      SELON COMBO_TVA..ValeurAffichée
      // 5.5 %
      CAS 5.5
      SAI_PrixTTC = Calcul_TTC(SAI_PrixHT, 5.5)
      // 10 %
      CAS 10
      SAI_PrixTTC = Calcul_TTC(SAI_PrixHT, 10)
      // 20 %
      CAS 20
      SAI_PrixTTC = Calcul_TTC(SAI_PrixHT, 20)
      FIN
Ce code appelle la procédure Calcul_TTC pour calculer le montant TTC. Deux paramètres sont passés en paramètres : le prix HT et le taux de la TVA. Le résultat renvoyé par la procédure est directement affecté au champ SAI_Prix_TTC.
  • Nous allons tester la page :
    1. Testez votre page ( parmi les boutons d'accès rapide). Donnez un prix HT. Sélectionnez les différentes valeurs dans le champ Combo et cliquez sur le bouton "Calculer".
    2. Le montant HT s'affiche.
    3. Fermez la page de test.
Conclusion
Cette partie vous a permis d'aborder les principaux concepts de la programmation WLangage de WEBDEV. De nombreuses autres fonctionnalités sont disponibles. Vous en découvrirez certaines en suivant ce guide d'auto-formation.
Le WLangage est un langage très puissant permettant de développer également des applications utilisant :
Leçon précédenteSommaireLeçon suivante
Version minimum requise
  • Version 23
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire