DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Fenêtre
  • Présentation
  • Passer des paramètres à une fenêtre lors de son ouverture
  • Passage de paramètres : cas général
  • Paramètres passés par valeur
  • Donner une valeur par défaut aux paramètres dans la déclaration
  • Paramètres nommés
  • Portées des paramètres
  • Renvoyer une valeur lors de la fermeture d'une fenêtre
  • Tester une fenêtre paramétrée
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
Présentation
Une fenêtre peut :
  • Recevoir des paramètres à son ouverture.
  • Renvoyer des valeurs à sa fermeture.
Cette fenêtre se comporte alors comme une procédure renvoyant ou non des valeurs.
Ce type de fenêtres peut être utile dans les cas suivants par exemple :
  • fenêtres "calendrier" (fixer une date par défaut à l'ouverture et renvoyer une date sélectionnée à la fermeture),
  • fenêtres de recherche,
  • fenêtres de login renvoyant le mot de passe saisi, ...
Cette page d'aide présente :
Passer des paramètres à une fenêtre lors de son ouverture

Passage de paramètres : cas général

Pour passer des paramètres à une fenêtre lors de son ouverture :
  1. Déclarez une procédure dans l'événement "Déclarations globales" de la fenêtre. Le nom de cette procédure doit être identique au nom de la fenêtre. Les paramètres de cette procédure correspondent aux paramètres à passer à la fenêtre.
    Attention : La déclaration de la procédure (mot-clé PROCEDURE) doit correspondre à la première ligne de l'événement "Déclarations globales".
    Par exemple, la fenêtre FEN_Calendrier permet de gérer la sélection d'une date dans un calendrier. Cette fenêtre attend un paramètre indiquant la date à sélectionner.
    // -- Déclarations globales de FEN_Calendrier
     
    PROCÉDURE FEN_Calendrier(sDateSel)
    //  sDateSel : date à sélectionner

    Ce paramètre est ensuite manipulable depuis n'importe quel événement de la fenêtre (code d'un bouton, procédures locales, etc.).
    Par exemple, dans l'événement "Initialisation" de la fenêtre FEN_Calendrier :
    // -- Initialisation de FEN_Calendrier
     
    // Le champ SAI_ChampDate est un champ de saisie
    // Il contient la valeur du paramètre sDateSel
    SAI_ChampDate = sDateSel
  2. Passez le paramètre attendu par la fenêtre lors de son ouverture (fonctions Ouvre, OuvreFenêtreMobile, OuvreFille, OuvreSoeur, MDIOuvre). Par exemple, le bouton BTN_Calendrier permet d'ouvrir la fenêtre FEN_Calendrier. Lors de l'ouverture de cette fenêtre, la date du jour est passée en paramètre.
    // -- Code de clic du bouton BTN_Calendrier
     
    // Ouverture de la fenêtre FEN_Calendrier
    // Passage de la date du jour en paramètre
    Ouvre(FEN_Calendrier, DateDuJour())

Paramètres passés par valeur

Si les paramètres passés à une fenêtre sont modifiés dans cette fenêtre, ces modifications seront prises en compte uniquement dans cette fenêtre. La valeur de ces paramètres n'est pas modifiée dans le traitement appelant.
Par exemple :
  1. La variable MaDate est déclarée dans le code du bouton BTN_Calendrier. Cette variable contient la date du jour (par exemple : MaDate = DateDuJour()).
  2. Cette variable est passée en paramètre à la fenêtre FEN_Calendrier. Le paramètre sDateSel contient la valeur de la variable MaDate.
  3. La valeur du paramètre sDateSel est modifiée dans la fenêtre FEN_Calendrier (par exemple : sDateSel = "20020701").
  4. La valeur de la variable MaDate n'est pas modifiée.

Donner une valeur par défaut aux paramètres dans la déclaration

Il est possible de donner une valeur par défaut aux paramètres dans la déclaration des paramètres. Dans ce cas, le paramètre devient optionnel et s'il n'est pas précisé, la valeur par défaut sera utilisée.
Par exemple, pour donner une valeur par défaut dans l'exemple précédent, saisissez le code suivant dans l'événement "Déclarations globales" de la fenêtre FEN_Calendrier :
// -- Déclarations globales de FEN_Calendrier
PROCÉDURE FEN_Calendrier(sDateSel = "20030101")
//  sDateSel : date à sélectionner

Paramètres nommés

Pour passer des paramètres à une fenêtre lors de son ouverture, il est également possible d'utiliser des paramètres nommés :
  1. Déclarez la procédure toujours de la même façon. Exemple :
    PROCÉDURE FEN_Voyage(Identifiant, Disponibilité)
  2. Passez le paramètre attendu par la fenêtre lors de son ouverture (fonctions Ouvre, OuvreFenêtreMobile, OuvreFille, OuvreSoeur, MDIOuvre) en utilisant pour chaque paramètre la syntaxe :
    <Nom du paramètre> : Valeur

    Par exemple :
    Ouvre(FEN_Voyage(<Identifiant>:123456, <Disponiblité>:Vrai))
Remarque : L'utilisation des paramètres nommés permet par exemple de changer l'ordre des paramètres attendus. Par exemple, il est possible d'écrire :
Ouvre(FEN_Voyage(<Disponiblité>:Vrai, <Identifiant>:123456))

Portées des paramètres

Les paramètres passés à une fenêtre sont globaux à tous les événements de cette fenêtre (initialisation, code d'un bouton, code d'une procédure locale, ...).
Renvoyer une valeur lors de la fermeture d'une fenêtre
Pour renvoyer une valeur lors de la fermeture d'une fenêtre :
  1. Utilisez la propriété ValeurRenvoyée dans les traitements faisant appel à la fonction Ferme.
    Par exemple, dans la fenêtre FEN_Calendrier, le bouton BTN_OK et le bouton BTN_ANNULER ferment la fenêtre après avoir initialisé la valeur à renvoyer :
    // -- Clic sur bouton BTN_OK (fenêtre FEN_Calendrier)
     
    // L'utilisateur a cliqué sur OK,
    // la date saisie dans le champ SAI_ChampDate est renvoyée
    MaFenêtre.ValeurRenvoyée = SAI_ChampDate
    // Fermeture de la fenêtre
    Ferme()

    // -- Clic sur bouton BTN_ANNULER (fenêtre FEN_Calendrier)
     
    // L'utilisateur a cliqué sur BTN_ANNULER,
    // une chaîne vide est renvoyée
    MaFenêtre.ValeurRenvoyée = ""
    // Fermeture de la fenêtre
    Ferme()

    Il est également possible d'utiliser la propriété ValeurRenvoyée dans l'événement "Fermeture" de la fenêtre :
    // -- Code de fermeture de la fenêtre FEN_Calendrier
     
    // La date est saisie dans le champ SAI_ChampDate
    SI SAI_ChampDate = "" ALORS
    // Aucune date saisie
    MaFenêtre.ValeurRenvoyée = ""
    SINON
    // Une date est saisie
    MaFenêtre.ValeurRenvoyée = SAI_ChampDate
    FIN
  2. Récupérez dans une variable la valeur renvoyée par la fenêtre lors de sa fermeture. Cette variable contient le résultat de la fonction Ouvre.
    Par exemple, le bouton BTN_Calendrier permet d'ouvrir la fenêtre FEN_Calendrier. Lors de l'ouverture de cette fenêtre (fonction Ouvre), la date du jour est passée en paramètre. La valeur renvoyée par la fenêtre lors de sa fermeture correspond au résultat renvoyé par la fonction Ouvre. Ce résultat est récupéré dans la variable DateRésultat :
    // -- Clic sur bouton BTN_Calendrier
    // Ouverture de la fenêtre FEN_Calendrier
    // DateRésultat est une variable chaîne contenant
    // la valeur renvoyée par la fenêtre FEN_Calendrier
    DateRésultat = Ouvre(FEN_Calendrier, DateDuJour())
     
    // Analyse du résultat renvoyé par la fenêtre
    SI DateRésultat = "" ALORS
    Info("Aucune date n'a été sélectionnée.")
    SINON
    Info("Date sélectionnée : " + DateVersChaîne(DateRésultat, maskDateSystème))
    FIN

L'exécution du code du bouton BTN_Calendrier est stoppé jusqu'à la fermeture de la fenêtre FEN_Calendrier.
Universal Windows 10 AppAndroidiPhone/iPad Cas particulier : Valeur renvoyée par une fenêtre fille dans une application WINDEV Mobile
Dans les applications mobiles, l'ouverture des fenêtres est effectuée par la fonction OuvreFenêtreMobile (ou la fonction OuvreFille) et non la fonction Ouvre.
Il est possible de connaître la valeur renvoyée par une fenêtre fille dans l'événement "Fermeture d'une fenêtre fille" de la fenêtre ouvrant la fenêtre fille (celle qui a utilisé la fonction OuvreFenêtreMobile ou la fonction OuvreFille).
Par exemple :
  • Dans le code de fermeture de la fenêtre fille, la fonction Ferme est utilisée pour renvoyer un paramètre :
    Ferme("", MonParamètre)
  • Dans l'événement "Fermeture d'une fenêtre fille" de la fenêtre appelante, le nom de la fenêtre fille ainsi que la valeur renvoyée peuvent être récupérés en utilisant le mot-clé MaFenêtreFille :
    // Fermeture d'une fenêtre fille
    NomFenêtreFille = MaFenêtreFille.Nom
    ValeurFenêtreFille = MaFenêtreFille.ValeurRenvoyée
Tester une fenêtre paramétrée
Pour tester une fenêtre paramétrée :
  1. Ouvrez la fenêtre paramétrée sous l'éditeur de fenêtres : sous le volet "Accueil", dans le groupe "Général", cliquez sur "Ouvrir".
  2. Cliquez sur parmi les boutons d'accès rapide (ou appuyez sur la touche F9). La fenêtre suivante apparaît :
    Test d'une fenêtre paramétrée
  3. Spécifiez la valeur du ou des paramètres à utiliser pour le test de la fenêtre. Pour utiliser la valeur par défaut du ou des paramètres, saisissez le caractère "*".
  4. Validez. La fenêtre s'affiche selon la ou les valeurs spécifiées.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Syntaxe des paramètres nommés
Si vous rencontrez des soucis avec la syntaxe des paramètres nommés, essayer celle ci :

Ouvre(FEN_Voyage,<Disponibilité>:Vrai,<Identifiant>:123456)
B.Jaccard
13 oct. 2022
Valeurs renvoyées multiples
Ferme(mafenêtre, valrenv1, valrenv2)

Comment les récupérer ?
VPH
03 fév. 2020

Dernière modification : 14/06/2023

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