|
|
|
|
|
- Présentation
- Passage de paramètres par référence
- Fonctionnement par défaut
- Passage d'un champ, d'une fenêtre ou d'un état
- Passage de paramètres par valeur
- Présentation
- Solution 1 : Utilisation des doubles parenthèses
- Solution 2 : Utilisation de paramètres "locaux" dans la procédure
- Paramètre correspondants à un élément du projet
- Cas particulier
- Passage d'une liste de valeurs
Les paramètres peuvent être passés à une procédure : Passage de paramètres par référence Fonctionnement par défaut Par défaut, lors de l'appel d'une procédure, les paramètres sont passés par référence (par variable ou par adresse). Si le paramètre est modifié dans la procédure, le traitement appelant la procédure récupérera le paramètre avec sa valeur modifiée. Pour passer un paramètre par variable à une procédure, utilisez la syntaxe suivante : <Nom de la procédure>(<Nom de la variable passée en paramètre>) Par exemple : Indice est un entier = 1 // Avant l'appel de la procédure, Indice vaut 1 AjouteUn(Indice) // Après l'appel de la procédure, Indice vaut 2 // -- Déclaration de la procédure PROCÉDURE AjouteUn(Compteur) Compteur += 1 Passage d'un champ, d'une fenêtre ou d'un état Lors de l'appel d'une procédure, les paramètres peuvent être un champ, une fenêtre ou un état. Cet objet (champ, fenêtre ou état) est alors manipulé comme un objet "classique". Pour passer un élément en paramètre à une procédure, utilisez la syntaxe suivante : <Nom de la procédure>(<Nom de l'élément>) Par exemple : // Appel de la procédure ChampNonVisible ChampNonVisible(ChampAdresse) // -- Déclaration de la procédure PROCÉDURE ChampNonVisible(ChampAdresse) ChampAdresse..Visible = Faux Remarques : - Le mot-clé MoiMême permet de manipuler le champ en cours.
- Le mot-clé MaFenêtre permet de manipuler la fenêtre en cours.
- Le mot-clé MonEtat permet de manipuler l'état en cours.
Passage de paramètres par valeur Présentation Lors de l'appel d'une procédure, les paramètres peuvent être passés par valeur. Si le paramètre est modifié dans la procédure, le traitement appelant la procédure récupérera le paramètre avec sa valeur NON modifiée. Il existe deux possibilités pour passer les paramètres par valeur : Solution 1 : Utilisation des doubles parenthèses Pour passer un paramètre par valeur à une procédure, utilisez la syntaxe suivante : <Nom de la procédure>((<Nom de la variable passée en paramètre>)) Par exemple : Indice est un entier = 1 // Avant l'appel de la procédure, Indice vaut 1 AjouteUn((Indice)) // Après l'appel de la procédure, Indice vaut toujours 1 // -- Déclaration de la procédure PROCÉDURE AjouteUn(Compteur) Compteur += 1 Solution 2 : Utilisation de paramètres "locaux" dans la procédure Lors de la déclaration d'une procédure, les variables passées en paramètre peuvent devenir locales à cette procédure. Pour cela, il suffit de faire précéder le paramètre local par le mot-clé LOCAL. Par exemple :
PROCEDURE MaProc(LOCAL Indice, LOCAL Compteur, Numéro) Si ce paramètre est modifié dans la procédure, le traitement appelant la procédure récupérera le paramètre avec sa valeur NON modifiée.
Remarques : - Le mot-clé LOCAL force la copie de l'élément passé en paramètre dans les cas suivants :
- instance de classe ou de tableau passée à un paramètre non typé.
Exemple :
Procédure MaProcédure(LOCAL Paramètre) - instance de classe passée à un paramètre typé.
Exemple :
Procédure MaProcédure(LOCAL Paramètre est CClasse)
- Le mot-clé LOCAL peut être remplacé par le mot-clé LOCALE ou LOCALES.
Paramètre correspondants à un élément du projet Si votre procédure utilise des éléments du projet, jusqu'à la version 19, le nom de l'élément devait être mis entre guillemets lors de l'appel de la procédure. Par exemple : MaProcédure("FEN_Exemple") A partir de la version 19, il est possible de passer directement le nom de l'élément sans guillemets et de disposer de la complétion sur le paramètre lors de la saisie. Cas des étatsIl suffit d'utiliser l'attribut d'extension <nom d'état> (ou <nom de état>). La syntaxe à utiliser est la suivante :
PROCEDURE NomProcédure(NomEtat est une chaîne <nom d'état>) Exemple : // Déclaration de la procédure PROCÉDURE VérifDonnées(sNomEtat est une chaîne <nom d'état>) Dans cet exemple, lors de l'appel de la procédure, le paramètre sNomEtat contient le nom de l'état. La complétion proposera tous les états présents dans le projet. Les appels de la procédure pourront correspondre aux syntaxes suivantes : - ContrôleSaisie(NomEtat)
- ContrôleSaisie("NomEtat")
- ContrôleSaisie(Nom variable chaîne contenant le nom de l'état)
Cas des sources de donnéesLa syntaxe à utiliser est la suivante :
PROCEDURE NomProcédure(NomFichier est une Source de Données) Exemple : // Déclaration de la procédure PROCÉDURE VérifDonnées(sNomFicher est une Source de Données) Dans cet exemple, lors de l'appel de la procédure, le paramètre sNomFichier contient le nom d'une source de données. La complétion proposera toutes les sources de données (fichiers, requêtes, variables de type Source de données) présentes dans le projet. Les appels de la procédure pourront correspondre aux syntaxes suivantes : - VérifDonnées(Fichier)
- VérifDonnées(Requête)
- VérifDonnées("Fichier")
- VérifDonnées("Requête")
- VérifDonnées(Nom variable chaîne contenant le nom du fichier ou de la requête)
- VérifDonnées(Nom variable de type source de données)
Remarque : Pour associer la source de données à un fichier de données (ou une requête) existant, il suffit d'ajouter un attribut d'extension spécifique. Dans ce cas, la complétion automatique permettra d'accéder directement aux rubriques. Pour plus de détails, consultez Variable de type Source de données. Passage d'une liste de valeurs Lors de l'appel d'une procédure, les paramètres peuvent être une liste de valeurs ("[1,2,3]" par exemple).Pour passer une liste de valeurs en paramètre à une procédure, utilisez la syntaxe suivante : <Nom de la procédure>(<Liste de valeurs>) Par exemple : // Appel de la procédure MaProcédure([1,2,3]) // -- Déclaration de la procédure PROCÉDURE MaProcédure(Valeurs) MonTableau est un tableau d'entiers = Valeurs Remarques : - Si le paramètre de la procédure n'est pas typé, la liste de valeurs est passée directement à la procédure. Comme les listes de valeurs ne sont pas manipulables directement, ce paramètre peut être utilisé uniquement dans des fonctionnalités qui acceptent les listes de valeurs :
- appel d'une fonction du WLangage qui autorise les listes de valeurs (HFiltre, HLitRecherche, ...).
- affectation dans une variable de type structuré (tableau, classe, structure, ...).
- appel d'une procédure utilisateur qui autorise une liste de valeurs.
- Si le paramètre de la procédure est de type tableau, un tableau est automatiquement alloué et rempli avec les valeurs de la liste de valeurs.
- Si le paramètre de la procédure est d'un autre type, une erreur de compilation apparaîtra (ou une erreur WLangage se produira à l'exécution si le paramètre réel n'est pas typé).
Surcharge de fonctions WLangage : Grâce aux paramètres de type "liste de valeurs", il est possible de surcharger les fonctions WLangage acceptant des listes de valeurs, notamment :
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|