1. Appel d'un code WLangageToutes les fonctions WLangage peuvent être appelées depuis le langage externe. Leur comportement et les valeurs retournées par ces fonctions du WLangage sont exactement identiques qu'elles soient appelées :
- depuis WINDEV ou
- depuis l'interface langage externe
Pour connaître les paramètres et les valeur de retour d'une fonction du WLangage, il suffit donc de se reporter à l'aide en ligne ou la documentation papier habituelle relative au WLangage.
L'appel à une procédure du WLangage depuis l'interface externe se fait par la fonction
AppelWD. Par exemple :
* ouverture de la première fenêtre du programme contenant le menu
call APPELWD using
by reference "Ouvre,menufc.wdw" & x"00"
2. Récupération des événements déclenchés dans les fenêtres WINDEV
La saisie dans les fenêtres WINDEV rend nécessaire la récupération des événements déclenchés dans ces fenêtres.
Afin de récupérer les événements (clic sur un menu, un bouton ...) de l'utilisateur, vous devez mettre en place un système basé sur une boucle dans votre programme Cobol. Cette boucle sera active tant que la fenêtre WINDEV sera ouverte et permettra d'intercepter chaque action de l'utilisateur.
Pour connaître le type d'action de l'utilisateur, vous disposez d'une variable de type chaîne de caractères (en WLangage) nommée 'WDTouche'. Cette variable sera utilisée dans votre code WLangage pour signaler au programme Cobol quel bouton a par exemple été actionné.
Exemple : Code Cobol
* ouverture de la première fenêtre du programme contenant le menu
call APPELWD using
by reference "Ouvre,menufc.wdw" & x"00"
* le programme boucle jusqu'à ce que le choix Fichier Quitte
* soit sélectionné
Perform MENUSAIS with test before until (WDTouche = "ESC")
...
MENUSAIS.
* on effectue la saisie du menu
call APPELWD using
by reference "Ecran,Saisie" & x"00"
* le compte-rendu WDTouche vaut *M* lorsque un choix de menu
* a été sélectionné
if (WDTouche = "*M*")
move WDChaine to chn
*---------------------------------------
* Decodage de l'option choisie.
* WDChaine contient la suite des lettres d'appel
* qui aboutissent au choix de menu sélectionné
*---------------------------------------
if (Chn = "FQ")
Move "ESC" TO WDTouche
end-if
...
end-if.
Code d'interception de la sélection du menu "Fichier..Quitter" de la fenêtre WINDEV "Menu" :
* le programme boucle jusqu'à ce que le choix Fichier Quitter
* soit sélectionné
Perform MENUSAIS with test before until (WDTouche = "ESC")
...
if (Chn = "FQ")
Move "ESC" TO WDTouche
end-if
...
* Terminer...
copy "wdfin.cbl".
exit program returning zero.
stop run.
Lorsque l'utilisateur cliquera sur le choix de menu "Fichier..Quitter", WDTouche sera égale à "ESC".
Note : La variable WDTouche étant une chaîne de caractères, son contenu peut être une description détaillée de l'action à entreprendre. Par exemple "Fermer l'application".