DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Procédures WLangage
  • Cas particuliers
  • Paramètres nommés
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
L'appel d'une procédure est le même qu'il s'agisse d'une procédure globale ou d'une procédure locale.
Rappel :
  • En WLangage, il n'existe pas de distinction entre les procédures et les fonctions. Les syntaxes de déclaration et d'utilisation décrites pour les procédures sont les mêmes pour les fonctions.
  • Dans le cas d'une procédure multisyntaxe, l'appel de la bonne syntaxe est résolu à l'exécution. Pour plus de détails, consultez Surcharge de prototype.
Exemple
// Appel de la procédure Trouve qui retourne un booléen
SI Trouve(Client, NumCli, Numéro) ALORS
Info("Numéro de client trouvé")
SINON
Info("Numéro de client inexistant")
FIN
Syntaxe

Appeler une procédure renvoyant un paramètre Masquer les détails

[<Valeur retournée> = ] <Nom de la procédure>([<Paramètres>])
<Valeur retournée> :
Valeur retournée (optionnel) par la procédure, uniquement si la procédure retourne un résultat.
Il est possible de typer la valeur de retour d'une procédure lors de sa déclaration. Pour plus de détails, consultez Déclarer une procédure.
<Nom de la procédure> :
Nom de la procédure à appeler.
<Paramètres> :
Paramètres passés à la procédure. Chaque paramètre est séparé par une virgule.
Nouveauté 2024
iPhone/iPad Si les paramètres à passer à la procédure sont stockés dans un tableau, il est possible d'utiliser la fonction TableauVersParamètres pour obtenir les paramètres au format attendu par la procédure.
iPhone/iPadWidget IOSApple WatchMac Catalyst Il est possible d'utiliser des paramètres nommés. Pour plus de détails, consultez le paragraphe "Paramètres nommés".
Pour plus de détails sur la déclaration des paramètres d'une procédure, consultez Les paramètres d'une procédure.

Appeler une procédure renvoyant plusieurs paramètres Masquer les détails

(<Valeur 1>, ..., <Valeur N>) = <Nom de la procédure>([<Paramètres>])
<Valeur 1 à N> :
Valeurs retournées par la procédure.
Il est possible de typer les valeurs de retour d'une procédure lors de sa déclaration. Pour plus de détails, consultez Déclarer une procédure.
<Nom de la procédure> :
Nom de la procédure à appeler.
<Paramètres> :
Paramètres passés à la procédure. Chaque paramètre est séparé par une virgule.
Nouveauté 2024
iPhone/iPad Si les paramètres à passer à la procédure sont stockés dans un tableau, il est possible d'utiliser la fonction TableauVersParamètres pour obtenir les paramètres au format attendu par la procédure.
iPhone/iPadWidget IOSApple WatchMac Catalyst Il est possible d'utiliser des paramètres nommés. Pour plus de détails, consultez le paragraphe "Paramètres nommés".
Pour plus de détails sur la déclaration des paramètres d'une procédure, consultez Les paramètres d'une procédure.
Remarques

Cas particuliers

  • Pour des raisons de lisibilité des programmes, le mot-clé PROCEDURE peut être remplacé par le mot-clé FONCTION.
  • Si la procédure n'attend aucun paramètre, il est également possible d'utiliser la syntaxe suivante :
    [<Valeur retournée> = ] <Nom de la procédure>
  • Pour exécuter une procédure d'une fenêtre ouverte, il suffit d'utiliser la fonction ExécuteTraitement. Exemple :
    // Exécution de la procédure MaProc contenue dans la fenêtre FEN_MaFenêtre
    NomFen est une chaîne = "FEN_MaFenêtre"
    ExécuteTraitement(NomFen + ".MaProc", trtProcédure)
iPhone/iPadWidget IOSApple WatchMac Catalyst

Paramètres nommés

Si une procédure possède des paramètres avec des valeurs par défaut, il est possible d'appeler la procédure en nommant ses paramètres. Deux syntaxes sont possibles :
  • Paramètres nommés monolignes,
  • Paramètres nommés multilignes.
1. Paramètres nommés monolignes
La syntaxe utilisée est la suivante :
NomProcédure(< <nom du paramètre1> > : <valeur1>, < <nom du paramètre2> > : <valeur2>, ...)
Voyons les différentes règles de fonctionnement à l'aide d'un exemple :
  • Code de la procédure :
    PROCÉDURE MaProcédure(p1, p2, p3 = 0, p4 = 0, p5 = 0)
  • Appel de la procédure en utilisant des paramètres nommés :
    MaProcédure(<p1>:1, <p2>:2)
  • Les paramètres optionnels non renseignés seront affectés avec leur valeur par défaut.
    MaProcédure(<p1>:1, <p2>:2, <p4>:4)
  • Les paramètres obligatoires peuvent être passés sans leur nom, en utilisant les paramètres ordonnés classiques. Les paramètres nommés sont forcément après les paramètres ordonnés :
    MaProcédure(1, 2, <p4>:4)

    MaProcédure(1, <p4>:4, 2) // Provoque une erreur
  • Tous les paramètres obligatoires doivent être précisés sinon une erreur de compilation sera générée.
    MaProcédure(<p1>:1) // erreur : p2 manquant

    MaProcédure(<p1>:1, <p4>:4)// erreur : p2 manquant
  • Chaque paramètre ne peut être précisé qu'une seule fois sinon une erreur de compilation sera générée.
    MaProcédure(<p2>:2, <p1>:1, <p2>:2) //erreur : p2 en double
  • Les paramètres peuvent être indiqués dans n'importe quel ordre : les valeurs des paramètres sont évaluées dans l'ordre d'écriture habituel (de gauche à droite).
    MaProcédure(f1(), f2(), <p5>:f3(), <p4>:f4()) // Ordre d'exécution : f1, f2, f3, f4
Les règles de passage des paramètres sont identiques à celles appliquées lors d'un appel classique. Pour plus de détails, consultez Passage de paramètres.
2. Paramètres nommés multilignes
La syntaxe utilisée est la suivante :
// Définition des paramètres
NomProcédure.<Nom du paramètre 1> = <Valeur 1>
...
NomProcédure.<Nom du paramètre N> = <Valeur N>
// Appel de la procédure
NomProcédure()
Cette syntaxe est disponible :
  • sur les procédures globales.
  • sur les procédures locales appelées depuis l'élément qui possède la procédure.
  • sur les méthodes appelées depuis une méthode de la classe ou d'une classe dérivée.
Exemple :
  • Code de la procédure :
    PROCÉDURE MaProcédure(p1, p2, p3 = 0, p4 = 0, p5 = 0)
  • Code d'appel :
    // Définition des paramètres
    MaProcédure.p1 = 1
    MaProcédure.p2 = 2
    // Appel de la procédure
    MaProcédure()
Remarques :
  • Les paramètres de la procédure sont limités au traitement courant. L'appel doit donc se trouver dans le même traitement que les affectations. Une erreur de compilation est provoquée si des paramètres sont renseignés et si aucun appel à la procédure n'est détecté dans le traitement.
  • Aucune vérification n'est faite sur la présence des paramètres obligatoires. Une erreur peut donc se produire à l'exécution si un paramètre obligatoire n'a pas été renseigné.
  • Les paramètres sont réinitialisés au moment de l'appel pour qu'un paramètre ne soit pas réutilisé par erreur ; il n'est donc pas possible de faire deux appels avec les mêmes paramètres.
  • Attention : Le passage de paramètres se fait dans ce cas par valeur et non plus par variable.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/11/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale