DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Gestion des langages externes / VisualBasic
  • Présentation
  • Mise en place
  • 1. Inclusion des fichiers de l'interface Visual Basic de WINDEV
  • 2. Inclusion des déclarations HFSQL
  • Déclaration et initialisation
  • 1. Déclaration du contexte HFSQL et des buffers de travail de chaque fichier
  • 2. Initialisation des DLL de WINDEV
  • 3. Initialisation de HFSQL
  • 4. Chargement de la bibliothèque WINDEV (WDL)
  • 5. Ouverture de l'analyse du projet et association des buffers avec les fichiers de données
  • Exécution de codes WINDEV depuis le langage externe
  • 1. Code d'initalisation du projet WINDEV
  • 2. Appel d'un code WLangage
  • 3. Récupération des événements déclenchés dans les fenêtres WINDEV
  • Mettre fin à l'application
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
Il s'agit ici d'appeler les éléments développés en WINDEV (projet, fenêtres, analyse, ... ) depuis le langage Visual Basic. Ce système repose sur l'utilisation de fonctions déclarées dans la DLL wdxxxle.dll de WINDEV. Le code WLangage utilisé depuis le langage externe sera compilé dynamiquement et exécuté lors de son appel.
Ce mode est illustré dans Ville.VBP (au format Visual Basic 6) fourni dans le sous-répertoire "External Languages\FR\Basic" du répertoire d'installation de WINDEV.
Remarques :
Mise en place

1. Inclusion des fichiers de l'interface Visual Basic de WINDEV

Si vous utilisez une base de données dans votre application, la première étape consiste à générer votre analyse. Dans la description de cette analyse, précisez le langage de programmation utilisé ainsi que le répertoire qui contiendra les fichiers source.
Grâce à la génération, un squelette de programme (*.bas) est généré. Cette opération créera de plus le fichier .gbl (voir plus bas) nécessaire à l'utilisation de vos fichiers de données.
Voici une liste des fichiers à inclure dans un projet Visual Basic pour faire appel à l'interface Visual Basic de WINDEV :
Les fichiers .glb et .bas décrivant la structure des fichiers de données seront générés automatiquement par WINDEV lors de la génération de l'analyse.

2. Inclusion des déclarations HFSQL

Les fichiers .gbl et .bas correspondant à la description des fichiers de l'analyse doivent être ajoutés au projet Visual Basic. Les déclarations des fichiers de données sont incluses dans le fichier d'extension .gbl (ce fichier remplace les .wdr créés avec la version précédente de WINDEV).
Par exemple, dans le projet Ville.vbp (fourni avec WINDEV dans le répertoire "LangagesExternes"), il s'agit du fichier "WD Langage externe.gbl".
Déclaration et initialisation

1. Déclaration du contexte HFSQL et des buffers de travail de chaque fichier

Si l'application doit gérer des fichiers de données, il est nécessaire de déclarer un contexte de travail HFSQL, ainsi qu'un buffer par fichier de données.
Ces déclarations sont effectuées par les lignes suivantes dans le projet WD29 Langage Externe.bas :
' Gestion du contexte des 3 fichiers HFSQL
gCtx = LE_CreateContexteHF(3) ' Structure du fichier VILLE
' Codes Postaux & Villes
Type TYPECD
CODEPOSTAL As String * 5
F_CODEPOSTAL As String * 1
VILLE As String * 30
F_VILLE As String * 1
End Type
Global CD As TYPECD

2. Initialisation des DLL de WINDEV

La première étape pour pouvoir utiliser les éléments développés dans WINDEV est de charger en mémoire les DLL de WINDEV, puis de les initialiser.
Ces opérations sont réalisées par l'appel de la fonction InitModule, dans la procédure appelwd comme suit :
Call InitModule(WDCtx)

3. Initialisation de HFSQL

Dans le cas où votre application fait appel à une base de données, l'accès à HFSQL doit ensuite être préparé. Le test ci-dessous permet de vérifier si cette initialisation se déroule normalement :
'Initialisation de HF
Call appelwd("HFCTX")
If LE_Hinitpartage(gCtx, WDLong) = 0 Then
MsgBox ("Erreur d'initialisation du contexte HF.")
Exit Sub
End If

4. Chargement de la bibliothèque WINDEV (WDL)

La bibliothèque WINDEV d'extension .WDL contient tous les éléments du projet (fenêtres, états, classes, requêtes, analyse, ...). Il faut donc la charger en mémoire pour faire appel aux composants qu'elle contient.
Le chargement est réalisé par la fonction appelwd("Bibli,disque ...") comme suit :
Attention : Si la bibliothèque à charger contient des fenêtres, le code de chacune de ces fenêtres doit être intégré dans le fichier ".WDW" correspondant (option "Intégrer le code compilé" cochée, dans l'onglet "Détail" de la description de chaque fenêtre).
' Ouverture de la bibliotheque
' si WDEntier n'est pas nul, la bibliothèque n'a pas été trouvée!
Call appelwd("BIBLI,disque,ville.wdl")
If WDEntier <> 0 Then
' Bibliothèque non trouvée
Call appelwd("Erreur,La bibliothèque VILLE.WDL doit être dans le répertoire en cours.")
' on indique à WINDEV que le programme va se terminer
Call Hfterminepartage
Call WDTermine
Exit Sub
End If

5. Ouverture de l'analyse du projet et association des buffers avec les fichiers de données

L'ouverture de l'analyse permet de faire appel aux fichiers de données. Une fois cette analyse ouverte avec la fonction HOuvreAnalyse, il ne reste plus qu'à associer les buffers de travail avec les fichiers décrits dans cette analyse :
'ouverture de l'analyse
If Houvreanalyse(gCtx, sNomAnalyse, sMotDePasse, "", "", "") = 0 Then
MsgBox ("Erreur d'ouverture de l'analyse " + sNomAnalyse)
Exit Sub
End If
' Buffer HF du fichier Ville
Call LE_HDecritEnregistrement(gCtx, "VILLE", 37, lTabRubCD(0), 2, sTypeCD, CD)
' Buffer HF du fichier Departement
Call LE_HDecritEnregistrement(gCtx, "DEPARTEMENT", 34, lTabRubDP(0), 2, sTypeDP, DP)
Exécution de codes WINDEV depuis le langage externe

1. Code d'initalisation du projet WINDEV

Ce code permet de démarrer le projet WINDEV en déclarant par exemple les variables globales. Son exécution depuis le langage externe est réalisée par la fonction AppelWD("Projet, NomProjet"). Par exemple :
APPELWD("PROJET,Ville");

2. Appel d'un code WLangage

Toutes 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 commande AppelWD. Par exemple :
' Ouverture d'une fenêtre WINDEV
APPELWD("OUVRE, menu.wdw")
Il est à noter que le paramètre attendu par la fonction AppelWD est une chaîne de caractères contenant le code WLangage à exécuter.
Tout comme le WLangage codé dans WINDEV, cette chaîne n'est pas sensible à la casse (majuscules/minuscules). Donc par exemple la commande "Info" peut aussi être écrite "INFO".

3. 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 une boucle dans votre programme Visual Basic. 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 Visual Basic quel bouton a par exemple été actionné. Cette chaîne n'est pas limitée en taille et peut donc contenir des instructions détaillées que vous récupérerez dans votre code Basic.
Exemple : Code Basic
' ouverture de la première fenêtre du programme contenant le menu
Call appelwd("OUVRE,menu.wdw")
' le programme boucle jusqu'à ce que le choix Fichier Quitte
' soit sélectionné
While WDTouche <> "ESC"
' on effectue la saisie du menu
Call appelwd("ECRAN,saisie")
'---------------------------------------
' Test de l'option choisie.
'---------------------------------------
If WDTouche = "FQ" Then WDTouche = "ESC" ' Sortie
If WDTouche = "RN" Then Call RechVille  ' Recherche par Ville
If WDTouche = "RD" Then Call RechDepar  ' Recherche par Ville
If WDTouche = "DD" Then Call LstDepart  ' Affichage liste.
If WDTouche = "DI" Then Call LstImprime ' Impression.
If WDTouche = "DC" Then Call LstIConfig ' Configuration imp
Wend
' on ferme la fenêtre
Call appelwd("FERME")
Code du menu "Fichier..Quitter" de la fenêtre WINDEV "Menu" (WLangage) :
WDTouche="ESC"
Lorsque l'utilisateur cliquera sur le choix de menu "Fichier..Quitter", WDTouche sera renvoyée dans le code Visual Basic pour entreprendre la prochaine action.
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".
Mettre fin à l'application
Pour terminer l'utilisation de l'interface externe, il suffit d'appeler la commande WDTermine qui n'a pas de paramètres. Par exemple :
WDTermine
Version minimum requise
  • Version 9
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 31/08/2023

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