0% ont trouvé ce document utile (0 vote)
158 vues50 pages

Cours de WinDev Cepromad

WinDev est un atelier de génie logiciel conçu pour développer des applications principalement orientées données, utilisant le langage de programmation WLangage. Il offre des outils pour la création d'interfaces graphiques, la gestion de bases de données, et permet l'intégration avec divers systèmes et applications. La programmation orientée objet est supportée, bien que moins puissante que dans d'autres langages, et les fichiers de projet sont au format binaire, limitant leur manipulation à l'environnement WinDev.

Transféré par

Maurice Mvemba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
158 vues50 pages

Cours de WinDev Cepromad

WinDev est un atelier de génie logiciel conçu pour développer des applications principalement orientées données, utilisant le langage de programmation WLangage. Il offre des outils pour la création d'interfaces graphiques, la gestion de bases de données, et permet l'intégration avec divers systèmes et applications. La programmation orientée objet est supportée, bien que moins puissante que dans d'autres langages, et les fichiers de projet sont au format binaire, limitant leur manipulation à l'environnement WinDev.

Transféré par

Maurice Mvemba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Page 1 sur 50

COURS DE WinDev
0. Introduction
0.1. Présentation de WinDev
WinDev est un atelier de génie logiciel (AGL) édité par la
société française PC SOFT et conçu pour développer des applications,
principalement orientées données pour Windows 8, 7, Vista, XP, 2008,
2003, 2000, mais également pour Linux, .Net et Java. La première version
de l'AGL est sortie en 1993. Apparenté à WebDev et WinDev Mobile.

WinDev utilise son propre « langage de programmation »,


le WLangage (abusivement désigné comme langage de cinquième
génération), ressemblant beaucoup à du pseudo-langage.

L'éditeur d'interface graphique permet de créer des IHM par glisser-


déplacer. Il permet également de choisir un modèle de charte graphique
parmi un ensemble proposé et d'en créer de nouveaux. Attention
cependant, à la différence de la plupart des langages supposés moins
évolués, il a longtemps été impossible d'ajouter des champs à partir de rien
ou de créer une IHM par pure programmation en WLangage : ceci devait se
faire dans l'éditeur d'interface graphique, ou en utilisant un champ
invisible hors fenêtre que l'on clonait. Ceci a conduit à généraliser de
mauvaises habitudes de programmation : utilisation de champs cachés ou
hors fenêtre, par exemple.
À partir de la version 19 les champs peuvent être créés par pure
programmation. Il est cependant toujours impossible (2015) de créer des
classes dérivées depuis les champs proposés, ce que permet la plupart des
autres langages depuis le siècle dernier.

On peut définir interactivement des « sécurités » de saisie sur les champs


parmi lesquelles : taille, masque, formatage automatique, saisie obligatoire
et aide à afficher. Par ailleurs, l'héritage et la surcharge sont gérés.
Bien que prévu initialement pour Windows, WinDev supporte
aussi GNU/Linux pour les applications avec1 et sans interface graphique,
mais aussi Mac OS X. Il peut également s'appuyer sur le
Framework Java pour une partie de ses fonctionnalités, ce qui permet une
relative indépendance du fichier exécutable par rapport au système
d'exploitation cible.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 2 sur 50

Ses frères WebDev et WinDev Mobile permettent d'utiliser le même


langage de programmation (WLangage), et les mêmes concepts (analyse,
fenêtre, états, composants, classes…), pour la génération de sites Web et
d'applications pour PocketPC, terminaux industriels (Windows CE),
smartphones et tablettes (iOS, Android et Windows RT).
WinDev propose également des centres de contrôle intégrés, dont le but est
d'organiser et contrôler le développement :

 Centre de contrôle topologique ;


 Centre de contrôle de planning ;
 Centre de contrôle qualité pour gérer les retours clients (bogues et
suggestions, que l'utilisateur final peut envoyer directement via
chaque application) ;
 Centre de contrôle des données.
WinDev utilise des formats de fichier propriétaire sous forme binaire. Ce
qui implique l'utilisation exclusive du gestionnaire de source maison (GDS)
ainsi que le moteur de recherche de l'EDI. Le code ne peut pas être édité
via un logiciel classique tel que le bloc-notes et surtout ne peut être mis
sous contrôle de version dans un système standard tel
que Subversion, Git ou Mercurial, par exemple. En fait, le développeur
WinDev est totalement lié à l’environnement de développement vendu par
l'éditeur.

La programmation orientée objet est possible, quoique moins puissante


que dans la plupart des langages tels que C++ ou Java (pas de templates,
par exemple). Attention à l'usage particulier du vocabulaire : alors que
traditionnellement une fonction virtuelle est une fonction destinée à être
redéfinie dans des classes héritant d'une classe de base, dans WinDev on
appelle "virtuelles" les fonctions redéfinies.
0.2. Vocabulaire
Dans le contexte de WinDev, beaucoup de termes sont employés dans un
sens différent de celui qu'ils ont habituellement dans la plupart des
langages informatiques, ce qui peut être déconcertant. Voici un aide-
mémoire des principales différences.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 3 sur 50

Désignation Désignation
Concept
standard WinDev
Ensemble d'entités de même type
regroupées dans une base de table fichier
données
Données enregistrées sur un
fichier fichier externe
support de stockage
Elément d'un enregistrement d'une
colonne, champ rubrique
table en base de données
Elément d'interface graphique widget, contrôle champ
Description de la structure d'une
schéma analyse
base de données
cases à cocher interrupteur
Eléments graphiques boutons radio sélecteur
grille table

0.3. Concepts de base


WinDev permet de créer simplement une application

Une application est un outil qui permet de réaliser les tâches, des actions
automatiquement. Une application est constituée d’un programme
exécutable, de librairies, de fichiers de données.

Un Programme exécutable est un fichier composé d’éléments


directement manipulables par l’utilisateur (fenêtre, états, imprimés, …).
Ainsi, pour créer un exécutable, WinDev propose de créer on projet. Un
projet relie entre eux les différents éléments du programme et les organise.

Si votre application manipule les données, WinDev permet de définir la


structure de la base de données grâce à l’analyse.

L’analyse WinDev contient la description des fichiers (appelés souvent


« Tables » dans de nombreuses bases de données ou langages) ;

Fichier : Le terme « Fichier » correspond à une table

Table : désigne un objet graphique permettant de visualiser le contenu


d’un fichier de données sous forme de tableau et/ou de saisir des lignes.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 4 sur 50

Enregistrement : également appelé ligne, il est l’ensemble de rubriques


définies pour le fichier.

Rubrique : c’est une zone d’un fichier de données qui définit la structure
d’un enregistrement.

Clé/Index : Avec WinDev avec sa base de données HFSQL, la notion


d’index est liée à la notion de la clé. La notion de clé fait partie des
caractéristiques d’une rubrique. Les clés permettent d’accélérer les accès
aux données ou de faciliter les parcours des fichiers des données.
Dans les fenêtres et les états, les termes utilisés sont les suivants :
 Fenêtre : permet d’afficher ou de saisir à l’écran les informations ;
on peut également l’appeler « Ecran » ou «Boite de dialogue ».
L’utilisateur peut agir directement sur la fenêtre par l’intermédiaire
de champs, de boutons, ...
 Etat : permet d’obtenir une vue personnalisée d’informations. Ces
informations peuvent provenir de la base de données, de fichiers
texte, de champs présents dans les fenêtres, … Les états peuvent être
visualisés à l’écran, imprimés sur papier, générés en PDF ou en
HTML.
 Champ : Désigne les différents objets graphiques affichés dans une
fenêtre ou dans un état.

 Gabarit : permet de définir le look de l’application ; apparence


visuelle des fenêtres, des boutons, des champs…

 Style : regroupe les caractéristiques graphiques d’un élément :


Image de fond, bordure, police…

0.4. Intégration
WinDev permet de lire et aussi de modifier nativement les informations
de Excel, Outlook, Lotus Notes, de l'ERP SAP R/3 (via la technologie BAPI)
et depuis la version 14 celles de Sales Force et de diverses applications
Google : Maps, Agenda, Contacts, Adwords,… Sont également
supportés : ActiveX, appels de DLL, API Windows, OLE, RS 232 et USB,
TAPI, SOAP, SNMP, OPC, Flash, Twain, FTP, Socket, TSE, Citrix, etc. Des
fonctions domotiques sont présentes (norme X10).
Pour la manipulation d'un projet, les différents fichiers d'un projet ne
peuvent être ouverts qu'avec WinDev (ou WebDev ou WinDev mobile) car
ce sont des fichiers binaires et non pas des fichiers texte.
La création d'application multilangue est prise en compte
automatiquement.
Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 5 sur 50

WinDev permet de s'interfacer avec du code C++, C#, Cobol, Fortran,


Pascal.
0.5. Prise en charge des bases de données
WinDev gère de nombreux systèmes de gestion de base de données, que ce
soit par l'intermédiaire des protocoles ODBC ou OLE DB ou par accès natif.
Il existe un accès natif gratuit pour MySQL, pour PostgreSQL (depuis la
version 14) et pour SQLite (depuis la version 16). D'autres modules payants
permettant l'accès natif à Oracle, SQL Server, Sybase, AS/400,
DB2, Informix et Progress_4GL.
Il existe par ailleurs des accès natifs libres et gratuits comme MySQL4WD
et PostgreSQL4WD de Rodolphe Jouannet2 qui offrent un accès natif à
MySQL et PostgreSQL. Le module libre et gratuit SQLManagerX de
Frederic Emprin3 permet d'écrire un seul code unifié pour gérer les
différents systèmes de gestion de base de données. Par l'ajout d'autres
modules, SQLManagerX offre un accès natif à un grand nombre de bases
de données4.
WinDev comporte aussi son propre système de gestion de base de données
appelé HyperFileSQL (HFSQL) (anciennement nommé HyperFile). Il
existe en version locale, client/serveur sous Windows, Linux et mobile. Les
versions sont compatibles entre elles.
0.6. Les fonctionnalités automatiques des applications développées
Les applications développées avec WinDev bénéficient par défaut de
fonctionnalités automatiquement proposées à l'utilisateur final, qui sont
néanmoins désactivables par le concepteur. Ces fonctionnalités sont :
export des tables vers Word, Excel, OpenOffice et XML, création de
fichier PDF, possibilité de saisir des macros en code WLangage, possibilités
de tri et recherche directe dans les tables, possibilité de mémoriser les
valeurs saisies dans un champ de saisie et de les choisir à nouveau
(persistance des données), correction orthographique en temps réel (le
dictionnaire de OpenOffice.org doit être installé), historique des saisies sur
des champs spécifiés, affichage d'un graphique sur une série de données
sélectionnées, agrandissement de la taille d'une combo, ajout de somme,
moyenne et comptage dans une colonne et le positionnement d'une
minuterie sur un bouton.
À partir de la version 10, l'éditeur d'états et de requêtes peut être installé
gratuitement sur le poste de chaque utilisateur final, ce qui permet à
chaque utilisateur de créer librement ses propres états, étiquettes et
requêtes.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 6 sur 50

0.7. Liste des mots réservés


Les mots réservés du WLangage sont les suivants :

Allouer Permet de réserver de la place en mémoire pour contenir un tableau


dynamique, un objet de classe dynamique, une structure dynamique.

EXTERNE Permet soit d'intégrer un fichier texte contenant du WLangage dans une
application, soit de déclarer un objet externe

Libérer Permet de libérer explicitement la mémoire occupée par un tableau


dynamique, un objet de classe dynamique, une structure dynamique.

MaFenêtre Permet de manipuler la fenêtre courante.

MaFenêtreCoulissanteDroite Permet de manipuler la fenêtre coulissante droite associée à la fenêtre


courante.

MaFenêtreCoulissanteGauche Permet de manipuler la fenêtre coulissante gauche associée à la fenêtre


courante.

MaFenêtreFille Permet de manipuler la fenêtre fille de la fenêtre courante.

Nouveauté 21 Permet de manipuler la fenêtre interne courante.


MaFenêtreInterne

MaPage Permet de manipuler la page courante.

MaSource Permet de manipuler la source de données (fichier, vue ou requête)


courante.

MesParamètres Permet de manipuler les paramètres d'une procédure WLangage (procédure


classique ou procédure à nombre de paramètres variable)

Modulo Retourne le reste d'une division entière.

MoiMême Permet de manipuler le champ en cours.

MonEtat Permet de manipuler l'état courant

MonParent Permet de manipuler le superchamp en cours à partir d'un de ses champs

Null Permet de :
 indiquer qu'un paramètre ne doit pas être pris en compte dans une
requête : Null et les requêtes
 spécifier qu'une variable de type variant ne contient pas de
valeur : Null et les variants
 comparer une valeur à 0 : Null et les numériques
 dans certaines fonctions du WLangage, indiquer que le paramètre
ne doit pas être pris en compte : Null et les fonctions du WLangage

STOP Permet d'appeler le débogueur du WLangage lors d'un test sous l'éditeur.
Après exécution de ce mot-clé, le test en cours s'effectuera dans le

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 7 sur 50

débogueur.

CHAPITRE I : BASES DE PROGRAMMATION


1.1. Déclaration de différents types de variables
a) Les différents types de variables

WinDev propose une grande variété des types des variables


(booléen, entier, réel, monétaire, chaîne, date, heure, durée,
dateheure, variant, tableau, structure, …).

La syntaxe à utiliser pour déclarer une variable est très simple : Il


suffit d’indiquer le nom de la variable et son type :

NomVariable EST UN(E) TypeVariable

b) Quelques exemples :

1.1.1. Variable globale et locale

Présentation
Les variables peuvent être de deux types :
 Variable locale : utilisable uniquement dans le traitement dans
lequel cette variable a été déclarée.
Important : Il ne faut pas déclarer deux variables avec le même nom
(notamment une variable globale et une variable locale).

a) Variable globale : utilisable dans tous les traitements dépendant du


traitement dans lequel cette variable a été déclarée.

Les variables globales déclarées dans le traitement d'initialisation


d'un projet peuvent être utilisées dans tous les traitements :
 du projet.
 de la fenêtre ou de la page (traitement de la fenêtre ou de la page, de
ses champs et des procédures locales associées).

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 8 sur 50

 de l'état (traitement de l'état, de ses champs et des procédures


locales associées).

Ex :
GLOBAL // Toutes les déclarations qui suivent sont des variables globales
Indice est un entier
NomClient est une chaîne
Taux est un réel

LOCAL // Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne
Prix est un monétaire

b) Variable locale
Déclarer une ou plusieurs variables locales
[LOCAL]

<Variables locales>
Détail de la syntaxe

LOCAL : Début de déclaration des variables locales.


L'utilisation du mot-clé LOCAL est optionnelle.
<Variables Variables locales à déclarer.
locales> :
Remarque : Le mot-clé LOCAL peut être remplacé par le mot-
clé LOCALE ou LOCALES.
LOCAL // Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne
Prix est un monétaire
// Toutes les déclarations qui suivent sont des variables locales
I est un entier
PrénomClient est une chaîne
Prix est un monétaire

1.1.2. Constante / Constant

En anglais : Constant
Les constantes sont des éléments du langage dont la valeur est fixée une
fois pour toute. Cette valeur ne peut pas être modifiée au cours du
programme.
Remarque : Les mots-clés CONSTANT et CONSTANTE sont acceptés.
Dans cette documentation, seul le mot-clé CONSTANT est utilisé et peut
être remplacé par CONSTANTE.
Exemple

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 9 sur 50

CONSTANT
TauxTVA = 19.6
FIN

Syntaxe
Déclarer une ou plusieurs constantes Masquer les détails
CONSTANT
<Nom de la constante 1> = <Valeur 1>
<Nom de la constante 2> = <Valeur 2>
FIN

1.2. Instructions de base de WLangage

1.2.1. Instruction SI

En anglais : If
L'instruction conditionnelle SI permet de choisir d'exécuter une action en
fonction d'une condition.

Exemple de SI Simple
SI SAI_POURCENTAGE >= 75 ALORS
Info("Bravo, vous avez gagné ; préparez-vous pour recevoir notre bourse")
SINON
Info("Désolé, Fournissez encore beaucoup d’effort pour tenter ultérieurement" )
FIN

Exemple SI Imbriqué
SI Client.AgeCalculé > 60 ALORS
PersonneAgée += 1
SINON SI Client.AgeCalculé > 18 ALORS
PersonneAdulte += 1
SINON SI Client.AgeCalculé > 4 ALORS
PersonneEnfant += 1
SINON
PersonneBébé += 1
FIN
Syntaxe
Syntaxe 1
SI <Condition> ALORS
<Action si condition vraie>
[SINON
<Action si condition fausse>]
FIN

Syntaxe 2
SI <Condition 1> ALORS
<Action si condition 1 vraie>
[SINON SI <Condition 2> ALORS
<Action si condition 2 vraie>
[SINON SI <Condition 3> ALORS

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 10 sur 50

<Action si condition 3 vraie>


[...]]]
FIN

Condition
Le paramètre <Condition> peut être de la forme :
 <Valeur> = <Expression> Test d'égalité

 <Valeur> < <Expression> Test de comparaison

 <Valeur> <= <Expression> Test de comparaison

 <Valeur> > <Expression> Test de comparaison

 <Valeur> >= <Expression> Test de comparaison

 <Valeur> = <Expression La <Valeur> doit être comprise entre l'expression


minimale> A <Expression maximale> minimale et maximale

Condition composée
Les mots-clés ET et OU permettent d'effectuer des opérations logiques et
de construire des conditions composées.
Par exemple :
SI Client.Ville = "Montpellier" ET Client.Civilité = "Monsieur" ALORS
HommeMontpellier ++ // Nombre d'hommes habitant à Montpellier
FIN

SI Client.Ville = "Montpellier" OU Client.Ville = "Lyon" ALORS


MontpellierLyon ++ // Nombre de clients habitant soit à Montpellier,
soit à Lyon
FIN

Exemple plus pratique :


SI SAI_Nom="" OU SAI_Prénom="" OU SAI_Téléphone="" ALORS
Info("Vous devez remplir tous les champs")
SINON
EcranVersFichier(EXPRESS_Départ)
HAjoute(EXPRESS_AMIGO)
Cacherleschamps()
ExécuteTraitement(EXPRESS_Départ,trtPriseFocus)
TableAffiche(TAmi, taCourantEnreg)
FIN

Les conditions composées de ET et OU sont évaluées dans leur totalité.


Par exemple :
A > 10 ET B < 20
Si la première condition (A > 10) est fausse, la deuxième condition (B < 20)
sera tout de même vérifiée.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 11 sur 50

Optimiser l'évaluation des conditions composées : Utilisez les


mots-clés _ET_ et _OU_. Si la première condition est fausse (A>10 dans
notre exemple), la seconde condition (B<20 dans notre exemple) ne sera
pas testée. Pour plus de détails, consultez Opérateurs logiques.

1.2.2. Instruction TANTQUE

En anglais : WHILE
Dans une instruction TANTQUE, l'expression est évaluée à chaque début
du bloc d'instructions.
Tant que l'expression de condition est vraie, le traitement boucle. Il y a
sortie du bloc d'instructions lorsque l'expression de condition est fausse.
Exemple
MaListe = INILit("Exemples", "", "", FichierINI)
MotClé = ExtraitChaîne(MaListe, nb, RC)
TANTQUE MotClé <> ""
nb = nb + 1
NomExpl = INILit("Projets installés", MotClé, "", FichierINI)
MotClé = ExtraitChaîne(MaListe, nb + 1, RC)
FIN
Syntaxe
Condition "TANTQUE"Masquer les détails
TANTQUE <Condition>
<Action si condition vraie>
FIN

1.2.3. Instruction POUR

En anglais : For
Le bloc d'instructions est répété en modifiant une variable de contrôle puis
en la comparant à une valeur limite, avant chaque début du bloc
d'instructions.
Le bloc d'instructions est alors exécuté pour chacune des valeurs que prend
successivement la variable de contrôle. La variable de contrôle reçoit la
valeur initiale lors de la première entrée dans l'instruction POUR.
Une syntaxe optimisée est disponible : cette syntaxe permet de ne pas ré-
évaluer la valeur limite et / ou la valeur du pas à chaque itération (utile par
exemple dans le cas d'une répétition sur le nombre de ligne d'une table).
Exemple
POUR Indice = 1 A 10
MonTableau[Indice] = MaVariable + 10
FIN
POUR Indice = 10 A 1 PAS -1
MonTableau[Indice] = MaVariable + 10
FIN

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 12 sur 50

POUR Indice = 1 A 5
Trace(Indice)
FIN
Info(Indice) // Indice vaut 6
// Syntaxe optimisée
// Parcours des lignes de la table.
// Le nombre de lignes est calculé une seule fois
POUR Indice = 1 _A_ TABLE_MaTable..Occurrence
COL_MaCol[Indice]..Couleur = iVertFoncé
FIN

1.2.4. Instruction GOTO

L'instruction GOTO permet d'exécuter un code identifié par une étiquette


donnée.
Important : L'étiquette doit obligatoirement être définie dans le même
traitement que l'instruction GOTO.
Exemple
Res = fOuvre(NomFichier, foEcriture)
SI Res = -1 ALORS GOTO ERROUVRE
Res = fEcrit(Res, "Traitement OK")
SI Res = -1 ALORS GOTO ERRECRIT
...
RENVOYER Vrai
ERROUVRE :
Info("Le fichier " + NomFichier + " ne peut être ouvert. Vérifiez son existence.")
RENVOYER Faux
ERRECRIT :
Info("Il est impossible d'écrire dans le fichier " + NomFichier)
RENVOYER Faux

1.2.5. Instruction BOUCLE

En anglais : LOOP
Le bloc d'instructions est répété à l'infini. Le nombre d'itérations du bloc
d'instructions n'est pas contrôlé, il n'y a pas d'expression à évaluer.

Exemple
// Sortie selon une condition SI
BOUCLE
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne(NumFic)
SI UneLigne = EOT ALORS SORTIR
TraiteLigne(UneLigne)
FIN
// Sortie selon une condition TANTQUE
BOUCLE
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne(NumFic)
TraiteLigne(UneLigne)
A FAIRE TANTQUE UneLigne <> EOT

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 13 sur 50

// Sortie selon une itération


BOUCLE (10)
// Lecture d'une ligne du fichier texte
UneLigne = fLitLigne(NumFic)
TraiteLigne(UneLigne)
FIN

Chapitre II : L’analyse du projet

2.1. Les prés-requis de la programmation

Réalisez qu’il vous soit demandé de produire un programme qui soit


capable de vous afficher la facture dont modèle ci-après :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 14 sur 50

Avant d’aborder le vif du problème, il faudrait analyser les données


du document « Facture » en utilisant l’une des méthodes d’analyse
par exemple Merise, UML…

- Collecter les informations nécessaires par rapport au document

- Filtrer les données

- Extraire les objets, extraire les objets

- Créer le dictionnaire des données

- Créer le Modèle Conceptuel de Données (MCD)

 Respecter les règles de base

 Les règles de gestion

- Créer le Modèle Logique de Données (MLD)

2.2. Collecter les informations nécessaires par rapport au document

2.3. Collection des données


Nom frs ; Forme juridique frs ; adresse frs ; Ville frs ; Date facture ;
Numéro Facture ; Mode de règlement facture ; Code Client ; Nom
Client ; Prénom Client ; Téléphone Client ; Ville client ; Référence
article ; Libellé article ; Prix Unitaire ; Quantité Article ; Montant
Ht ; Tva ; Montant TTC.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 15 sur 50

2.4. Filtrer les données et les objets

2.5. Dictionnaire de données

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 16 sur 50

2.6. Les règles de gestion


Règle1 : Un Client a au minimum 0 facture, au maximum plusieurs factures

Règle2 : Une facture appartient à un seul client

Règle3 : Une facture contient au moins un article, au maximum plusieurs


articles

Règle4 : Un article appartient au minimum à 0 facture, au maximum plusieurs


factures

Règle5 : Un Fournisseur établit au minimum 0 facture, au maximum


plusieurs factures

Règle6 : Une facture appartient à un seul fournisseur

2.7. Modèle Conceptuel de données

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 17 sur 50

2.8. Modèle Logique de Données (MLD)

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 18 sur 50

CHAPITRE III : La gestion des cycles de vie de nos


développements

Après avoir cliqué sur WD20, l’interface suivante vous sera présentée ;

3.1. LES FENETRES


Les fenêtres permettent d’afficher ou de saisir les informations à l’écran.
L’utilisateur peut agir directement sur les fenêtres par l’intermédiaire de
champs, de boutons, …

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 19 sur 50

Dans cette partie, nous nous concentrerons sur la création de fenêtres


simples. Le projet « WD Mes premières Fenêtres » est un projet vide, déjà
créé.
3.2. Projet et Analyse

3.2.1. Présentation du projet

Pour créer une application avec une base de données, il faut :


 Créer le projet lié à l’application. Ce projet regroupera tous les
éléments de l’application (fenêtres, codes, requêtes, états, …
 Créer l’analyse liée au projet. L’analyse permet de décrire tous les
fichiers de données manipulées par l’application.
Création du projet
Pour créer un projet, cliquer sur Ouvrir ou l’outil correspondant,
Projet et on aura l’écran de l’assistant suivant :

Dans la boîte de dialogue suivante, choisir liste de gabarits pour


Chartes ; choisir 800 x 600 pour taille, Ne pas afficher la fenêtre le
saviez-vous, Oui, créer une nouvelle base de données…

3.2.2. Création de l’analyse

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 20 sur 50

Les étapes de la création d’analyse sont les suivantes :


1. Indiquer le nom et le répertoire de l’analyse

2. Vous pouvez ensuite le ou les types de base de données


manipulées par le projet. Sélectionnez HFSQL Classic (la BDD
proposée par défaut avec WD).

3.3. Création de la description des fichiers de données

Nous prendrons pour illustration une application dénommée « Gestion de


commandes» qui sera associée à l’analyse suivante comportant cinq
fichiers de données (tables) différents :
- Client
- Commande
- ModeRèglement
- LigneCommande
- Produit.

Voici l’analyse :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 21 sur 50

Pour créer les différents fichiers de données de cette analyse, nous allons
utiliser différentes méthodes disponibles dans WinDev.

3.3.1. Création d’un fichier de données : utilisation d’un fichier prédéfini

 Sélectionner dans l’assistant l’option « Sélectionner une description


parmi les fichiers de données prédéfinis ».
 Dans la liste de fichiers de données prédéfinis qui apparaît ;
sélectionner « Client »
 Dans la liste des rubriques à intégrer dans le fichier Client qui
apparaît, cocher uniquement les rubriques suivantes : IDClient,
Société, Nom, Prénom, Adresse, CodePostal, Ville, EtatDep, Pays,
Téléphone, Mobile, Email.
 Valider l’assistant, cliquer sur « Editeur de WinDev ». Le fichier
Client est automatiquement créé sous l’éditeur d’analyses.

3.3.2. Création d’un fichier de données : Création du fichier et des


rubriques

Nous allons maintenant créer le fichier de données contenant les


commandes
 Sous le volet « Analyse », dans le groupe « Création », cliquer sur
« Nouveau fichier ».
 Sélectionner dans l’assistant qui se lance l’option « Créer une
nouvelle description d’un fichier de données », renommer (ex :
Commande.fic)

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 22 sur 50

Saisir les toutes rubriques du fichier « Commande » :


 Voyez que la rubrique IDCommande est automatiquement créée.
 Rubrique date (de la commande):Double-cliquer dans la colonne
« Nom » de la première ligne vide, saisir Date, cliquer dans la
colonne « Libellé », le nom apparaît automatiquement mais nous le
modifions un tout petit peu par Date de la Commande » ;
sélectionner le type « Date ». Cette rubrique va être une clé(un
index) de notre fichier de données : les clés permettent d’accélérer
les accès aux données et les tris. Re-sélectionner la ligne de la
rubrique « Date »pour activer les champs de description présents
sur la droite de l’écran. Préciser le type de clé utilisée ; suffit-il de
préciser le type de clé, dans notre cas la date est une clé avec
doublons. Définir enfin le sens de parcours de la clé (permet de
définir le tri par défaut)

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 23 sur 50

 Rubrique Etat : Sur une nouvelle ligne de la table, saisir Etat comme
nom, Etat de la commande comme ; pour le type : Sélecteur, Liste
combo ; Dans la partie basse de l’écran, cliquer sur la double flèche
pour afficher les paramètres du champ lié à la rubrique sélectionnée.
 Dans l’onglet Contenu, cliquer sur le bouton »+ » puis saisir la
première option « En attente » ; cliquer encore sur le bouton « + »
puis saisir « Nouveau » enfin saisir « annuler » pour option 3.

 Rubrique TotalHT : Positionnez-vous sur une nouvelle ligne, mais ici


le type est Monétaire ».
 Rubrique TotalTTC : Positionnez-vous sur une nouvelle ligne, mais
cette fois encore le type est Monétaire ».
 C’est terminé avec la description du fichier « Commande ». Valider la
fenêtre
3.4. Créer des relations

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 24 sur 50

Comme Access, les fenêtres sélectionnées devront être mises en relation


afin d’interagir dans notre base de données.
Faites en sorte que l’analyse finale se présente comme suit :

3.5. LE RAD COMPLET

Les RAD sont les initiales de « Rapid Application Development »


permettant de construire automatiquement une application, c’est-à-dire
construire toutes les fenêtres, les états et les requêtes nécessaires. Mais
vous pouvez également créer vos propres patterns RAD.

3.5.1. Génération du RAD

Pour générer le RAD, Projet, Génération, Rad Application complète,


Sélectionner le modèle, Refuser d’intégrer le groupware utilisateur,
Intégrer le menu ; Conserver seulement l’option « Aide des FAA
(Fonctionnalités de l’Application) » ; terminer l’assistant.
Cliquer sur Go (en vert) pour tester le programme.

Ci-bas l’exemple d’une application monté en RAD :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 25 sur 50

3.6. Application Complète avec données

Dans cette application de gestion de commandes, nous apprendrons


à Visualiser, saisir et modifier les produits ; imprimer les états, afficher des
statistiques…

3.6.1. Création du Champs table

- Nouveau, Fenêtre, Fenêtre, suivant


- Pour créer les champs Table, Table et liste ; Table vertical
- Sélectionner « Afficher les données d’un fichier ou d’une requête
existante, sélectionner la table concernée, les champs en omettant
l’ID de la table, choisir le tri, ici Libellé ;

3.6.2. Création des champs de saisie

- Volet « « Analyse », « WD Application complète » ; « + »,


« Produit », Sélectionner à l’aide de la souris l’ensemble des
rubriques affichées dans le volet (sauf la rubrique IDProduit),
effectuer maintenant le « Drag and drop » ou le « glisser/déplacer)
dans la fenêtre récemment créée, enregistrer le projet et créer les
boutons puis valider.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 26 sur 50

Ecrire ce code pour le Bouton Valider :

- Ajouter d’autres boutons et faire de même que l’exercice


Express_Amigo.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 27 sur 50

3.7. Exercice à réaliser ensemble

Pour la gestion des stocks, voici l’analyse, tout en évitant d’utiliser des RAD,
monter cette application.

3.8. Le champ Combo

3.8.1. Présentation du champ Combo

Champ d'une fenêtre, champ d'une page dynamique ou statique


Le champ "Combo" permet d'afficher une liste d'éléments et de
sélectionner un élément dans cette liste.
A la différence d'un champ Liste, un champ Combo n'est pas déroulé : elle
se déroule à la demande ou lors du positionnement du curseur sur la liste.
Sous WINDEV et WINDEV Mobile, il est possible de :
 saisir directement une valeur dans un champ de saisie, si le champ
Combo est avec saisie.
 afficher des éléments sous forme de table si le champ Combo contient
plusieurs colonnes.
 afficher des éléments sous forme de liste image.
 ouvrir une fenêtre popup.
 redimensionner la largeur et la hauteur du combo déroulé (voir ci-
dessous)

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 28 sur 50

3.8.2. Quelques exemples :

Combo sans saisie, non déroulée

Combo déroulée avec éléments sous forme de liste

Les exemples suivants concernent uniquement WINDEV et WINDEV


Mobile.

Combo déroulée avec éléments sous forme de table

Les éléments apparaissant dans un combo peuvent être déterminés lors de


la création du champ sous l'éditeur. Ces éléments :
 sont déterminés par programmation.
 proviennent d'un fichier de données ou d'une requête.

3.8.3. Créer un champ Combo

Pour créer un champ de type Combo :


1. Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur
"Combo".
2. Cliquez dans la fenêtre / page à la position où le champ doit être créé.
L'assistant de création d'un champ Combo se lance automatiquement.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 29 sur 50

Astuce : Il est également possible de créer directement un combo "pré-


formatée" en déroulant l'option "Combo". La liste des champs disponibles
avec leur aperçu au gabarit du projet apparaît. Il suffit de cliquer sur le
champ voulu pour le créer dans l'éditeur.
Pour afficher les caractéristiques du champ, sélectionnez l'option
"Description" dans le menu contextuel du champ.
Type de combo déroulé
Le type du combo déroulé dépend des éléments affichés par le champ
Combo. Les types proposés sont les suivants :
 combo liste : affiche des éléments sous forme de liste.
Dans le cas d'un champ Combo fichier, la rubrique affichée est définie
dans l'onglet "Contenu" de la description du champ (option
"Description" du menu contextuel).
 combo table : affiche des éléments sous forme de table. Dès que le
champ Combo doit afficher plus d'un élément, un combo avec table est
automatiquement créé.
Pour afficher les caractéristiques des colonnes de la liste, sélectionnez
l'option "Description Colonnes" dans le menu contextuel du champ (ou
cliquez sur le bouton "Editer les colonnes" présent dans l'onglet
"Contenu" de la description du combo).
Dans le cas d'un champ Combo fichier, les différentes rubriques
affichées sont définies dans les caractéristiques des colonnes de la liste
(option "Description Colonnes" du menu contextuel ou bouton "Editer
les colonnes" dans l'onglet "Contenu" de la description du champ).
 combo liste image : affiche des éléments sous forme de liste image.
Pour afficher les caractéristiques de la liste image, cliquez sur le bouton
"Editer la liste image" présent dans l'onglet "Contenu" de la description
du combo.
Dans le cas d'un champ Combo fichier, la rubrique associée au libellé
de l'image et celle associée à l'image sont définies grâce aux options
"Rubrique affichée" et "Rubrique image" présentes dans l'onglet
"Contenu" de la description de la combo (option "Description" du menu
contextuel).
 combo fenêtre popup : ouvre une fenêtre popup.
La fenêtre popup à ouvrir peut être sélectionnée dans l'onglet
"Contenu" de la description du champ (option "Description" du menu
contextuel).
Le type du combo déroulée peut être changé à tout moment grâce à
l'option "Type déroulé" présente dans l'onglet "Contenu" de la description
du combo (option "Description" du menu contextuel).

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 30 sur 50

3.8.4. Vocabulaire

Pour manipuler simplement un combo, il est nécessaire de connaître le vocabulaire suivant :

Nom Définition

Bandeau de sélection Permet de visualiser l'élément sélectionné dans la liste déroulante. Le plus
souvent, une couleur spécifique est utilisée.

Combo Fichier Le champ Combo est basé sur un fichier de données ou une requête. Les
éléments du champ correspondent à des enregistrements du fichier de données.
Deux types de champ Combo fichier sont disponibles :
 Combo fichier "Chargé en mémoire" : Le contenu du champ est chargé en
mémoire puis affiché dans le champ. L'accès aux différents éléments du champ
Combo est plus rapide. Ce mode est réservé pour des fichiers de données de
moins de 100 000 enregistrements.
 Combo fichier "Accès direct (sans limite)" : Le champ affiche directement le
contenu du fichier de données ou de la requête. L'enregistrement en cours
correspond à l'élément sélectionné. Chaque déplacement dans le champ entraîne
un accès au fichier lié. Ce type de champ est réservé aux fichiers de données de
plus de 100 000 enregistrements.

Combo Mémoire Le champ Combo n'est basé ni sur un fichier de données ni sur une requête. Les
éléments affichés dans le champ Combo sont déterminés par le développeur
(dans la fenêtre de description ou par programmation)

Combo avec saisie L'utilisateur peut saisir du texte dans le champ de saisie associé à la combo. Si
l'option "Saisie assistée" est sélectionnée, l'utilisateur peut ainsi sélectionner
rapidement l'élément en saisissant les premières lettres : les lettres saisies sont
automatiquement complétées avec l'élément correspondant.

Combo sans saisie L'utilisateur sélectionne l'élément dans la liste à l'aide du bandeau de sélection.

Permuter
WINDEV permet de transformer automatiquement un combo standard en
un combo avec table et inversement :
1. Sélectionnez le champ à transformer.
2. Sous le volet "Modification", dans le groupe "Transformations",
déroulez "Refactoring et permutations" et sélectionnez "Combo /
Combo avec table".

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 31 sur 50

Exemple
Plusieurs champs combo prédéfinis sont proposés dans le volet "Assistants,
Exemples et Composants" :
1. Cliquez sur le bouton "Champs" du volet "Assistants, Exemples et
Composants".
2. Dans la liste des champs, cliquez sur "Champ pré-rempli".
Pour intégrer un de ces champs dans votre fenêtre / page, il suffit
d'effectuer un "Drag and Drop" du champ présent dans le volet "Assistants,
Exemples et Composants" vers votre fenêtre / page.

3.9. Exemple d’une application complète avec une table

Après avoir cliqué sur WD 20 et reçu une interface,


 vous aurez à cliquer sur Créer un projet
 Application Windows ou Linux…
 Renommer le projet et sélectionner le dossier d’hébergement;
Suivant
 Plate-forme Windows ; Exécutable Windows 32 bits ou 64 bits (à
choisir)
 Oui, utiliser la charte de programmation ci-dessous : Standard
 Ne pas afficher la fenêtre «le saviez-vous » au lancement de
l’application
 Oui, créer une nouvelle base de données
 Suivant ; suivant…
 HFSQL Classic, Suivant.

3.9.1. La base de données

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 32 sur 50

 Renommer le fichier des données (en réalité, c’est l’identifiant qui est
créé); Suivant
 Sur la fenêtre qui s’affichera, on complètera toutes les rubriques de la
manière suivante :

 Suivant ; puis créer une fenêtre ; Vierge ; Oui (pour synchronisation


du projet)

3.9.2. Création de la fenêtre

 Clic droit sur le projet vierge, description


 Renommer « Départ » pour le Nom logique et « Fenêtre principale de
l’application » pour le Titre.
 Projet ; Combo du projet ; description
 Dans Initialisation, adapter le code suivant :
HCréationSiInexistant(EXPRESS_AMIGO)
 Dans le menu Création, choisir « Table et liste » ; Table verticale,
déposer sur le formulaire
 Remplir le champ table par programmation ; suivant
 Définir le nombre des colonnes
 Dans « Création d’un champ Table », renommer la table Ex :TAmi
 Clic droit sur le DataGrid, Description
 Renommer les colonnes ; dans le Combo juste en bas, déterminer le
type

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 33 sur 50

 Dans masque de saisie choisir le format du texte (ex :+999) pour


l’identifiant uniquement et dans IHM, désactiver ‘Visible’.
 Renommer toutes les autres colonnes et leurs libellés et l’on aura :

 Clic droit sur le formulaire (et non sur le datagrid) ; description


 Ecrire le code suivant dont TAmi est le nom de la table :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 34 sur 50

3.9.3. Les procédures locales

- Dans le menu Création, ajouter les boutons commandes ; clic droit,


description, renommer et déterminer le libellé.
- Dérouler et cliquer-glisser pour avoir toutes les rubriques
- Clic droit sur le menu Alignement, Code pour avoir « Procédures
locales »
- Procédures locales ; clic droit juste à droite, nouvelle procédure locale,
renommer « Cacherleschamps » ; dans la boîte de dialogue qui apparaît,
saisir ces codes :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 35 sur 50

- Clic droit sur chaque rubrique ; désactiver visible dans IHM


- Clic droit sur Procédures locales ; nouvelle procédure locale,
renommer (« Afficherleschamps ») ;
- Reprendre la même opération que dans le tableau précédent tout en
remplaçant tous les Faux par les Vrais

PROCEDURE AfficherlesChamps

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 36 sur 50

- Clic droit sur Ajouter et ensuite Modifier, Code, puis saisir


« Afficherleschamps() »
- Clic droit sur Réinitialiser, Code, puis saisir « Cacherleschamps() »

Voici le code pour BTN_Modifier

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 37 sur 50

3.9.4. Voici le code pour BTN_ValiderAjouter :

SI SAI_Nom="" OU SAI_Prénom="" OU SAI_Téléphone="" ALORS


Info("Vous devez remplir tous les champs")
SINON
EcranVersFichier(EXPRESS_Départ)
HAjoute(EXPRESS_AMIGO)
Cacherleschamps()
ExécuteTraitement(EXPRESS_Départ,trtPriseFocus)
FIN

3.9.5. Et pour BTN_ValiderModification

SI SAI_Nom="" OU SAI_Prénom="" OU SAI_Téléphone="" ALORS


Info("Vous devez remplir tous les champs")
SINON
EcranVersFichier(EXPRESS_Départ)
HModifie(EXPRESS_AMIGO)
Cacherleschamps()
ExécuteTraitement(EXPRESS_Départ,trtPriseFocus)
Cacherleschamps()
FIN

- Ajouter les libellés, les renommer par ex : « libelleNom » ainsi que les
boutons BTN_Supprimer (Supprimer cet enregistrement) et
BTN_Supprimer et BTN_SelectionnerSupprimer
- Dans Procédures locales, ajouter SelectionLibelle dont voici les codes :

- Après avoir fait clic droit sur Datagrid, Codes, ajouter après Sélection
d’un ami « SelectionLibelle() » ; ceci permet d’afficher sur les
rubriques à modifier l’enregistrement sélectionné
- Compléter le code pour Déclarations globales d’Express_Départ :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 38 sur 50

Et également pour Prise de Focus de Express_Départ:

TableSupprimeTout(TEtudiant)
POUR TOUT EXPRESS_Etude
TableAjouteLigne(TEtudiant, EXPRESS_Etude.IDEXPRESS_Etude,
EXPRESS_Etude.Nom, EXPRESS_Etude.Prénom, EXPRESS_Etude.Téléphone,
EXPRESS_Etude.Sexe, EXPRESS_Etude.DateNaissance)
FIN
SélectionLibellé()

Ce code ci-dessus est celui qui permet l’interaction des enregistrements du


Fichier ; c’est-à-dire quand on enregistre ou on modifie ou encore on
supprime, le résultat est directement visible sur notre Table(Datagrid).

3.9.6.Pour le bouton Supprimer, voici le code :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 39 sur 50

Créer une procédure locale nommée « Afficherlibelle » avec ces codes :

PROCEDURE AfficherLibelle()
libelleNom..Visible=Vrai
libellePrénom..Visible=Vrai
libelleTéléphone..Visible=Vrai
BTN_Supprimer..Visible=Vrai

 Ecrire AfficherLibelle() dans Clic sur BTN_SelectionnerSupprimer


 Désactiver tous les visibles des rubriques (au coin inférieur droit)
 Modifier les codes du BTN_Supprimer :

HLitRecherche(EXPRESS_AMIGO,IDEXPRESS_AMIGO,col_ID)
SI HTrouve(EXPRESS_AMIGO) ALORS
HSupprime(EXPRESS_AMIGO)
ExécuteTraitement(EXPRESS_Départ, trtPriseFocus)
libelleNom..Visible=Faux
libellePrénom..Visible=Faux
libelleTéléphone..Visible=Faux
BTN_Supprimer..Visible=Faux
FIN

Ajouter un libellé en bas et un champ de saisie pour afficher le nombre


d’amis ;

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 40 sur 50

Créer une procédure locale nommée « NbAmis » puis écrire le code


suivant :

PROCEDURE NbAmis()

libellenbAmis=HNbEnr(EXPRESS_AMIGO)

Ajouter NbAmis() dans procédures globales comme d’habitude ; ci-dessous


l’écran de son exécution et voyez qu’il vous affiche le nombre
d’enregistrements trouvés dans la base de données :

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 41 sur 50

3.10. Pour imprimer ou afficher les résultats

- Création, Autres champs, Formes, Rectangle puis Bouton pour


Imprimer la BDD, renommer « Imprimer la Database »
- Projet, Nouveau, Etat, Fiche, Suivant, d’une nouvelle requête,
sélectionner les rubriques de la table, Suivant, Non, Suivant,
renommer la bdd et terminer.
- On aura :

- Enregistrer l’état
- Codifier le bouton « Imprimer la Database » comme suit :
iAperçu(i100)
iImprimeEtat(EXPRESS_ETAT_Ami1)

- Créer le bouton « Réinitialisersupprimer » puis le code suivant :


libelleNom..Visible=Faux
libellePrénom..Visible=Faux
libelleTéléphone..Visible=Faux
BTN_Supprimer..Visible=Faux
BTN_Réinitialisersupprimer..Visible=Faux
- Dans IHM, désactiver Visible

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 42 sur 50

3.10. Traitements associés aux fenêtres

Traitements gérés par défaut


WINDEV et WINDEV Mobile gèrent par défaut les traitements suivants
(ordre d'apparition sous l'éditeur de code) :

Traitement Condition d'exécution


Déclarations Déclaration des variables globales à la fenêtre. C'est le
globales premier code exécuté lors de l'ouverture de la fenêtre.
Fin Exécuté lors de l'ouverture de la fenêtre.
d'initialisation L'ordre d'exécution des traitements est le suivant :
 Initialisation des champs de la fenêtre (*)
 Initialisation de la fenêtre
 Prise de focus
Remarque : Si du code de mise à jour de champs est
mis dans ce traitement, il peut apparaître un effet de
clignotement. En effet, le code d'initialisation des
champs est alors exécuté avant le code de mise à jour.
Fermeture Exécuté lors de la fermeture de la fenêtre.
Remarque : Une reprise de saisie sur un des champs
de la fenêtre dans ce code empêche la fenêtre de se
fermer.
Demande de mise Permet de regrouper le code de mise à jour des
à jour de champs de la fenêtre : contenu des champs, état
l'affichage (visible, grisé, ...), libellé à mettre à jour, ...
Ce traitement peut attendre des paramètres. Il suffit
de déclarer une procédure dans le traitement. Par
exemple :
// Demande de mise à jour de l'affichage
PROCEDURE DemandeMiseAjour(TypeMiseAJour est
un booléen)
Ce traitement est lancé sur demande grâce aux
fonctions :
DemandeMiseAJourIHM : Exécute le traitement à la
fin du traitement en cours (lancement asynchrone).
ExécuteMiseAJourIHM : Exécute immédiatement le
traitement.
Lors de l'appel de ces fonctions, il est possible de
préciser la valeur des paramètres attendus par le

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 43 sur 50

traitement.
}
Avant fermeture Exécuté lors de l'utilisation du bouton OK / Fermer
par bouton OK / Fonctionnement du bouton Fermer
Fermer
Les traitements exécutés sont les suivants :
 exécution du traitement "Avant fermeture par
bouton OK/Fermer".
 exécution du code du bouton de type "Abandon"
présent dans la fenêtre (si ce bouton existe). Si la
fenêtre ne contient aucun bouton de type "Abandon",
fermeture de la fenêtre.
Fonctionnement du bouton OK
Les traitements exécutés sont les suivants :
 exécution du traitement "Avant fermeture par
bouton OK/Fermer".
 exécution du code du bouton de type
"Validation" présent dans la fenêtre (si ce bouton
existe). Si la fenêtre ne contient aucun bouton de type
"Validation", fermeture de la fenêtre.
Exécuté lors de l'utilisation du bouton OK / Fermer
Fonctionnement du bouton Fermer
Les traitements exécutés sont les suivants :
 exécution du traitement "Avant fermeture par
bouton OK/Fermer".
 exécution du code du bouton de type "Abandon"
présent dans la fenêtre (si ce bouton existe). Si la
fenêtre ne contient aucun bouton de type "Abandon",
fermeture de la fenêtre.
Fonctionnement du bouton OK
Les traitements exécutés sont les suivants :
 exécution du traitement "Avant fermeture par
bouton OK/Fermer".
 exécution du code du bouton de type
"Validation" présent dans la fenêtre (si ce bouton
existe). Si la fenêtre ne contient aucun bouton de type
"Validation", fermeture de la fenêtre.
Remarque : Si le traitement "Avant fermeture par
bouton OK/Fermer" appelle la fonction RepriseSaisie,
la fenêtre ne sera pas fermée.
Ce traitement n'est pas disponible.
Prise de focus Exécuté lorsque la fenêtre prend le focus (la barre de
titre est active) et qu'une autre fenêtre de l'application

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 44 sur 50

perd le focus : l'utilisateur a cliqué sur une autre


fenêtre de l'application
la fonction RepriseSaisie a été exécutée depuis une
autre fenêtre de l'application
Ce traitement ne sera pas exécuté :
lors de l'ouverture de la première fenêtre du projet.
lors de l'exécution de la fonction OuvreFille,
OuvreFenêtreMobile ou OuvreSoeur à partir de la
fenêtre en cours.
 si la fonction Ferme est appelée dans le code
d'initialisation de la fenêtre.
 si l'utilisateur clique sur une fenêtre d'un autre
programme, puis reclique sur la fenêtre initiale.
Ce traitement n'est pas disponible.
Perte de focus Exécuté lorsque la fenêtre perd le focus lors du
passage à une autre fenêtre. Ce traitement est toujours
appelé avant le traitement de prise de focus d'une
autre fenêtre dans les cas suivants :
 fermeture de la fenêtre (avant le traitement de
fermeture)
 l'utilisateur a cliqué sur une autre fenêtre de
l'application
 la fonction RepriseSaisie a été exécutée depuis
une autre fenêtre de l'application
Ce traitement ne sera pas exécuté :
 si la fonction RepriseSaisie vers une autre
fenêtre a été exécutée dans le code d'initialisation de la
fenêtre
 si la fonction Ferme est appelée dans le code
d'initialisation de la fenêtre
 si l'utilisateur clique sur une fenêtre d'un autre
programme, puis reclique sur la fenêtre initiale
Ce traitement n'est pas disponible.
A chaque Exécuté lorsqu'un des champs de la fenêtre est modifié
modification (saisie effectuée par l'utilisateur par exemple).
Changement Exécuté lorsque l'utilisateur pivote l'écran. Il est par
d'orientation exemple possible de repositionner les champs lors du
changement d'orientation de l'écran.
Fermeture d'une Exécuté lors de la fermeture d'une fenêtre fille ouverte
fenêtre fille de la depuis la fenêtre en cours.
fenêtre
Il est possible de :
}
 connaître le nom de la fenêtre fille fermée grâce
à la propriété ..Nom.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 45 sur 50

 récupérer la valeur de retour de la fenêtre fille


grâce à la propriété..ValeurRenvoyée.
Exemple :
// -- Fermeture d'une fenêtre fille de
FEN_ListeCommande
// Actualise la liste des commandes si besoin
SI MaFenêtreFille..ValeurRenvoyée = Vrai ALORS
ListeCommande()
FIN
Le mot-clé MaFenêtreFille permet de manipuler les
caractéristiques de la fenêtre fille.
Modification de Exécuté dans les cas suivants :
la taille  Iconisation de la fenêtre
 Agrandissement ou changement de taille de la
fenêtre
 Restauration de la fenêtre après iconisation
Ce traitement n'est pas disponible.
Rafraîchissement Permet de mettre à jour le contenu du Widget. Ce
du Widget traitement est exécuté :
 à l'ouverture d'une fenêtre de type Widget.
 à intervalle de temps régulier. Cet intervalle est
fixé dans l'onglet "Détail" de la fenêtre de description.
Permet de mettre à jour le contenu du Widget. Ce
traitement est exécuté :
 à l'ouverture d'une fenêtre de type Widget.
 à intervalle de temps régulier. Cet intervalle est
fixé dans l'onglet "Détail" de la fenêtre de description.
Remarque : La fonction WidgetAffiche provoque le
réaffichage du Widget et l'exécution du traitement de
rafraîchissement.

(*) Par défaut, le traitement "Initialisation" de chaque champ est exécuté


selon l'ordre de création des différents champs dans la fenêtre. Pour
modifier cet ordre d'exécution :
1. Sous le volet "Fenêtre", dans le groupe "Ordre", cliquez sur
"Initialisation".
2. Dans la fenêtre qui s'affiche, utilisez les flèches situées sur la droite pour
modifier l'ordre d'initialisation des champs.
Attention : Si un ou plusieurs champs utilisent la persistance des champs,
le code "A chaque modification" peut être exécuté lors de l'initialisation du
champ. Pour plus de détails, consultez Persistance des champs.
Traitements optionnels
Plusieurs traitements optionnels peuvent être gérés.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 46 sur 50

Pour gérer un traitement optionnel, il suffit de le sélectionner dans la barre


d'icônes de la fenêtre de code.

Il est ainsi possible de gérer par exemple :


 le survol du champ par la souris,
 le bouton gauche enfoncé, relâché, avec un double-clic,
 le bouton droit enfoncé, relâché, avec double-clic,
 la roulette de la souris, ...

Mise au premier-plan de l'application sur la fenêtre

Exécuté lorsque l'application est réactivée et passe au premier-plan. Ce


traitement permet par exemple de rafraîchir les données affichées.
Remarque : Ce traitement est exécuté APRES le traitement du projet "Mise
au premier plan".

Mise en arrière-plan de l'application depuis la fenêtre

Exécuté lorsque l'application passe en arrière-plan. Ce traitement permet


par exemple de sauvegarder les données.
Remarque : Ce traitement est exécuté AVANT le traitement du projet "Mise
en arrière-plan".

3.11. Liste des fonctions WLangage

Le WLangage (WL) est un langage de 5° génération. Il dispose des


fonctions habituelles des langages de programmation, et également
nativement d'un socle orienté données.

Les aspects graphiques, vérification et validation des saisies, sont gérés


en amont du codage, par l'intermédiaire du révolutionnaire éditeur d'IHM.
L'éditeur de fenêtres élimine la phase de codage des interfaces, car il
permet la définition et le test de ses interfaces dans un mode 100%
WYSIWYG, y compris pour la définition avancée des contrôles (champs).
Bien entendu, le WLangage permet l'accès et la modification à tout ce qui a
été créé.

N'oubliez pas non plus que WINDEV est interfacé avec les langages : Java,
C, C++, C#, Cobol, Fortran, Pascal, VB... Vous pouvez également faire appel
à des ActiveX, OCX, etc WINDEV est totalement ouvert. N'oubliez pas non
plus que la plupart des actions ne se programment pas, mais se définissent
simplement sous les éditeurs

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 47 sur 50

Le WLangage permet de réduire jusqu'à 90% la quantité de code


nécessaire.

Cette liste est riche ! Mais dans vos applications, vous n'utiliserez au final
que très peu de ces fonctions.
Cette liste est complète, et c'est pour vous l'assurance de n'être jamais
bloqué.
Les fonctions suivantes sont disponibles pour le cas où vous souhaiteriez
modifier par programmation ce qui a été défini sous les éditeurs: c'est une
souplesse supplémentaire. Par exemple, pour afficher une image contenue
dans un fichier, il n'y a absolument rien à programmer (même pour ajouter
des effets !) Mais si vous souhaitez programmer un traitement particulier,
vous pouvez. Vous ne serez jamais bloqué avec WINDEV.

Note : tous ces ordres existent en français et en anglais

Commande Description sommaire


Abandonne Ferme la fenêtre en cours en exécutant le code du bouton de
type ABANDON.
Age Renvoie l'âge à partir de la date de naissance.
Ajoute Ajoute un élément en dernière position :
d'un tableau WLangage à une dimension.
d'une propriété tableau d'un type avancé (tableau des
événements de gglAgenda, ...) d'une liste WLangage.
AjouteColonne Ajoute une colonne à la fin d'une propriété de type tableau à
deux dimensions (par exemple variable de type xlsDocument).
AjouteCommandeVocale Ajoute une commande vocale dans la fenêtre en cours. A partir
de la version 17, cette fonction est remplacée par la
fonctionReconnaissanceVocaleAjouteCommande
AjouteLigne Ajoute une ligne à la fin :

 d'un tableau WLangage à une ou deux dimensions.

d'une propriété tableau d'un type de variable à deux dimensions


(par exemple variable de typexlsDocument).
Arrondi Renvoie la valeur arrondie d'une valeur numérique selon le
nombre de décimales précisé.
Bip Émet un bip sonore.
BTActive Active ou désactive la gestion du Bluetooth sur l'appareil.
CalendrierOuvre Dans un champ de saisie de type Date, ouvre une fenêtre popup
affichant un calendrier.
CBCapture Décode les informations stockées dans un code-barres en
utilisant la caméra de l'appareil (Android).
EcranVersFichier Initialise automatiquement :

 la valeur mémoire des rubriques d'un fichier de données


avec la valeur des champs de la fenêtre ou de la page. Les
rubriques du fichier de données de base reliées aux champs de
la fenêtre sont automatiquement affectées avec les valeurs des

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 48 sur 50

champs correspondants (même si ces champs sont grisés,


inactifs, ou invisibles).

la valeur des variables WLangage avec la valeur des champs de


la fenêtre ou de la page. Les variables WLangage reliées aux
champs de la fenêtre sont automatiquement affectées avec les
valeurs des champs correspondants (même si ces champs sont
grisés, inactifs, ou invisibles).
EcranVersSource Initialise automatiquement :
la valeur mémoire des rubriques d'un fichier de données avec la
valeur des champs de la fenêtre ou de la page.
la valeur des variables WLangage avec la valeur des champs de
la fenêtre ou de la page.
HAjoute Ajoute :
l'enregistrement présent en mémoire dans le fichier de données
(la requête ou la vue).
l'enregistrement présent dans une variable de
typeEnregistrement dans le fichier de données (la requête ou la
vue).
HDBOuvre Ouvre le fichier de données xBase et le fichier "mémo" s'il
existe.
HExécuteRequête Déclare une requête créée sous l'éditeur de requêtes au moteur
HFSQL et exécute cette requête.
HFerme Ferme soit un fichier de données, soit tous les fichiers de
données ouverts par l'utilisateur en cours : tous les fichiers de
données physiques correspondant sont fermés pour l'utilisateur
en cours.
HModifie Modifie l'enregistrement spécifié ou l'enregistrement présent en
mémoire dans le fichier de données (la requête ou la vue).
HNbEnr Renvoie le nombre d'enregistrements d'un fichier, d'une requête
ou d'une vue HFSQL : enregistrements actifs, rayés, supprimés,
etc.
HRAZ Initialise :
une ou toutes les variables des rubriques d'un fichier de données
avec leurs valeurs par défaut.
une ou toutes les rubriques d'une variable de
typeEnregistrement avec leurs valeurs par défaut.
HRecherche Positionne sur le premier enregistrement du fichier de données
dont la valeur d'une rubrique spécifique est supérieure ou égale
à une valeur recherchée (recherche générique par défaut).
HSupprime Supprime un enregistrement d'un fichier de données (d'une
requête ou d'une vue).
HTrouve Vérifie si l'enregistrement en cours correspond au filtre ou à la
recherche en cours.
HVersFichier Copie une source de données (fichier, requête, vue, ...) vers un
fichier physique HFSQL de même description. Ce fichier n'est
ni crypté, ni protégé par mot de passe.
iImprime Envoie au "buffer" d'impression la chaîne de caractères passée
en paramètre.

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 49 sur 50

Table des matières


0. Introduction ................................................................................................................................. 1

0.1. Présentation de WinDev ....................................................................................................... 1

0.2. Vocabulaire ........................................................................................................................... 2

0.3. Concepts de base ............................................................................................................... 3

0.4. Intégration ......................................................................................................................... 4

0.5. Prise en charge des bases de données ................................................................................. 5

0.6. Les fonctionnalités automatiques des applications développées ........................................ 5

0.7. Liste des mots réservés......................................................................................................... 6

CHAPITRE I : BASES DE PROGRAMMATION....................................................................... 7

1.1. Déclaration de différents types de variables ........................................................................ 7

1.1.1. Variable globale et locale............................................................................................... 7

1.1.2. Constante / Constant ..................................................................................................... 8

1.2. Instructions de base de WLangage ....................................................................................... 9

1.2.1. Instruction SI .................................................................................................................. 9

1.2.2. Instruction TANTQUE ............................................................................................. 11

1.2.3. Instruction POUR ......................................................................................................... 11

1.2.4. Instruction GOTO ......................................................................................................... 12

1.2.5. Instruction BOUCLE...................................................................................................... 12

Chapitre II : L’analyse du projet ............................................................................................... 13

2.1. Les prés-requis de la programmation ................................................................................. 13

2.2. Collecter les informations nécessaires par rapport au document ..................................... 14

2.3. Collection des données....................................................................................................... 14

2.4. Filtrer les données et les objets .......................................................................................... 15

2.5. Dictionnaire de données..................................................................................................... 15

2.6. Les règles de gestion........................................................................................................... 16

2.7. Modèle Conceptuel de données......................................................................................... 16

2.8. Modèle Logique de Données (MLD) ................................................................................... 17

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262
Page 50 sur 50

CHAPITRE III : La gestion des cycles de vie de nos développements ................................ 18

3.1. LES FENETRES...................................................................................................................... 18

3.2. Projet et Analyse ................................................................................................................. 19

3.2.1. Présentation du projet ................................................................................................ 19

3.2.2. Création de l’analyse ................................................................................................... 19

3.3. Création de la description des fichiers de données............................................................ 20

3.3.1. Création d’un fichier de données : utilisation d’un fichier prédéfini .......................... 21

3.3.2. Création d’un fichier de données : Création du fichier et des rubriques .................... 21

3.4. Créer des relations.............................................................................................................. 23

3.5. LE RAD COMPLET ................................................................................................................ 24

3.5.1. Génération du RAD ...................................................................................................... 24

3.6. Application Complète avec données .................................................................................. 25

3.6.1. Création du Champs table ........................................................................................... 25

3.6.2. Création des champs de saisie ..................................................................................... 25

3.7. Exercice à réaliser ensemble .............................................................................................. 27

3.8. Le champ Combo ................................................................................................................ 27

3.8.1. Présentation du champ Combo ................................................................................... 27

3.8.2. Quelques exemples : ................................................................................................... 28

3.8.3. Créer un champ Combo ............................................................................................... 28

3.8.4. Vocabulaire .................................................................................................................. 30

3.9. Exemple d’une application complète avec une table ......................................................... 31

3.9.1. La base de données ..................................................................................................... 31

3.9.2. Création de la fenêtre .................................................................................................. 32

3.9.3. Les procédures locales ................................................................................................. 34

3.10. Pour imprimer ou afficher les résultats ............................................................................ 41

3.10. Traitements associés aux fenêtres ................................................................................... 42

3.11. Liste des fonctions WLangage .......................................................................................... 46

Cours de WINDEV G3 Info UNIC/Muanda Par l’Ir Eugène BAPUMI, Assistant 0813486262

Vous aimerez peut-être aussi