Vous êtes sur la page 1sur 453

DVEL

OPPEZ10FOI
SPL
USVI
TE
WINDEV 21 Express
Documentation version 21 (1) - 0716

Version dvaluation

Diffusion interdite sans laccord crit de PC SOFT

Visitez rgulirement le site www.pcsoft.fr, espace tlchargement, pour vrifier si des mises
jour sont proposes.

Conseil: Pour recevoir directement des mises jour intermdiaires et des conseils dutilisa-
tion, abonnez-vous la LST (revue trimestrielle +DVD), en franais.

Cette documentation nest pas contractuelle. PC SOFT se rserve le droit de modifier ou de


supprimer tout sujet trait dans ce document.

Tous les noms de produits ou autres marques cits dans cet ouvrage sont des marques dposes par leurs propritaires respectifs.
PC SOFT 2016 : Aucune reproduction intgrale ou partielle du prsent ouvrage sur quelque support que ce soit ne peut tre
effectue sans lautorisation expresse de PC SOFT.
Sommaire
Licence
Introduction
Prliminaires.......................................................................................................................................................... 19
Prsentation du cours dauto-formation.............................................................................................................. 19
Comment accder laide en ligne ?................................................................................................................... 20
Lgende des symboles........................................................................................................................................... 22
Si vous connaissez WINDEV 20............................................................................................................................. 23
Que fait-on avec WINDEV?.................................................................................................................................... 23

PARTIE 1 - A la dcouverte de WINDEV

Leon 1.1. Dcouvrez WINDEV


Prsentation........................................................................................................................................................... 28
Lancement de WINDEV.......................................................................................................................................... 28
Environnement de dveloppement....................................................................................................................... 29
Lditeur.................................................................................................................................................... 29
La barre de menu (ruban) en dtail......................................................................................................... 30

Leon 1.2. Ma premire fentre


Prsentation........................................................................................................................................................... 33
Ouverture du projet.................................................................................................................................. 33
Ma premire fentre: saisir et afficher des donnes.......................................................................................... 34
Prsentation............................................................................................................................................. 34
Cration de la fentre.............................................................................................................................. 34
Saisie et affichage de la valeur saisie..................................................................................................... 36
Amliorations de la fentre..................................................................................................................... 39

Leon 1.3. Des fentres plus volues


Prsentation........................................................................................................................................................... 43
Grer la saisie dun numrique pour faire un calcul............................................................................................ 43
Mise en place........................................................................................................................................... 44
Test de la fentre...................................................................................................................................... 45
Utilisation dun champ Combo pour proposer plusieurs possibilits.................................................... 45
Cration et utilisation dune procdure.................................................................................................. 48
Afficher la date et lheure en temps rel.............................................................................................................. 49
Prsentation............................................................................................................................................. 49
Cration de la fentre.............................................................................................................................. 49
Mise en place du timer............................................................................................................................. 53
Cration dun bouton pour quitter la fentre.......................................................................................... 54
Cration dune fentre avec un menu................................................................................................................... 55
Dcrire le menu........................................................................................................................................ 55
Associer un code aux options de menu.................................................................................................. 58

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Sommaire 3


WINDEV: Concepts de base et terminologie....................................................................................................... 59
Concepts de base..................................................................................................................................... 59
Terminologie............................................................................................................................................. 60

Leon 1.4. Bases de programmation


Introduction............................................................................................................................................................. 63
Dclaration des diffrents types de variables...................................................................................................... 63
Les diffrents types de variables............................................................................................................. 63
La dclaration des variables et leur porte............................................................................................ 63
Instructions de base du WLangage.......................................................................................................................64
Instructions conditionnelles.................................................................................................................... 64
Instructions de boucle............................................................................................................................. 66
Commentaires.......................................................................................................................................... 67
Oprateurs de base du WLangage........................................................................................................................ 68
Les oprateurs logiques.......................................................................................................................... 68
Les oprateurs de comparaison............................................................................................................. 69
Les oprateurs dindirection.................................................................................................................... 69
Procdures et fonctions......................................................................................................................................... 70
Dfinition.................................................................................................................................................. 70
Procdure locale...................................................................................................................................... 70
Procdure globale et collection de procdures...................................................................................... 70
Comment choisir si une procdure est globale ou locale?.................................................................... 71
A propos du passage des paramtres..................................................................................................... 71
Appel dune procdure............................................................................................................................. 72
Cration dune procdure........................................................................................................................ 72
Exemple pratique..................................................................................................................................... 73
Un exercice dapplication? A vous de jouer!.......................................................................................... 73
Traitements des chanes........................................................................................................................................ 73
Exemple pratique..................................................................................................................................... 73
Principales manipulations sur une chane de caractres.......................................................................74
Un exercice dapplication ? A vous de jouer !.......................................................................................... 76
Traitements des numriques................................................................................................................................ 77
Exemple pratique..................................................................................................................................... 77
Principales manipulations sur les numriques...................................................................................... 77
Un exercice dapplication ? A vous de jouer !.......................................................................................... 78
Traitement des montaires................................................................................................................................... 79
Exemple pratique..................................................................................................................................... 79
Dtails....................................................................................................................................................... 79
Traitements des dates et des heures.................................................................................................................... 81
Les dates................................................................................................................................................................. 81
Exemple pratique..................................................................................................................................... 81
Masque de saisie et valeur retourne..................................................................................................... 82
Quel jour sommes-nous?........................................................................................................................ 84
Quel jour sommes-nous, mais avec le jour et le mois en lettres?......................................................... 84
Quel est le nombre de jours entre 2 dates?........................................................................................... 84
Quel est le jour de la semaine dune date donne?............................................................................... 85
Petit exercice pratique............................................................................................................................. 85
Manipulation des variables de type Date............................................................................................... 85
Un exercice dapplication ? A vous de jouer !.......................................................................................... 86

4 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Les heures............................................................................................................................................................... 87
Exemple pratique..................................................................................................................................... 87
Quelle heure est-il?.................................................................................................................................. 87
Combien de temps sest-il coul entre deux heures?.......................................................................... 88
Un exercice dapplication ? A vous de jouer !.......................................................................................... 89
Calculs avec des dates et des heures................................................................................................................... 89

Leon 1.5. Questions / Rponses


Questions / Rponses............................................................................................................................................ 91
Comment visualiser llment auquel appartient le traitement en cours?.......................................... 91
Comment imprimer le code source?...................................................................................................... 91
Comment faire un "rechercher et/ou remplacer"?................................................................................ 91
Que signifient les signes "+" ou "-" dans lditeur de code?................................................................... 92
Est-il possible didentifier la personne qui a crit une ligne de code?.................................................. 92
Est-il possible de connatre le numro dune ligne de code?................................................................ 92
Existe-t-il un moyen dobtenir facilement la syntaxe ou de laide sur une fonction? ........................... 93
Quels sont les raccourcis clavier connatre sous lditeur de code? ................................................. 93
Comment dialoguer avec lutilisateur?................................................................................................... 94

PARTIE 2 - Ma premire base de donnes

Leon 2.1. Prsentation


Prsentation du projet ralis dans cette partie.............................................................................................. 100

Leon 2.2. WINDEV et les bases de donnes


Prsentation........................................................................................................................................................ 102
HFSQL................................................................................................................................................................... 103
Les diffrents modes daccs aux bases de donnes...................................................................................... 103
Accs Natif..............................................................................................................................................103
Accs ODBC direct..................................................................................................................................104
Accs OLE DB.........................................................................................................................................104
Accs ODBC via OLE DB.........................................................................................................................104

Leon 2.3. Projet et analyse


Prsentation........................................................................................................................................................ 106
Cration du projet................................................................................................................................................ 106
Cration de lanalyse........................................................................................................................................... 108
Cration de la description des fichiers de donnes.......................................................................................... 109
Cration dun fichier de donnes : utilisation dun fichier prdfini....................................................110
Cration dun fichier de donnes: cration du fichier et des rubriques..............................................111
Importation dun fichier CSV..................................................................................................................116
Importation directe de fichiers de donnes existants..........................................................................119
Cration des liaisons........................................................................................................................................... 119
Gnration de lanalyse...................................................................................................................................... 126

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Sommaire 5


Leon 2.4. Le RAD complet
Quest-ce que le RAD ? ....................................................................................................................................... 129
Gnration du RAD.............................................................................................................................................. 130
Test de lapplication............................................................................................................................................ 133

PARTIE 3 - Application complte avec donnes

Leon 3.1. Prsentation


Prsentation de lapplication ralise dans cette partie................................................................................. 138
Projets fournis...................................................................................................................................................... 138
Projet exemple........................................................................................................................................138
Projets corrigs.......................................................................................................................................140

Leon 3.2. Fentres dajout et de modification


Prsentation........................................................................................................................................................ 142
Cration dune fentre listant les produits........................................................................................................ 142
Cration de la fentre............................................................................................................................142
Cration des champs.............................................................................................................................144
Test de la fentre....................................................................................................................................146
Cration dune fentre "Fiche produit".............................................................................................................. 149
Cration de la fentre............................................................................................................................149
Cration des champs de saisie.............................................................................................................149
Cration des boutons.............................................................................................................................152
Amliorations de linterface de la fentre.............................................................................................152
Affichage de la fiche depuis la liste des produits..................................................................................156
Gestion de la modification dun produit............................................................................................................ 157
Modification de limage du produit........................................................................................................157
Validation des modifications du produit...............................................................................................159
Test de la modification dun produit......................................................................................................160
Cration dun nouveau produit............................................................................................................................161
Ajout dun bouton................................................................................................................................... 161
Ajout dans le fichier de donnes...........................................................................................................162
Test de lajout dun produit....................................................................................................................163
Visualiser les enregistrements saisis....................................................................................................164

Leon 3.3. Recherche simple et parcours des enregistrements


Prsentation........................................................................................................................................................ 166
Modification de la fentre: utilisation dun champ Onglet...............................................................................167
Cration du champ Onglet..................................................................................................................... 167
Modifications du champ Onglet.............................................................................................................169

6 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Mise en place de la recherche.............................................................................................................................171
Zone daffichage des informations trouves........................................................................................ 171
Recherche lidentique......................................................................................................................... 172
Recherche gnrique............................................................................................................................. 177
Parcours des fiches................................................................................................................................ 179
Test de la fentre....................................................................................................................................182

Leon 3.4. Recherche multicritre


Prsentation........................................................................................................................................................ 184
Cration de la requte pour rechercher les commandes................................................................................ 185
Cration de la requte............................................................................................................................185
Test de la requte...................................................................................................................................188
Utilisation de paramtres dans la requte...........................................................................................189
Test de la requte paramtre..............................................................................................................192
Cration de linterface pour raliser une recherche multicritre.................................................................... 192
Modifications du champ Onglet.............................................................................................................192
Cration des champs de paramtrage des critres et affichage du rsultat......................................194

Leon 3.5. Imprimer le contenu dun champ Table


Prsentation........................................................................................................................................................ 206
Impression du contenu dun champ Table.........................................................................................................207
Impression directe via la FAA (Fonctionnalit automatique de lapplication).....................................207
Cration dun tat automatique sur un champ Table...........................................................................209

Leon 3.6. Imprimer une commande


Prsentation........................................................................................................................................................ 212
Cration de ltat "Bon de commande"............................................................................................................. 212
Cration de la requte............................................................................................................................213
Cration de ltat bas sur une requte................................................................................................ 216
Modifications de ltat "Bon de commande"........................................................................................223
Affichage de ltat imprim depuis une option de menu................................................................................. 225
Cration du menu contextuel................................................................................................................225
Association du menu contextuel au champ Table................................................................................226
Test de limpression...............................................................................................................................227

Leon 3.7. Imprimer une liste de clients


Prsentation........................................................................................................................................................ 229
Cration de ltat................................................................................................................................................. 229
Lancement de limpression dun tat par programmation............................................................................. 236

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Sommaire 7


Leon 3.8. Statistiques: champs Graphe et Tableau Crois Dynamique
Prsentation........................................................................................................................................................ 240
Affichage de donnes dans un champ Graphe................................................................................................. 240
Slection des donnes afficher dans le champ Graphe...................................................................240
Cration du champ Graphe....................................................................................................................243
Cration de tableaux de synthse grce au champ Tableau Crois Dynamique............................................247
Cration du champ Tableau Crois Dynamique...................................................................................248
Test du Tableau Crois dynamique........................................................................................................251

Leon 3.9. Envoyer un email


Prsentation........................................................................................................................................................ 254
Une fentre pour envoyer des emails................................................................................................................ 255
Cration de la fentre............................................................................................................................255
Cration des champs de paramtrage de lenvoi.................................................................................255
Cration des champs permettant de saisir les caractristiques de lemail........................................257
Envoi de lemail......................................................................................................................................259
Amliorations de la fentre.................................................................................................................................261
Fermeture de la fentre.........................................................................................................................261
Mise en forme.........................................................................................................................................261
Ouverture non modale de la fentre.....................................................................................................262

Leon 3.10. Identifier lutilisateur : le groupware utilisateur


Prsentation........................................................................................................................................................ 265
Intgrer le groupware utilisateur........................................................................................................................ 265
Configurer le groupware utilisateur................................................................................................................... 269
Cration des utilisateurs et des groupes..............................................................................................269
Dfinition des droits............................................................................................................................... 271
Test de lapplication...............................................................................................................................273
Dbrancher la gestion du groupware utilisateur...............................................................................................274

Leon 3.11. Rutilisez du code grce aux composants externes


Prsentation.........................................................................................................................................................276
Travail en quipe.................................................................................................................................... 276
Les projets volumineux.......................................................................................................................... 276
Les bases de donnes accdes par plusieurs projets....................................................................... 277
Les traitements utiliss dans plusieurs projets.................................................................................... 277
La possibilit de diffuser une fonctionnalit ou un ensemble de fonctionnalits.............................. 277
Composant externe multiproduits......................................................................................................... 277
Etape par tape................................................................................................................................................... 278
Etape 1: Cration dun composant externe.........................................................................................278
Etape 2: Utilisation du composant externe..........................................................................................283
Distribution dun composant externe................................................................................................................ 286
Distribution simple.................................................................................................................................286
Distribution professionnelle..................................................................................................................287

8 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Leon 3.12. Consommer un Webservice
Prsentation........................................................................................................................................................ 289
Exemple pratique...................................................................................................................................289
Importation dun Webservice............................................................................................................................. 289
Consommation dun Webservice....................................................................................................................... 292

Leon 3.13. Surveillez lvolution de vos applications


Prsentation........................................................................................................................................................ 295
Le tableau de bord............................................................................................................................................... 295
Tests automatiques............................................................................................................................................. 296

Leon 3.14. Dployer lapplication


Prsentation........................................................................................................................................................ 301
Cration de lexcutable..................................................................................................................................... 301
Cration de linstallation..................................................................................................................................... 306
Installation dune application............................................................................................................................. 309
Les diffrents types de dploiement..................................................................................................................310
Prsentation........................................................................................................................................... 310
Installation avec mise jour rseau...................................................................................................... 311
Installation avec mise jour Internet.................................................................................................... 313
Installation multisite.............................................................................................................................. 313

Leon 3.15. Diffusez "Etats et Requtes" avec vos applications


Lancement du logiciel "Etats et Requtes"........................................................................................................316
Paramtrage du projet........................................................................................................................... 317
Paramtrage de lanalyse...................................................................................................................... 317
Paramtrage des tats.......................................................................................................................... 318
Paramtrage des requtes.................................................................................................................... 319
Cration de lexcutable et diffusion de lapplication.......................................................................... 319
Installer et utiliser le logiciel "Etats et Requtes"............................................................................................. 321
Installation de lapplication...................................................................................................................321
Test de lapplication...............................................................................................................................323
Conclusion............................................................................................................................................................ 325

Leon 3.16. Grer le multilingue


Quest-ce quune application multilingue?....................................................................................................... 327
Choix des langues du projet................................................................................................................................ 327
Internationalisation de lanalyse........................................................................................................................ 329
Internationalisation des lments du projet......................................................................................................331
Internationalisation dune image..........................................................................................................332
Internationalisation des champs...........................................................................................................333
Internationalisation dun message de programmation.......................................................................333
Internationalisation des menus............................................................................................................334

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Sommaire 9


Les outils de traduction....................................................................................................................................... 335
Saisie directe des traductions...............................................................................................................335
Traduction avec WDMSG et WDTRAD...................................................................................................336
Autres lments traduire: les messages du framework...................................................................336
Programmation du changement de langue...................................................................................................... 337
Ajout dune option de menu..................................................................................................................337
Programmation......................................................................................................................................337
Test du projet..........................................................................................................................................338

Leon 3.17. GDS


Introduction.......................................................................................................................................................... 340
GDS (Gestionnaire de Sources).......................................................................................................................... 340
Principe du GDS.....................................................................................................................................340
Cration de la base de sources............................................................................................................. 341
Intgration dun projet dans le GDS................................................................................................................... 342
Ajouter le projet dans le GDS.................................................................................................................342
Ouverture du projet depuis le GDS........................................................................................................345
Configuration du GDS............................................................................................................................346
Manipulation du projet via le GDS.......................................................................................................................347
Modification dun paramtre du projet................................................................................................. 347
Modification dune fentre du projet.....................................................................................................348
Rintgration de llment extrait.........................................................................................................350
Synchronisation du projet......................................................................................................................351
Mode dconnect (ou nomade)............................................................................................................352
Administrateur du GDS..........................................................................................................................352
Dconnexion du GDS.............................................................................................................................353
Conclusion............................................................................................................................................................ 353

PARTIE 4 - Administrer une base HFSQL Client/Serveur

Leon 4.1. Introduction


Prsentation........................................................................................................................................................ 358
Pourquoi passer une application en mode HFSQL Client/Serveur?............................................................... 359

Leon 4.2. Mise en place dune


base de donnes Client/Serveur
Prsentation.........................................................................................................................................................361
Installation dun serveur HFSQL local.................................................................................................................361
Cration dune application utilisant une base de donnes HFSQL Client/Serveur....................................... 362
Adaptation dune application pour utiliser une base de donnes HFSQL Client/Serveur............................ 362
Prsentation...........................................................................................................................................362
Adaptation de lexemple........................................................................................................................362
Fonctionnalits disponibles en mode HFSQL Client/Serveur......................................................................... 366

10 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Leon 4.3. Administrer une base de donnes Client/Serveur
Prsentation........................................................................................................................................................ 368
Configuration des postes.................................................................................................................................... 368
Le Centre de Contrle HFSQL............................................................................................................................. 368
Crer un compte utilisateur dans le Centre de Contrle HFSQL...................................................................... 370
Sauvegarder la base de donnes....................................................................................................................... 375
Conclusion............................................................................................................................................................ 375

Leon 4.4. Installation en clientle


Prsentation.........................................................................................................................................................377
Lancement de lassistant de cration dinstallation.........................................................................................377

PARTIE 5 - Optimiser et dboguer un projet

Leon 5.1. Prsentation


Prsentation........................................................................................................................................................ 382
Ouverture du projet................................................................................................................................382

Leon 5.2. Audits du projet


Quest-ce quun audit ? ....................................................................................................................................... 384
Audit statique....................................................................................................................................................... 384
Procdure non excute........................................................................................................................386
Elment orphelin....................................................................................................................................387
Requte optimiser...............................................................................................................................388
Nettoyage du projet................................................................................................................................389
Audit dynamique................................................................................................................................................. 389

Leon 5.3. Analyseur de performances


Prsentation........................................................................................................................................................ 394
Lancer lanalyseur de performances................................................................................................................. 394
Analyse du rsultat.............................................................................................................................................. 395

Leon 5.4. Dbogage dun projet


Prsentation....................................................................................................................................................... 401
Utiliser le dbogueur........................................................................................................................................... 401

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Sommaire 11


PARTIE 6 - Programmation avance

Leon 6.1. Prsentation


Prsentation.........................................................................................................................................................410
Exemple pratique................................................................................................................................... 410

Leon 6.2. Gestion automatique des erreurs


Prsentation........................................................................................................................................................ 413
Fonctionnement..................................................................................................................................... 413
Mise en place......................................................................................................................................... 413
Types derreurs concernes................................................................................................................... 414
Gestion automatique des erreurs : un exemple didactique..............................................................................414

Leon 6.3. Manipuler des fichiers externes


Prsentation.........................................................................................................................................................419
Manipulation des fichiers texte ou CSV..............................................................................................................419
Prsentation........................................................................................................................................... 419
Exemple pratique................................................................................................................................... 419
Manipulation des rpertoires............................................................................................................................. 420
Exemple pratique...................................................................................................................................420
Manipulation des fichiers XML........................................................................................................................... 421
Prsentation...........................................................................................................................................421
Exemple pratique...................................................................................................................................422
Manipulation des fichiers XLS............................................................................................................................ 422
Exemples pratiques...............................................................................................................................423

Leon 6.4. Compilation dynamique


Prsentation........................................................................................................................................................ 425
Exemple................................................................................................................................................................ 425

Leon 6.5. Evnement Windows


Introduction.......................................................................................................................................................... 428
Exemple pratique...................................................................................................................................428
Traitements optionnels proposs par WINDEV................................................................................................. 428
Evnements de Windows.................................................................................................................................... 429
Exemple: Dtecter le clic sur une liste..................................................................................................430

Leon 6.6. Les threads


Dfinition.............................................................................................................................................................. 433
Exemple................................................................................................................................................................ 433

12 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Leon 6.7. Les sockets
Prsentation........................................................................................................................................................ 435
Application Serveur: cas dun serveur simplifi............................................................................................... 435
Cration du socket.................................................................................................................................435
Echange de donnes.............................................................................................................................435
Fermeture du socket..............................................................................................................................436
Application Cliente.............................................................................................................................................. 436
Connexion au serveur............................................................................................................................436
Echange de donnes.............................................................................................................................436
Fin de communication...........................................................................................................................436
Exemple pratique................................................................................................................................................ 437
Test de lexemple....................................................................................................................................437
Analyse du code utilis..........................................................................................................................437

Leon 6.8. Le FTP


Prsentation........................................................................................................................................................ 440
Se connecter un serveur FTP........................................................................................................................... 440
Envoyer un fichier................................................................................................................................................ 441
Lister les fichiers prsents sur un serveur FTP.................................................................................................. 442
Rcuprer un fichier............................................................................................................................................ 443
Se dconnecter dun serveur FTP....................................................................................................................... 443

Leon 6.9. La POO


Concepts............................................................................................................................................................... 445
Les classes.............................................................................................................................................445
Les objets...............................................................................................................................................445
Les membres..........................................................................................................................................445
Les mthodes.........................................................................................................................................445
Notion dhritage....................................................................................................................................445
Constructeur et Destructeur..................................................................................................................446
Encapsulation de donnes....................................................................................................................446
Exemple..................................................................................................................................................446
Crer un programme orient objet........................................................................................................446
Exemple simple....................................................................................................................................................447
Dclarer une classe...............................................................................................................................447
Dcrire les mthodes.............................................................................................................................448
Dclarer et manipuler les objets...........................................................................................................449
Diagramme UML................................................................................................................................................. 450

Conclusion

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Sommaire 13


14 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Licence
Attention: En installant et en utilisant un logiciel WINDEV version Express vous avez accept les
termes de la licence suivante :
Le LOGICIEL dsigne le droit dutilisation du logiciel WINDEV, dans cette version de dmonstration
(appele galement Version Express, Version dvaluation ou Version limite).
LEVALUATEUR reprsente la personne (physique ou morale) installant et / ou utilisant le logiciel.
Une APPLICATION dsigne un programme ou un ensemble de programmes ralis avec le LOGI-
CIEL.

1. Version Express
Ce LOGICIEL est propos ici dans une version de "dmonstration".
Cette version de dmonstration est exclusivement destine au test de ses fonctionnalits, et/ou
une utilisation par des tudiants dun tablissement reconnu par ltat pendant la dure de leurs
tudes, en dehors de toute utilisation commerciale, partielle ou totale.
De nombreuses fonctionnalits sont brides, limites ou diffrentes de la version "commerciale".
Pour crer des applications destines tre utilises, il est ncessaire dacqurir et dutiliser une
version "commerciale" et non cette version de dmonstration et de test.
Il est strictement interdit de crer en totalit ou en partie une ou des applications dans un autre
but que le TEST du LOGICIEL, ou la ralisation de Travaux Pratiques dans le cadre dtudes.
Lutilisation des applications cres dans un but autre que le test de courte dure est interdite.
Toute utilisation autre que lessai du logiciel, et/ou une utilisation pour une dure suprieure
celle autorise, constitue une utilisation illgale qui donnera lieu des poursuites.
Il est interdit de dupliquer et diffuser ce logiciel, mme dans cette version de dmonstration, sans
laccord crit de PC SOFT.

2. Licence
Ce LOGICIEL doit tre utilis sur une et une seule machine par une et une seule personne un
instant donn. Le LOGICIEL est dclar utilis ds quil se trouve en "mmoire centrale" (gale-
ment appele RAM) dun ordinateur.
Ce logiciel ne peut tre utilis que pour la dure autorise.

3. Proprit du LOGICIEL
Ce logiciel est la proprit de PC SOFT. LEVALUATEUR a simplement le droit dutiliser ce LOGICIEL
selon les conditions dfinies.

4. Documentation
La duplication de la documentation, en totalit ou en partie, est strictement interdite.

5. Utilisation
LEVALUATEUR doit utiliser le LOGICIEL pour lusage pour lequel il est diffus. Il est interdit de
modifier ou tenter de modifier ce LOGICIEL, de dsassembler ou tenter de dsassembler ce LOGI-
CIEL. Il est interdit denlever ou de tenter denlever les mentions de copyright pouvant apparatre
et/ou tant contenues dans le LOGICIEL.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Introduction 15


La location ou le prt de ce LOGICIEL est interdit.
Il est interdit dutiliser WINDEV "Express" pour crer et diffuser tout ou partie doutil de dveloppe-
ment, de LOGICIEL de cration dapplications, de gnrateur de programmes, ou de tout LOGICIEL
de mme nature que WINDEV lui-mme. Interrogez-nous en cas de doute.
Les fonctions de gnration de code JAVA ne peuvent tre utilises que dans le cadre de la mani-
pulation habituelle du LOGICIEL, dans le but de crer une APPLICATION autonome.
Le code gnr par WINDEV "Express" ne doit pas tre rutilis dans dautres logiciels ou disposi-
tifs de cration de logiciel. Le code gnr avec cette fonctionnalit ne peut pas tre inclus dans
un logiciel, payant ou gratuit, qui ferait concurrence WINDEV, WINDEV MOBILE ou WEBDEV, en
totalit ou en partie.
Les photographies, illustrations et images contenues dans les exemples, modles, ambiances et
gabarits ne peuvent tre utilises que dans leur implantation originelle. Toute utilisation, repro-
duction, reprsentation, adaptation ou copie, en totalit ou en partie, sous quelque forme que ce
soit, par tout procd existant ou venir et en quelque lieu que ce soit est interdite.
Les images et les animations disponibles partir du catalogue dimages doivent tre utilises ex-
clusivement dans des APPLICATIONS ralises avec le LOGICIEL. La vente ou la distribution de ces
images est interdite. Lutilisation dans dautres logiciels ou sites que lAPPLICATION est interdite.
Les images ne peuvent tre spares de lAPPLICATION qui les utilise.

6. Absence de responsabilit
Le LOGICIEL et la documentation qui laccompagne sont fournis en ltat, SANS AUCUNE GARAN-
TIE DAUCUNE SORTE. PC SOFT ne saurait tre tenu pour responsable pour tout dommage de
quelque nature que ce soit, et en particulier en cas de perte ou dtrioration des donnes, en
cas de perte financire, en cas de perte dexploitation, en cas de divergence des informations
contenues dans la documentation avec le comportement du LOGICIEL, en cas de comportement
du LOGICIEL diffrent de celui attendu. LEVALUATEUR est seul et unique responsable du fonction-
nement et du support des programmes quil aura ralis avec le LOGICIEL.

7. Cas particuliers
Fonctionnalits lies des services
Avertissement : avant dutiliser une fonctionnalit relie des services ou des applications, et
en particulier Google, nous vous conseillons vivement de vous reporter la licence dutilisation
de ce service ou de cette application. Certaines restrictions peuvent sappliquer. Le contenu des
licences peut varier avec le temps.
PC SOFT dgage toute responsabilit de lusage qui peut tre fait des fonctions daccs natif. Il
vous appartient de vrifier que lusage que vous faites respecte la licence du fournisseur de ser-
vice.

8. Logiciels tiers
Polices installes
La police "Open Sans" installe et utilise par le LOGICIEL est soumise la licence "Apache Li-
cense". Le texte de cette licence est prsent dans le sous-rpertoire "Aide" du LOGICIEL.

16 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Acceptation de la licence :
Le fait de conserver et dutiliser ce logiciel indique la comprhension et lacceptation des termes
de cette licence.
Ce contrat ne peut pas tre modifi, sauf par un courrier original paraph de la direction gnrale
de PC SOFT.
Ce contrat de licence est rgi par le droit franais; tout litige qui pourrait en rsulter sera de la
comptence exclusive des tribunaux du sige social de PC SOFT.

PC SOFT,
3, rue de Puech Villa
BP 44 408
34197 Montpellier Cedex 5

France

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Introduction 17


18 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Introduction

Prliminaires
Attention: Ce manuel est un cours dauto-formation. Il est conseill de consulter laide en ligne
lorsque vous utilisez WINDEV.
Le manuel du cours dauto-formation a pour objectif de vous faire dcouvrir WINDEV, de vous
familiariser avec les diteurs et de vous apprendre les concepts de WINDEV.
Ce manuel nest PAS exhaustif des possibilits de WINDEV.
Consacrez au moins quelques heures pour suivre ce cours et pour apprendre WINDEV: vous les
rentabiliserez vite!
Si vous essayez de dmarrer le dveloppement dune application sans avoir suivi ce cours, vous
perdrez du temps, beaucoup plus que les quelques heures passes sur ce cours dauto-formation.
Le cours a t conu pour tre suivi de deux faons:
soit vous suivez tous les exercices dtaills dans les leons du cours (mthode conseille).
soit, si vous tes press et disposez dune exprience significative, vous pouvez uniquement
le lire sans excuter les exercices (toutes les manipulations sont illustres). Toutefois, pour
que les concepts soient plus rapidement assimils, il est prfrable deffectuer les manipu-
lations.
WINDEV voluant en permanence, les images des fentres illustrant le cours peuvent tre diff-
rentes des fentres affiches par le produit lors des diffrentes manipulations.

Prsentation du cours dauto-formation


Le cours dauto-formation a t conu pour vous permettre dapprendre progressivement utiliser
WINDEV. En suivant ce cours:
dune part, vous dcouvrirez les concepts importants expliqus dune faon informelle; en
effet dans ce cas, il sagit de concepts acqurir et comprendre.
dautre part, vous serez amen effectuer des manipulations pour illustrer les concepts qui
viennent dtre expliqus.
Au fil de la lecture du cours, si vous voulez approfondir un concept ou si vous voulez avoir plus
de dtails sur une fonction de programmation, consultez laide en ligne (accessible directement
depuis les diteurs ou dans le guide).
La taille dune leon nest pas obligatoirement proportionnelle son intrt...
Noubliez pas dtudier ensuite les exemples livrs avec WINDEV: ils sont trs didactiques!

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Introduction 19


Depuis limpression de ce document, le cours dauto-formation a peut-tre vo-
lu. Nhsitez pas consulter la version lectronique du cours dauto-formation
Notes
(fichier PDF accessible directement dans le menu de WINDEV: sous le volet "Ac-
cueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation" et slec-
tionnez loption "Guide dAuto-formation (PDF)".

Comment accder laide en ligne ?


Laide en ligne de WINDEV permet de consulter les informations dtailles concernant les 2500
fonctions du WLangage. Elle contient galement laide des diteurs, des champs, des astuces, ...
Laide en ligne est disponible tout moment dans WINDEV:
Sous lditeur de code, une aide spcifique est directement accessible pour chaque nom de
fonction slectionn, grce la touche [F1].
Chaque fentre de dialogue affiche par WINDEV propose un bouton permettant daccder
la page daide correspondante.
Le menu daide des diteurs (option "Aide" disponible sous le volet "Accueil", dans le groupe
"Aide en ligne" du menu de WINDEV) vous permet de lancer laide en ligne.

Laide peut tre affiche:


dans un "browser daide" spcifique:

20 :  (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


dans un navigateur Internet, si vous avez accs Internet:

Laide en ligne de WINDEV, WEBDEV et WINDEV Mobile sur Internet est acces-
sible depuis nimporte quel poste disposant dun accs Internet, sans que le pro-
Notes

duit soit forcment install. Cette aide est mise jour rgulirement.
Chaque internaute peut ajouter des commentaires sur les pages de documenta-
tion: explications personnelles, exemples, liens, ...

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite :  21


Pour lancer directement laide en ligne Internet depuis le produit:
1.Sous le volet "Accueil", dans le groupe "Environnement", droulez "Options" et slectionnez
loption "Options gnrales de WINDEV".
2.Dans longlet "Aide", slectionnez:
le mode daccs la base daide.

le contenu de laide: aide commune WINDEV, WEBDEV et WINDEV Mobile ou aide du pro-
duit en cours dutilisation.

Lgende des symboles

Ce symbole indique la dure de la leon et de ses manipulations. Attention, le temps


rel peut varier selon votre exprience.
Un exemple est disponible pour complter le cours. Les exemples sont disponibles via
la fentre de bienvenue de WINDEV.
Ce symbole prsente une "Astuce": la lecture du texte associ est vivement conseil-
le.

Ce symbole prsente un "Avertissement": la lecture du texte associ est primordiale.

Ce symbole prsente une "Note": la lecture du texte associ est conseille.

22 :  (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Si vous connaissez WINDEV 20...
Si vous connaissez dj WINDEV 20, le suivi de ce nouveau cours ne pourra tre que bnfique:
ce sera une bonne occasion de "rviser" les possibilits de WINDEV !

Que fait-on avec WINDEV?


WINDEV est un AGL (Atelier de Gnie Logiciel). Il vous permet de dvelopper des applications dans
tous les domaines:
Gestion des stocks, inventaire, traabilit des marchandises,
Rglage et suivi de machines sur chane de production,
Prise de commandes pour traitement rapide sur un lieu de vente de passage (foire, cole,
stand,...),
Fiches clients,
Outil daide la prise de dcision durgence sur tlphone portable,
Vrification didentit des visiteurs dune manifestation: salon, prsentation de produits,...
Mdecin ou vtrinaire en dplacement,
Prises dinformations sur un lieu de passage: salon professionnel, rue pour un sondage,
stade,...
WINDEV est un environnement de dveloppement complet qui intgre tous les outils ncessaires
au cycle de ralisation dune application.
Contrairement dautres langages de dveloppement traditionnels, il nest pas ncessaire de
chercher et de rajouter des modules pour pouvoir concevoir, tester et installer une application.
Le L5G (Langage de 5me Gnration) de WINDEV, le WLangage, vous tonnera par sa simplicit:
quelques heures suffisent pour apprhender le langage, une semaine suffit en gnral pour ma-
triser toute sa puissance!
Comme il est en franais, le WLangage (disponible galement en anglais) vous fera gagner du
temps!

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite :  23


24 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 1

A la dcouverte
de WINDEV
26 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 1.1. Dcouvrez WINDEV

Ce que vous allez apprendre dans cette leon...

Lancement de WINDEV

Dure estime: 5 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 27
Prsentation
WINDEV est un AGL (Atelier de Gnie Logiciel) complet permettant de dvelopper des applications
Windows (et Linux) dans de nombreux domaines: gestion, industrie, mdical, ... Les applications
dveloppes peuvent inclure laccs des informations stockes dans des bases de donnes.
Tout au long de ce cours dauto-formation, vous allez apprendre crer vos applications (avec ou
sans base de donnes) et les enrichir en utilisant les nombreuses fonctionnalits proposes par
WINDEV.

Lancement de WINDEV

Lancez WINDEV 21 (si ce nest dj fait).


Si vous navez jamais lanc WINDEV 21, un assistant de bienvenue se lance:
Si vous possdiez une ancienne version de WINDEV, cet assistant permet de rcuprer les
configurations existantes.
Si vous tes nouvel utilisateur, cet assistant permet de paramtrer votre environnement.
Vous pouvez ainsi choisir la configuration cran utilise et paramtrer les Centres de
Contrle. Pour plus de dtails, consultez laide en ligne.
Si vous avez dj lanc WINDEV 21, identifiez-vous si ncessaire. Lenvironnement de
dveloppement se lance. La fentre de bienvenue apparat. Cette fentre de bienvenue
permet de :
crer un projet,
ouvrir un projet existant,
ouvrir un exemple,
ouvrir un des projets du cours dautoformation.
Arrtons-nous un instant sur lenvironnement de dveloppement de WINDEV. Pour cela,
depuis la fentre de bienvenue :
Cliquez sur "Cours dauto-formation".
Cliquez sur "Application complte (avec fentres)".
Le projet correspondant souvre sous lditeur.

28 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Environnement de dveloppement

Lditeur
Lenvironnement de dveloppement de WINDEV est constitu dune interface spcifique et de
plusieurs diteurs permettant de crer les diffrents lments de vos applications.
Ainsi, lditeur de fentres permet de crer des fentres, lditeur dtats permet de crer des
tats, ...
Tous les diteurs utilisent le mme environnement:

1. Menu des diteurs, affich sous forme de ruban (nous allons voir sa manipulation dans le para-
graphe suivant).

2. Editeur en cours (ici, diteur de fentres). Cet espace permet de visualiser de manire WY-
SIWYG (What You See Is What You Get) llment en cours de cration ou de modification.

3. Volets. Linterface de WINDEV dispose de plusieurs volets (horizontaux et verticaux) permettant


daccder rapidement diffrents types dinformations. Par exemple :
le volet "Explorateur de projet" (ici, affich droite) permet de lister tous les lments du projet
par catgorie.
le volet de recherche (ici, affich en bas) permet de raliser des recherches dans tout le projet
et ses lments.
Si ncessaire, ces volets peuvent tre cachs rapidement en utilisant la combinaison de touches
[CTRL] + [W].

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 29
4. Barre des documents ouverts. Cette barre permet de visualiser rapidement tous les lments
ouverts. Un simple clic sur le bouton correspondant llment laffiche dans son propre diteur.

La barre de menu (ruban) en dtail


La barre de menu de WINDEV est prsente sous forme dun ruban. Ce ruban est compos de
volets dans lesquels sont regroupes les diffrentes options des diteurs.
Nous allons dtailler ici, les diffrents lments importants du ruban, ainsi que la manire dont
nous le manipulerons dans ce cours.

Les diffrents lments du ruban


Le ruban est constitu de 3 zones:
la zone des boutons, gauche (1).
la zone des volets en haut (2).
la zone des options (3).
Voyons ces diffrentes zones en dtail.

La zone des boutons


La zone des boutons regroupe principalement les boutons daccs rapide.
Ces boutons permettent deffectuer les oprations les plus courantes, bien
souvent communes tous les diteurs: enregistrer, ouvrir, crer, ...
Les 3 logos en haut de cette zone sont galement spcifiques:
Le logo du produit permet dafficher la fentre "A propos", les perso-menus
(menus personnaliss) et les menus droulants de lancienne interface des
diteurs (version 17 et antrieure).
Les 2 logos suivants permettent de retrouver les barres doutils et les me-
nus droulants de lancienne interface des diteurs (version 17 et antrieure).

La zone des volets

Les diffrents volets du ruban permettent daccder aux options des diffrents diteurs pour le
projet en cours. Plusieurs types de volets sont disponibles:
le volet en cours: Longlet du volet apparat en blanc et un trait orange ple est affich en haut
de longlet.
les volets contextuels, spcifiques llment en cours: Le nom du volet est affich en bleu.
les volets disponibles: Le nom du volet apparat en noir.

30 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La zone des options

En fonction du volet slectionn, les options affiches dans le ruban diffrent. Plusieurs types
doptions sont disponibles:
Options cocher
Boutons cliquer
Boutons flche permettant de drouler des options. Deux types de boutons flche sont dis-
ponibles:
les boutons flche permettant uniquement de drouler un menu
les boutons flche permettant soit de drouler un menu (clic sur la flche), soit deffectuer
une action par dfaut (clic sur licne du bouton).
Les options sont rassembles par groupe. Chaque groupe doptions a un nom et peut avoir un
bouton de regroupement . Ce bouton permet deffectuer une action spcifique selon le groupe
en cours: affichage de la description de llment en cours, affichage de laide, ...

Dans ce cours, pour dsigner une option de menu, nous parlerons donc de volets et de groupes.
Par exemple:
Pour afficher laide, sous le volet "Accueil", dans le groupe "Aide en ligne", cliquez sur "Aide".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 31
Leon 1.2. Ma premire fentre

Ce que vous allez apprendre dans cette leon...

Comment crer une fentre


Comment saisir un texte et lafficher

Dure estime: 30 mn

32 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Pour commencer utiliser WINDEV, nous allons simplement crer quelques fentres.

Les fentres permettent dafficher ou de saisir lcran des informations. Luti-


Note

lisateur peut agir directement sur les fentres par lintermdiaire de champs, de
boutons, ...

Ces quelques exemples vous permettront de connatre les bases de la programmation en WINDEV
et vous permettront ensuite daborder des sujets plus complets.
Les leons de cette premire partie vont vous permettre de:
crer des fentres simples,
manipuler des chanes, des numriques, des montaires,
manipuler des dates et des heures.

Ouverture du projet

Lancez WINDEV 21 (si ce nest dj fait). Si ncessaire, affichez la fentre de bienvenue de


WINDEV : utilisez la combinaison de touches [CTRL >].
Ouvrez le projet "WD Mes Premires Fentres".
Pour cela, dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez
le premier projet "Mes premires fentres (Exercice)".
Astuce: si la fentre de bienvenue nest pas affiche, sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "Mes premires
fentres (Exercice)".
Important

Dans cette partie, nous nous concentrons sur la cration de fentres simples. Le
projet "WD Mes Premires Fentres" est un projet vide, dj cr. La cration de
projet sera aborde dans une prochaine leon.

Un projet corrig est disponible. Ce projet contient les diffrentes fentres cres
dans cette leon. Pour ouvrir le projet corrig:
Corrig

dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slection-


nez le projet "Mes premires fentres (Corrig)".
sous le volet "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-
formation" puis slectionnez "Mes premires fentres (Corrig)".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 33
Ma premire fentre: saisir et afficher des donnes

Prsentation
Voici la fentre que vous allez crer:

Cette fentre permet lutilisateur de saisir son prnom et dafficher un message de bienvenue
grce au bouton "Afficher".
Vous pouvez tre tent de dire que cest trop simple, trop basique, mais nous vous conseillons
de raliser cette fentre. Vous risquez dtre surpris par la facilit et lintuitivit de lditeur de
WINDEV. De plus, cette fentre vous permettra de dcouvrir des concepts fondamentaux pour la
suite de ce cours.

Cration de la fentre

Pour crer la fentre:


1.Cliquez sur parmi les boutons daccs rapide du menu de WINDEV:

2.La fentre de cration dun nouvel lment saffiche. Cette fentre permet de crer tous les
lments pouvant tre associs un projet.
3.Cliquez sur "Fentre" puis sur "Fentre". Lassistant de cration de fentres saffiche.
4.Slectionnez "Vierge" dans la liste des fentres "standard" affiche sur la gauche. Dans la
liste des gabarits prsente sur la droite, le gabarit "Elegant" est slectionn par dfaut. Vous
pouvez choisir un autre gabarit propos dans la liste.

Les gabarits permettent de crer rapidement des interfaces professionnelles. Un


Note

gabarit dfinit le look de la fentre mais galement le look de tous les champs
qui seront utiliss dans cette fentre. Ainsi, aucune faute de got nest possible.

5.Validez. La fentre est automatiquement cre sous lditeur.

34 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons dfinir les caractristiques de base de la fentre: son nom et le titre qui sera
affich dans la barre de titre.
Double-cliquez sur la fentre qui vient dtre cre. La fentre de description saffiche sur
longlet "Gnral". Le nom de la fentre propos par dfaut est "FEN_SansNom1".

Observez bien le nom de la fentre que WINDEV propose par dfaut: ce nom
commence par les lettres "FEN_". Ce prfixe est automatiquement ajout car le
projet utilise une charte de programmation.
La charte de programmation permet de dfinir un prfixe pour chaque type dob-
jet et ainsi didentifier rapidement llment manipul:
Note

une fentre commence par "FEN_",


un bouton commence par "BTN_",
etc.
Si vous ne voulez pas utiliser cette charte, il suffit de la dbrancher: sous le volet
"Projet", dans le groupe "Autres actions", droulez "Charte" et dcochez loption
"Utiliser la charte".

Saisissez les informations suivantes:

1.Le nom "logique" de la fentre: remplacez "FEN_SansNom1" par "FEN_Saisie".


Ce nom sera le nom sous lequel sera enregistre la fentre sur le disque (avec lextension
"WDW") dans le rpertoire des sources du projet. Ce nom sera galement utilis en program-
mation pour manipuler la fentre, nous y reviendrons.
2.Le titre de la fentre: saisissez "Ma premire fentre". Ce titre est affich dans la barre de
titre de la fentre.
Validez (bouton vert). Le titre apparat dans la barre de titre de la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 35
Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide. Par dfaut:
le titre de llment correspond au titre que nous avons saisi.
le nom de llment correspond au nom logique de la fentre.
lemplacement propos correspond au rpertoire du projet, dans lequel tous les lments
du projet sont regroups.

Validez en cliquant sur le bouton vert.


Saisie et affichage de la valeur saisie
Pour grer la saisie et laffichage de la valeur saisie, vous allez crer:
un champ dans lequel lutilisateur va saisir son prnom. Ce type de champ est donc un "champ
de saisie".
un bouton permettant dafficher le prnom saisi.

Pour crer le champ de saisie:


1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie" (cliquez sur la
flche):

La liste des champs de saisie proposs par dfaut saffiche.


2.Cliquez sur "Texte simple" dans la liste des champs. Le champ en cration suit alors le mou-
vement de la souris.
3.Dplacez la souris dans la fentre vers la position o le champ doit tre cr (par exemple
en haut de la fentre). Pour poser le champ dans la fentre, il suffit de faire un nouveau clic
gauche de souris.

36 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Faites un clic droit de la souris sur le champ que vous venez de crer. Le menu contextuel
du champ saffiche. Dans le menu contextuel affich, slectionnez loption "Description". La
fentre de description du champ de saisie saffiche.
5.Modifiez les caractristiques du champ en saisissant les informations suivantes:

Ce champ a pour nom: "SAI_Prnom" (1).


Ce champ a pour libell: "Prnom" (2).
Ce champ est de type texte (3).
6.Validez la fentre de description du champ (bouton vert). Le champ apparat sous lditeur
de fentres.
Le libell du champ apparat tronqu sous lditeur. Pour afficher correctement le champ:
1.Slectionnez le champ (il suffit de cliquer dessus avec la souris).
2.Dans le menu contextuel (clic droit), slectionnez loption "Adapter la taille".
3.Le champ est immdiatement agrandi et le libell apparat en entier.
Remarque: Il est galement possible dagrandir la zone de saisie du champ:
1.Slectionnez le champ.
2.Positionnez le curseur de la souris au-dessus dune des poignes situes droite du champ
(petit carr). Le curseur de la souris se transforme en flche.
3.Cliquez avec le bouton gauche de la souris et maintenez le bouton enfonc pendant le
dplacement permettant dagrandir le champ.
4.Lorsque le champ a atteint la taille voulue, relchez le bouton de la souris.
Pour crer le bouton "Afficher":
1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.Positionnez le champ dans la fentre. Cliquez lemplacement de cration du bouton (par
exemple droite du champ de saisie).
3.Cliquez sur le bouton que vous venez de crer. Le texte affich dans le bouton passe en di-
tion. Saisissez le libell "Afficher". Le nom du bouton devient automatiquement "BTN_Afficher".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 37
4.Vous pouvez voir le nom du bouton:
soit dans la bulle daide affiche lors du survol du champ:

soit dans la barre de message de lditeur:

Nous allons afficher le texte saisi dans une bote de dialogue (une mini-fentre propose par
le systme). Pour cela, nous allons utiliser notre premire fonction WLangage: la fonction
Info.
Notes

Le WLangage est le langage de programmation fourni avec WINDEV. Cest un


langage de 5me gnration (L5G), possdant des ordres volus.

1.Slectionnez laide de la souris le bouton "Afficher".


2.Affichez le menu contextuel du champ (clic droit de la souris).
3.Slectionnez loption "Code". Cette option ouvre lditeur de code de WINDEV. Cet diteur
permet de saisir toutes les instructions WLangage.

Lditeur de code propose diffrents traitements pour chaque type de champ.


Ces traitements correspondent aux vnements lis au champ.
Ainsi, pour le champ "Bouton", deux traitements sont affichs :
Notes

Initialisation,
Clic sur le bouton, excut lorsque lutilisateur clique sur le bouton.
Remarque : Des traitements supplmentaires peuvent tre ajouts si nces-
saire.

4.Dans le traitement "Clic sur BTN_Afficher", saisissez le code suivant(noubliez pas lespace
aprs le "Bonjour" sinon le prnom sera coll au texte) :
Info("Bonjour "+SAI_Prnom)

Remarque sur laide la saisie: Ds la saisie des deux premiers caractres, WINDEV propose
tous les mots du vocabulaire WLangage contenant ces caractres. Lassistance au dveloppe-
ment est pousse trs loin. Vous ne pouvez plus vous tromper en saisissant le nom dun lment:
les erreurs de syntaxe sont minimises. Il suffit de slectionner le mot dsir et de valider par la
touche [ENTREE]. Vous pourrez ainsi vous concentrer sur lalgorithme.

38 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cest pour cela que la charte de programmation est trs importante. Tous les
Notes
lments manipuls dans le code de lapplication utilisent la mme norme et
peuvent ainsi tre facilement retrouvs lors de la saisie du code.

En saisissant ce code sous lditeur de code, vous constatez que les diffrents
lments saisis utilisent des couleurs diffrentes. Cest la coloration syntaxique.
Lditeur de code permet ainsi didentifier rapidement les diffrents lments
Notes

manipuls par le code:


les fonctions du WLangage apparaissent en bleu,
les chanes de caractres (entre guillemets) apparaissent en violet,
les noms de champs apparaissent en cyan.

La fonction Info affiche le message pass en paramtre. Notre message est construit partir du
texte "Bonjour " et de la valeur du champ "SAI_Prnom". Le signe "+" indique une opration dite de
"concatnation" entre deux chanes.
Notes

Dans cet exemple, le texte saisi est affich dans une fentre systme, mais il est
galement possible de lafficher dans une fentre cre avec WINDEV.

Nous allons enregistrer la fentre et la tester:


1.Enregistrez les modifications en cliquant sur parmi les boutons daccs rapide ( gauche
du ruban) ou par la combinaison de touches [CTRL] + [S].
2.Cliquez sur parmi les boutons daccs rapide (ou utilisez la touche [F9]).
3.La fentre que vous avez cre se lance en excution. Saisissez votre prnom.
4.Cliquez sur le bouton "Afficher".
5.Validez la fentre systme qui saffiche (cliquez sur le bouton "OK").
Tout dveloppeur sait que tester un programme est souvent long, voire fastidieux. Avec WINDEV,
en UN CLIC, vous testez la fentre, ltat ou la procdure que vous tes en train de raliser. Cest
la fois simple et rapide!
Fermez la fentre de test: cliquez sur le bouton de fermeture systme de la fentre (bouton
"x" situ dans la barre de titre).
Lditeur de WINDEV rapparat. Fermez lditeur de code: sous le volet "Accueil", dans le
groupe "Gnral", cliquez sur "Fermer".

Amliorations de la fentre
Lors de ce premier test, vous avez remarqu que:
votre fentre est trop grande,
votre fentre peut tre redimensionne alors quelle ne contient que deux champs,
le prnom saisi est affich avec la casse utilise dans le champ de saisie. Nous allons forcer
lutilisation dune majuscule en dbut de mot.
Nous allons revoir rapidement linterface de cette fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 39
Pour rduire la taille de la fentre sous lditeur:
1.Cliquez sur la fentre: des poignes apparaissent autour de la fentre (selon le gabarit uti-
lis, la couleur de ces poignes peut tre diffrente).
2.Cliquez sur la poigne situe en bas droite et rduisez la taille de la fentre en mainte-
nant le bouton gauche de la souris enfonc.
Pour que la fentre ne soit pas redimensionnable pendant lexcution:
1.Double-cliquez sur la fentre. La fentre de description saffiche.
2.Dans longlet "IHM", dcochez loption "Redimensionnable" (il suffit de cliquer sur loption).
3.Validez.
Notes

Nous approfondirons les conseils dinterface et dergonomie dans un prochain


chapitre de ce cours.

Pour visualiser le rsultat en excution, relancez le test de cette fentre.


Revenez sous lditeur en fermant la fentre de test.
Nous allons maintenant forcer lutilisation dune majuscule lors de la saisie et de laffichage
du prnom.

Par dfaut, les caractres seront saisis en majuscules ou en minuscules selon


la position de la touche [CAPSLOCK] du clavier. Ce type de saisie peut poser pro-
blme lors dune recherche par exemple.
Notes

WINDEV propose la gestion dun masque de saisie pour un champ. Le masque


de saisie permet de mettre en forme la valeur saisie, automatiquement et sans
aucune ligne de code.

Pour modifier le masque de saisie:


1.Double-cliquez sur le champ "Prnom". La fentre de description du champ saffiche.
2.Dans longlet "Gnral", droulez la liste "Masque de saisie" et choisissez "1re lettre maj.".

3.Validez la fentre de description du champ.


4.Sous lditeur, le nom du masque apparat automatiquement dans le champ.
Relancez le test de cette fentre pour visualiser le rsultat en excution.

40 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Vous venez de crer rapidement et avec succs votre premire fentre. Nous allons dans la suite
de ce cours dcouvrir de nouveaux concepts de WINDEV.
Validez le message et fermez la fentre de test (cliquez sur la croix en haut, droite de la
fentre). Lditeur rapparat.
Fermez la fentre "FEN_Saisie" affiche sous lditeur: sous le volet "Accueil", dans le groupe
"Gnral", cliquez sur "Fermer".

Un exemple pour chaque type de champs


Dans cette leon, nous avons utilis deux types de champs: un champ de saisie
et un bouton.
WINDEV propose plus dune quarantaine de champs. Pour dcouvrir lutilisation
de chaque type de champ, des exemples unitaires sont votre disposition.
Pour ouvrir un exemple unitaire:
1.Affichez la fentre de bienvenue de WINDEV (touches CTRL + <).
Notes

2.Cliquez si ncessaire sur "Ouvrir un exemple".


3.La liste des exemples complets, didactiques et unitaires saffiche.
4.Dans la catgorie "Exemples unitaires", slectionnez lexemple voulu (par
exemple "Le champ Arbre") et double-cliquez sur son nom: la fentre corres-
pondante souvre automatiquement sous lditeur.
Remarque: Pour simplifier, tous les exemples unitaires correspondant aux
champs commencent par les mots "Le champ ". Vous pouvez saisir ces mots
dans le champ de recherche de la fentre de bienvenue.

Fermez le projet: sous le volet "Accueil", dans le groupe "Gnral", droulez "Fermer" et
slectionnez "Fermer le projet".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 41
Leon 1.3. Des fentres plus volues

Ce que vous allez apprendre dans cette leon...

Comment faire un calcul


Comment crer une fentre affichant la date et lheure en temps rel
Crer une fentre avec menu

Dure estime: 30 mn

42 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Dans la leon prcdente, nous avons dj vu comment saisir et afficher un texte.
Dans cette leon, nous allons crer les fentres suivantes:
Une fentre de calcul,
Une fentre affichant la date et lheure en temps rel,
Un menu pour rassembler les fentres cres prcdemment.
Ces fentres vont tre cres dans le projet "WD Mes Premires Fentres" que nous avons dj
manipul dans la leon prcdente.
Ouvrez nouveau le projet "WD Mes Premires Fentres".
Pour cela, dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez
le premier projet "Mes premires fentres (Exercice)".
Astuce: si la fentre de bienvenue nest pas affiche, sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "Mes premires
fentres (Exercice)".

Un projet corrig est disponible. Ce projet contient les diffrentes fentres cres
dans cette leon. Pour ouvrir le projet corrig:
Corrig

dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slection-


nez le projet "Mes premires fentres (Corrig)".
sous le volet "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-
formation" puis slectionnez "Mes premires fentres (Corrig)".

Grer la saisie dun numrique pour faire un calcul


Dans une nouvelle fentre, nous allons maintenant:
Crer deux champs de saisie numriques.
Calculer et afficher la valeur TTC du montant HT saisi.
Le rsultat du calcul sera affich dans le champ "Prix TTC".

Cette fentre est la suivante:

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 43
Mise en place

Crez une nouvelle fentre vierge:


1.Cliquez sur parmi les boutons daccs rapide. La fentre de cration dun nouvel lment
saffiche: cliquez sur "Fentre" puis sur "Fentre". Lassistant de cration de fentres saffiche.
2.Slectionnez "Vierge" et le gabarit "Elegant".
3.Validez. La fentre est automatiquement cre sous lditeur.
4.Faites un clic droit sur la fentre et slectionnez loption "Description".
5.Slectionnez longlet "Gnral". Indiquez le nom de la fentre "FEN_Calcul" et le titre
"Exemple de calcul". Validez la fentre de description.
6.Enregistrez la fentre: cliquez sur parmi les boutons daccs rapide.
7.Validez les informations affiches dans la fentre de sauvegarde en cliquant sur le bouton
vert.

Il est trs important de sauvegarder la fentre ds sa cration.


Lenregistrement de la fentre permet par la suite WINDEV:
Notes

de proposer le nom des champs automatiquement dans le code.


de proposer le renommage automatique des champs dans le code.

Pour crer le champ de saisie correspondant au prix HT:


1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie" (cliquez sur la
flche). La liste des diffrents champs de saisie disponibles saffiche. Slectionnez le champ
"Montaire" et positionnez le champ dans la fentre.
2.Faites un clic droit sur le champ et slectionnez loption "Description".
3.Dans la fentre de description:
Saisissez le nom du champ "SAI_PrixHT".
Saisissez le libell "Prix HT".
Slectionnez le type "Montaire".
4.Validez.
Pour crer le champ dans lequel sera affich le rsultat:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie" (cliquez sur la
flche). La liste des diffrents champs de saisie disponibles saffiche. Slectionnez le champ
"Montaire" et positionnez le champ dans la fentre (par exemple sous le champ de saisie affi-
chant le prix HT).
2.Saisissez les informations du champ: faites un clic droit sur le champ et slectionnez lop-
tion "Description".
Indiquez le nom du champ "SAI_PrixTTC".
Modifiez le libell par "Prix TTC".
Slectionnez le type "Montaire".
3.Le rsultat affich dans ce champ ne doit pas tre modifiable. Cliquez sur longlet "IHM" et
choisissez ltat initial "Affichage seul".
4.Validez.
5.Sauvez la fentre.

44 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le calcul du montant TTC va tre effectu chaque modification du champ contenant le montant
hors taxe.
Pour raliser le calcul du montant TTC:
1.Affichez le code du champ "SAI_PrixHT" (option "Code" du menu contextuel du champ). Les
diffrents traitements associs par dfaut au champ de saisie apparaissent :
Initialisation : Excut louverture de la fentre.
Entre dans le champ : Excut lors de lentre du curseur de saisie dans le champ
Sortie du champ : Excut lors du changement de champ (touche TAB, changement de
champ par la souris, ...)
A chaque modification du champ : Excut chaque modification du contenu du champ
(saisie ou effacement dune lettre par exemple).
2.Dans le traitement "A chaque modification", saisissez le code suivant:
// TVA fige 20% pour lexemple
// Cela aurait pu tre une variable quelconque
// provenant dune base de donnes
SAI_PrixTTC = SAI_PrixHT * 1.20
3.Fermez la fentre de code (croix de fermeture de la fentre de code).
4.Enregistrez la fentre.

Test de la fentre

Testez la fentre:
1.Cliquez sur parmi les boutons daccs rapide.
2.Saisissez une valeur dans le champ "Prix HT". Le rsultat apparat immdiatement dans le
champ "Prix TTC".

3.Fermez la fentre de test.

Utilisation dun champ Combo pour proposer plusieurs possibilits


Dans la fentre que nous venons de crer et de tester, le calcul prend en compte un taux fixe de
TVA.
Pour compliquer un peu notre exemple, nous allons donner la possibilit de slectionner le taux
de TVA dans une liste droulante (appele "combo").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 45
Pour crer le champ Combo de slection de la TVA:
1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur "Combo" puis cliquez
dans la fentre la position o le champ doit tre cr ( ct du champ "Prix HT").
2.Lassistant de cration dun champ Combo saffiche. Cet assistant permet de dfinir sim-
plement les principales caractristiques du champ.
3.Slectionnez loption "Remplir la combo par programmation ou saisir directement une liste
de valeurs".

4.Affichez ltape suivante de lassistant laide des boutons flchs.


5.Conservez les options proposes par dfaut et parcourez les tapes suivantes de lassis-
tant.
6.Dans ltape intitule "Contenu initial", saisissez la liste des valeurs de TVA possibles:
5.5
Appuyez sur la touche [ENTREE].
10
Appuyez sur la touche [ENTREE].
20.

7.Affichez ltape suivante de lassistant et donnez un nom au champ (COMBO_TVA) et un li-


bell (TVA).

46 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8.Validez.
9.Modifiez si ncessaire la taille de la fentre pour que le champ Combo soit affich ct du
champ de saisie affichant le prix HT.
Nous allons maintenant modifier le code du champ "Prix HT" pour prendre en compte le montant
de la TVA slectionn dans le champ Combo.
Pour prendre en compte le montant de la TVA slectionn:
1.Slectionnez le champ "Prix HT".
2.Affichez le code du champ "Prix HT" (option "Code" du menu contextuel).
3.Modifiez le code de la faon suivante:

SAI_PrixTTC =...
SAI_PrixHT*(1+Val(COMBO_TVA..ValeurAffiche)/100)

Ce code calcule le montant TTC en utilisant la valeur slectionne dans le champ Combo
(donne obtenue avec la proprit ..ValeurAffiche). Le contenu du champ Combo tant une
chane de caractres, la fonction Val permet dobtenir une valeur numrique afin de calculer
le montant TTC.

Le WLangage est compos de fonctions et de proprits. Les fonctions peuvent


attendre des paramtres et renvoient des rsultats. Les proprits sont directe-
ment appliques aux champs grce la syntaxe:
<Nom du champ>..<Nom de la proprit>.
Notes

Dans notre exemple, la proprit ..ValeurAffiche est utilise sur le champ


COMBO_TVA.
A tout moment, il est possible de consulter laide en ligne dune fonction grce
la touche [F1]. Pour plus de dtails sur laide en ligne, consultez "Comment acc-
der laide en ligne ?", page 20.

4.Testez votre fentre ( parmi les boutons daccs rapide):


Saisissez une valeur dans le champ "Prix HT".
Le rsultat apparat immdiatement dans le champ "Prix TTC" en fonction de la TVA slec-
tionne.
Cependant si vous changez le taux de TVA, la valeur du champ "Prix TTC" nest pas modifie.
Nous allons maintenant corriger ce problme.
5.Fermez la fentre de test. Lditeur de code est de nouveau affich.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 47
Pour prendre en compte le montant de la TVA, chaque modification de la valeur de la TVA
dans la combo, il suffit de recopier le code du traitement "A chaque modification" de "Prix HT"
dans le traitement "Slection dune ligne" de la combo "COMBO_TVA":
1.Affichez le code du champ "Prix HT" (option "Code" du menu contextuel par exemple).
2.Slectionnez le code prsent dans le traitement "A chaque modification de SAI_PrixHT".
3.Utilisez les touches [CTRL] + C.
4.Affichez le code du champ Combo "TVA".
5.Placez-vous dans le traitement "Slection dune ligne" et utilisez les touches [CTRL] + V.
6.Testez votre fentre ( parmi les boutons daccs rapide) et slectionnez les diffrentes
valeurs dans le champ Combo.

Maintenant, notre fentre fonctionne correctement. Mais le mme code est utilis 2 endroits
diffrents! Comment grer les modifications et leur report? Le plus simple est dutiliser une
procdure. Cest ce que nous allons faire maintenant.
Fermez la fentre de test pour revenir sous lditeur de code.
Cration et utilisation dune procdure
La cration dune procdure partir dun code existant est trs simple avec WINDEV: une option
de menu se charge de tout.
Pour crer la procdure de calcul de la TVA:
1.Slectionnez le code prsent dans le traitement "Slection dune ligne" de la combo "TVA".
2.Affichez le menu contextuel du code slectionn (clic droit de la souris).
3.Slectionnez loption "Nouveau .. Crer une procdure locale contenant le code slec-
tionn".
4.Donnez le nom de la procdure crer: CalculTVA. Validez.
5.La procdure locale "CalculTVA" est automatiquement cre avec le code slectionn. Votre
code a t remplac par lappel la procdure "CalculTVA()".

6.Pour terminer, il suffit de remplacer le second code de calcul de la TVA (prsent dans le
traitement "A chaque modification" du champ "Prix HT") par lappel la procdure "Calcul-
TVA()".

7.Voil, cest termin. Vous pouvez enregistrer et tester votre fentre pour vrifier si tout fonc-
tionne correctement.

48 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Afficher la date et lheure en temps rel

Prsentation
Nous allons raliser la fentre suivante:

Cette fentre affiche la date et lheure. Simple! Cependant, lheure est mise jour en temps rel.
Pour cela, WINDEV met votre disposition les "Timers".
Un timer permet dexcuter en parallle une tche qui doit tre lance priodiquement (acquisi-
tion de donnes en tche de fond, rafrachissement automatique de donnes, dclenchement
dun programme une heure donne, ...).
Mais commenons par crer notre fentre!

Cration de la fentre

Crez une nouvelle fentre vierge:


1.Cliquez sur parmi les boutons daccs rapide. La fentre de cration dun nouvel lment
saffiche: cliquez sur "Fentre" puis sur "Fentre". Lassistant de cration de fentres saffiche.
2.Slectionnez "Vierge" dans la liste des fentres "standard" affiche sur la gauche. Dans la
liste des gabarits prsente sur la droite, le gabarit "Elegant" est propos automatiquement.
3.Validez. La fentre est automatiquement cre sous lditeur.
Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide. Dans la fentre
qui saffiche, saisissez:
le titre de llment: "Mise jour de lheure par timer".
le nom de llment: FEN_Timer.

Validez (bouton vert). La fentre est enregistre. Le titre apparat dans la barre de titre.
Nous allons maintenant ajouter un champ de type Date dans notre fentre pour afficher la date
du jour.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 49
Pour crer le champ de saisie de type Date:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie" (cliquez sur la
flche). La liste des diffrents champs de saisie disponibles saffiche.
2.Slectionnez le champ "Date" (sans le petit calendrier) et positionnez le champ dans la
fentre.
3.Faites un clic droit sur le champ et slectionnez loption "Description" dans le menu contex-
tuel.
4.Dans longlet "Gnral" de la fentre de description:

Saisissez le nom du champ "SAI_Jour" (1).


Saisissez le libell "Nous sommes le: " (2).
Ce champ est de type "Date": ce champ permet dafficher et de saisir une date (3).
Nous allons dfinir les diffrents masques associs ce champ (4).
Deux types de masques sont disponibles:
Le masque daffichage: il correspond au format utilis lorsque la valeur est
Notes

affiche dans le champ.


Le masque de saisie: il correspond au format utilis lorsque lutilisateur va
saisir la valeur dans le champ.

50 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
1.Conservez le masque de saisie slectionn ("Date dfinie par le projet").

Par dfaut, le masque de saisie du champ correspond au masque numrique


dfini pour le projet. Cette information est slectionne dans longlet "Langues"
de la description du projet. Pour afficher la description du projet, sous le volet
Notes

"Projet", dans le groupe "Projet", cliquez sur "Description".


Ainsi, le mme masque est utilis automatiquement dans tous les champs
numriques de lapplication. Cette fonctionnalit est trs utile dans les
applications multilingues.

2.Slectionnez le masque daffichage "Jjjj JJ Mmmm AAAA". Ce masque daffichage permet


dafficher la date sous une forme littraire par exemple "Mardi 16 Juillet 2015".
3.Ce champ permet uniquement dafficher la date. Aucune saisie ne doit tre effectue. Pour
cela, il suffit dindiquer que ce champ est en mode "Affichage seul" dans longlet "IHM" de la
fentre de description du champ.
4.Validez.
Le masque que nous avons choisi permet dafficher la date en toutes lettres. Pour viter
dafficher une date tronque, nous allons agrandir la largeur du champ:
1.Slectionnez le champ de saisie.
2.Agrandissez le champ en largeur laide des poignes de redimensionnement.
Pour afficher la date du jour dans le champ de type Date, il suffit de linitialiser avec cette date.
Cette opration est ralise par programmation.
Affichez le code associ au champ que vous venez de crer:
1.Slectionnez le champ de saisie: il suffit de cliquer dessus avec la souris.
2.Affichez le menu contextuel (clic droit de la souris) et slectionnez loption "Code". Lditeur
de code apparat.
3.Dans le traitement "Initialisation de SAI_Jour", saisissez le code suivant:
MoiMme = DateDuJour()

Examinons ce code dinitialisation:


MoiMme est un mot-cl qui reprsente le nom du champ en cours. MoiMme permet de
rendre un code local (traitement dun champ,...) ou global (procdure globale, classe, ...) in-
dpendant du champ en cours.
DateDuJour est une fonction WLangage permettant (comme son nom lindique) dobtenir la
date du jour.
Le signe "=" permet daffecter le champ en cours avec le rsultat de la fonction WLangage
DateDuJour.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 51
Enregistrez la fentre et testez-la (en cliquant sur puis sur parmi les boutons
daccs rapide).

Le champ de saisie est bien initialis avec la date du jour.


Nous allons maintenant ajouter un nouveau champ de saisie permettant dafficher lheure en
temps rel.
Pour crer le champ de saisie de type heure:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie" (cliquez sur la
flche). La liste des diffrents champs de saisie disponibles saffiche.
Slectionnez le champ "Heure" et positionnez le champ dans la fentre.
2.Faites un clic droit sur le champ et slectionnez loption "Description".
3.Dans longlet "Gnral" de la fentre de description:
Saisissez le nom du champ "SAI_Heure".
Saisissez le libell "Il est: ".
Le masque daffichage slectionn par dfaut affiche les heures, les minutes et les se-
condes. Nous ny touchons pas.
4.Comme pour le champ Date, ce champ permet uniquement dafficher lheure. Slectionnez
loption "Affichage seul" dans longlet "IHM" de la fentre de description du champ.
5.Validez.
De la mme manire que pour le champ Date, nous allons initialiser le champ Heure avec
lheure actuelle.
1.Affichez le code associ au champ que vous venez de crer:
Affichez le menu contextuel du champ (clic droit).
Slectionnez loption "Code".

Pour afficher les traitements associs un champ, il est galement possible


de:
Notes

1.Slectionner le champ.
2.Utiliser la touche [F2].

3.Dans le traitement "Initialisation de SAI_Heure", saisissez le code suivant:


MoiMme = Maintenant()
La fonction Maintenant est une fonction WLangage permettant (comme son nom lindique) dob-
tenir lheure actuelle.
Enregistrez la fentre et testez-la (en cliquant sur puis sur ). La date et lheure
saffichent. Nous allons maintenant actualiser lheure au fil du temps.

52 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mise en place du timer
Pour mettre jour le champ Heure, nous allons appeler toutes les secondes une procdure qui
va modifier le champ Heure avec lheure actuelle. Cette procdure va tre locale la fentre: en
effet, cette procdure ne sera appele que dans cette fentre.
Dans la fentre de calcul, nous avons dj cr une procdure partir dun code existant. Mainte-
nant, nous allons dtailler les diffrentes tapes de cration dune procdure.
Remarque: Dans la suite de ce cours, nous reviendrons en dtail sur les diffrents types de pro-
cdures.
Pour crer une procdure locale:
1.Slectionnez dans le volet "Explorateur de projet" le nom de la fentre "FEN_Timer".
2.Cliquez sur la flche gauche pour afficher les diffrents lments.
3.Cliquez sur "Procdures locales". Le dossier est slectionn.
4.Dans le menu contextuel de "Procdures locales" (clic droit), slectionnez loption "Nouvelle
procdure locale".

5.Dans la fentre qui apparat, indiquez le nom de la procdure "MiseAheure" et cliquez sur le
bouton "Ajouter".
6.La procdure apparat sous lditeur de code. Saisissez le code suivant:
SAI_Heure = Maintenant()

7.Ce code permet de mettre jour le champ affichant lheure. Nous allons maintenant lappe-
ler toutes les secondes grce au timer.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 53
Pour mettre en place le timer:
1.Revenez sur la fentre "FEN_Timer". Vous pouvez par exemple cliquer sur le bouton "FEN_
Timer" en bas.

2.Cliquez dans la fentre daccueil de la fentre (fond gris). Affichez le menu contextuel (clic
droit) et slectionnez loption "Code".
3.Les diffrents traitements associs la fentre saffichent.
4.Dans le traitement "Fin dinitialisation de FEN_Timer", saisissez le code suivant:
TimerSys(MiseAheure,100,1)

5.Ce code permet dindiquer que la procdure "MiseAheure" va tre appele toutes les se-
condes (100 reprsente les centimes de seconde).

Enregistrez la fentre et testez-la (en cliquant sur puis sur parmi les boutons
daccs rapide).

Nous avons vu ici la cration dun timer par programmation. Il est galement
Notes

possible de crer un timer automatiquement depuis lditeur de code. Pour plus


de dtails, consultez laide en ligne (mot-cl: Procdures automatiques).

Fermez la fentre de test pour revenir sous lditeur.


Cration dun bouton pour quitter la fentre
Dans une fentre, il y a toujours un bouton ou une option pour quitter la fentre. Bien entendu,
si vous najoutez pas de bouton ou doption, il reste toujours la possibilit de fermer la fentre en
cliquant sur licne "X" de la barre de titre, mais ce nest pas trs convivial.
Pour crer le bouton de fermeture:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton" (cliquez sur la
flche). La liste des boutons prdfinis saffiche.
2.Cliquez sur le bouton de type "Fermer".
3.Cliquez dans la fentre la position o le bouton doit tre cr (par exemple en bas
droite).
Vrifions la description du bouton cr:
1.Affichez la description du champ (option "Description" du menu contextuel ou double-clic sur
le bouton).
2.Dans longlet "Gnral":
Le nom du bouton respecte la charte de programmation.
Une action est associe au bouton: cette action permet de fermer la fentre.
Les images correspondant au gabarit utilis sont automatiquement associes au bouton.

3.Dans longlet "IHM", le bouton est de type "Abandon". Le code du bouton sera ainsi excut
lorsque la touche [ESC] sera utilise.

54 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
WINDEV propose plusieurs types pour les boutons: Aide, Normal, Validation,
Interruptionet Abandon.
Notes
Pour plus de dtails sur les diffrents types de boutons:
consultez laide en ligne (mot-cl: Champ Bouton, Type de bouton).
consultez lexemple unitaire: Le champ Bouton.

4.Fermez la fentre de description du bouton.


Vous pouvez facilement dplacer le bouton de fermeture:
1.Cliquez sur le bouton de fermeture avec le bouton gauche de la souris.
2.Tout en maintenant le bouton de la souris enfonc, faites glisser la souris (et le champ)
lemplacement voulu.
Notre fentre est termine.
Relancez le test de cette fentre pour visualiser le rsultat en excution.

Cration dune fentre avec un menu


Voil, nous venons de raliser quelques fentres. Nous allons maintenant crer la fentre princi-
pale de cet exemple. Cette fentre contiendra le menu organisant laccs aux diffrentes fentres
de lapplication.

WINDEV permet de crer des menus droulants.


Un menu est toujours associ une fentre. Ainsi, pour crer un menu, il faut en premier crer la
fentre affichant ce menu.

Dcrire le menu

Pour crer une fentre comportant un menu:


1.Cliquez sur parmi les boutons daccs rapide pour crer une nouvelle fentre.
2.La fentre de cration dun nouvel lment saffiche: cliquez sur "Fentre" puis sur "Fe-
ntre".
3.Dans lassistant qui saffiche, slectionnez "Vierge" et validez.
4.Donnez un nom et un titre cette fentre. Cette fentre a pour nom "FEN_Menu" et pour
titre "Menu principal".
5.Enregistrez la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 55
6.Sous le volet "Fentre", dans le groupe "Barres et menus", droulez "Menu principal" et
slectionnez loption "Ajouter le menu principal".
7.Un menu sinsre dans la fentre sous la barre de titre. Ce menu contient par dfaut une
option qui se nomme "Menu".

Remarque: Chaque option de menu est saisie directement dans le menu.


Chaque option comporte une lettre dappel. Cette lettre dappel permet daccder directe-
ment loption avec la combinaison de touches [ALT] + Lettre. Le caractre & doit alors
prcder la lettre dappel (par exemple "&Fentres").
Pour crer une option de menu et pour la modifier, il suffit dutiliser le menu contextuel du
menu ou de loption de menu. Pour afficher le menu contextuel dune option de menu:
1.Slectionnez le menu.
2.Cliquez avec le bouton droit de la souris.
3.Le menu contextuel suivant saffiche:

Plusieurs choix sont possibles. Les principales options de gestion de menu sont:
"Description de loption" pour modifier le libell de loption et la lettre dappel.
"Code" pour saisir le code source correspondant au traitement excuter lors du clic sur
cette option.
"Ajouter aprs" pour ajouter une option de menu aprs loption en cours.
"Ajouter avant" pour ajouter une option de menu avant loption en cours.
"Transformer pour drouler un sous-menu" pour ajouter dans loption en cours un sous-
menu (arborescence).

56 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons raliser le menu suivant:

Pour le menu "Fichier .. Quitter":


1.Affichez la description de loption "Menu" insre par dfaut et changez le libell en
"Fichie&r". Validez la fentre de description.
Notes

Rappel: Le "&" permet de dfinir la lettre dappel de loption de menu.

2.Dans le menu contextuel de loption "Fichier", slectionnez loption "Transformer pour d-


rouler un sous-menu" et saisissez "Quitter".

Pour le menu "Fentres":


1.Slectionnez loption "Fichier".
2.Dans le menu contextuel de loption "Fichier", slectionnez loption "Ajouter aprs" et saisis-
sez "&Fentres".
3.Dans le menu contextuel de loption "Fentres", slectionnez "Transformer pour drouler un
sous-menu" et saisissez "&Saisie dun texte".
4.Dans le menu contextuel de loption "Saisie dun texte", slectionnez "Ajouter aprs" et sai-
sissez "&Heure en temps rel".
5.Dans le menu contextuel de loption "Heure en temps Rel", slectionnez "Ajouter aprs" et
saisissez "Calcul de &TVA".

Nous allons maintenant ajouter le raccourci [ALT + F4] pour loption "Quitter".
1.Slectionnez loption "Quitter".
2.Affichez la description de loption (option "Description de loption" du menu contextuel).
3.Dans la zone "Raccourci clavier", droulez la combo, parcourez les lments et slectionnez
"F4". Puis, cochez la case "Alt".
4.Validez.
Lorsque toutes les options de menu sont saisies, visualisez la fentre: cliquez sur "Aperu" dans
le volet "Modification" ou utilisez la combinaison de touches [Alt]+[A].
Ce mode de visualisation permet de visualiser laspect final du menu sans excuter le code. Pour
fermer cette fentre, utilisez le bouton "Fermer" de la tlcommande de laperu.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 57
Dans vos applications, nous vous conseillons de suivre le standard des menus
Windows. Veillez en particulier aux points suivants:
Chaque option du menu principal doit proposer au moins une sous-option.
La premire lettre de chaque option doit tre en majuscule, mme si ce
nest pas la lettre dappel. La lettre dappel est souligne (utilisez le carac-
Astuce

tre "&").
Si un choix de menu appelle une fentre de paramtrage avant dexcuter
loption choisie, terminez le libell par trois points ().
Loption "Quitter" doit tre la dernire sous-option de la premire option de
la barre de menu (exemple: "Fichier.. Quitter").
Si une option daide est prsente, elle doit se trouver la fin de la premire
ligne de menu (loption la plus droite).

Associer un code aux options de menu


Chaque option terminale de menu doit comporter un traitement associ. Classiquement, ce traite-
ment ouvre une fentre, mais nimporte quel type de traitement peut tre excut.
Nous allons saisir le code des diffrentes options:
1.Slectionnez loption "Quitter". Cette option va permettre de quitter lapplication. Dans le
menu contextuel, slectionnez loption "Code". Dans la fentre de code qui souvre, saisissez le
code suivant:

2.Fermez ensuite la fentre de code. La fentre en cours ddition apparat.


3.Dans la fentre, slectionnez loption de menu "Saisie dun texte". Cette option va per-
mettre douvrir la fentre "FEN_Saisie". Dans le menu contextuel, slectionnez loption
"Code". Dans la fentre de code qui souvre, saisissez le code suivant:

4.Fermez la fentre de code.


5.Rptez cette opration pour loption "Heure en temps rel" et saisissez le code suivant:

58 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
6.Rptez cette opration pour loption "Calcul de TVA" et saisissez le code suivant:

Vous laurez devin: la fonction Ouvre permet dafficher une fentre pour effectuer une saisie. La
fonction Ferme quant elle, ferme la fentre en cours.
Si la fentre contenant le menu est la premire fentre affiche par lapplication, la fermeture
de la fentre contenant le menu (par loption "Fichier.. Quitter" dans notre exemple) quivaut
quitter lapplication.

Dans ce code, les fonctions WLangage utilises sont en franais. Si vous tes
plus familiaris avec la langue de Shakespeare, il est possible de visualiser
et de saisir le code en version anglaise: sous le volet "Code", dans le groupe
Notes

"Langues", droulez "Convertir le code" et slectionnez "Convertir en anglais".


Dans cette documentation, seuls les termes franais seront utiliss. Laide en
ligne indique pour chaque terme sa traduction en anglais.

Enregistrez et testez la fentre. Lors du test:


Slectionnez une des options de menu. Fermez la fentre qui souvre.
Cliquez sur loption "Fichier.. Quitter" pour quitter le programme.

Manipuler les options de menu par programmation


Le WLangage offre diverses fonctions et proprits permettant de manipuler les
options de menu.
Notes

Il est ainsi possible dajouter par programmation des menus, options de menu,
sparateurs, ou encore de cloner une option de menu.
Les proprits permettent de savoir si une option est visible ou non, marque ou
non, ...
Pour plus de dtails, consultez laide en ligne (mot-cl: "Menu").

WINDEV: Concepts de base et terminologie


Aprs la pratique, revenons un peu de thorie pour aborder les concepts de base de WINDEV et
la terminologie spcifique WINDEV.

Concepts de base
WINDEV permet de crer simplement une application. Mais que recouvre exactement ce terme
Application?
Une application est un outil qui permet de raliser des tches, des actions automatiquement. Une
application est constitue dun programme excutable (ou dun ensemble de programmes excu-
tables), de librairies, de fichiers de donnes, ...
Un programme excutable est un fichier compos dlments directement manipulables par luti-
lisateur (fentres, tats imprims, ...). Cest ce que lance lutilisateur final dune application.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 59
Pour crer un excutable, WINDEV propose de crer un projet. Un projet relie entre eux les dif-
frents lments du programme et les organise. Cest partir du projet que pourra tre cr le
programme excutable.
Si votre application manipule des donnes, WINDEV permet de dfinir la structure de la base de
donnes grce lanalyse. Lanalyse WINDEV contient la description des fichiers (appels sou-
vent "Tables" dans de nombreuses bases de donnes). Ces fichiers contiendront les donnes de
lapplication.

La description des fichiers de donnes dans lanalyse nentrane pas leur cra-
Notes

tion. Les fichiers de donnes sont crs physiquement uniquement lexcution


de lapplication.

Un ou plusieurs projets WINDEV peuvent tre lis la mme analyse. Dans ce cas, on parle dana-
lyse partage. Par exemple, une application de gestion commerciale peut tre spare en plu-
sieurs modules excutables. Chaque module utilise la mme analyse (et en excution, chaque
excutable peut galement utiliser les mmes fichiers de donnes).

Projet 1

Classes Feuille Fentres


de styles et champs

Analyse

Projet 2 Projet N

Classes Feuille Fentres Classes Feuille Fentres


de styles et champs de styles et champs

Terminologie
Comme nous venons de le voir, un projet WINDEV (li si ncessaire une analyse) permet de
crer une application. Avant de commencer rellement travailler avec WINDEV, revenons sur
les termes utiliss dans WINDEV. En effet, si vous avez travaill avec dautres outils, de nom-
breux termes sont spcifiques WINDEV et ne recouvrent pas toujours la mme ralit que dans
dautres logiciels.

60 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans lanalyse, les termes utiliss sont les suivants:
Fichier: Lanalyse permet de dcrire la structure des fichiers de la base de donnes. Le terme
"Fichier" correspond dans certaines bases de donnes "une table".
Dans WINDEV, le terme "Table" est rserv pour dsigner un objet graphique permettant de
visualiser le contenu dun fichier de donnes sous forme de tableau, et/ou de saisir des lignes.
Par exemple, une table peut permettre de saisir le dtail dune commande.
Enregistrement: Un enregistrement est quelquefois galement appel ligne. Lenregistrement
dun fichier de donnes correspond lensemble des rubriques dfinies pour le fichier.
Rubrique: Dans lanalyse, le terme rubrique dsigne une zone dun fichier de donnes. Len-
semble des rubriques dun fichier de donnes permet de dfinir la structure dun enregistre-
ment.
Cl/Index: Avec WINDEV et sa base de donnes HFSQL, la notion dindex est lie la notion de
cl. La notion de cl fait partie des caractristiques dune rubrique. Les cls permettent dacc-
lrer les accs aux donnes ou de faciliter les parcours des fichiers de donnes. En WINDEV,
si un fichier de donnes HFSQL a plusieurs rubriques cls, en excution, un seul fichier dindex
sera cr.

Dans les fentres et les tats, les termes utiliss sont les suivants:
Fentre: Les fentres permettent dafficher ou de saisir lcran des informations. Les fentres
sont galement appeles "crans" ou "Boites de dialogue". Lutilisateur peut agir directement
sur les fentres par lintermdiaire de champs, de boutons, ...
Etat: Les tats permettent dobtenir une vue personnalise dinformations. Ces informations
peuvent provenir de la base de donnes, de fichiers texte, de champs prsents dans les fe-
ntres, ... Les tats peuvent tre visualiss lcran, imprims sur papier, gnrs en PDF ou
en HTML, ...
Champ: Le mot "champ" est le terme utilis pour dsigner les diffrents objets graphiques affi-
chs dans une fentre ou dans un tat.
Gabarit: Le gabarit permet de dfinir le "look" de lapplication: apparence visuelle des fentres,
des boutons, des champs, ...
Style: Le style regroupe les caractristiques graphiques dun lment: image de fond, bordure,
police,... Les styles des diffrents lments constituant linterface dune application WINDEV
sont regroups dans une feuille de styles.

Dans une application, lentit "NomClient" peut correspondre:


Important

au nom dun champ dune fentre


au nom dun champ dun tat
la rubrique dun fichier de donnes
une variable dfinie par le programmeur

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 61
Leon 1.4. Bases de programmation

Ce que vous allez apprendre dans cette leon...

Les diffrents types de variables


Instructions de base du WLangage
Les oprateurs de base du WLangage
Procdures et fonctions
Traitement des chanes, des numriques et des montaires
Traitement des dates et des heures

Dure estime: 1 heure

62 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Introduction
Dans la leon prcdente, nous avons un peu manipul lditeur de code de WINDEV et son lan-
gage, le WLangage. Cette leon va vous permettre de revenir sur les bases de la programmation
en WLangage, en prsentant les sujets suivants:
Dclaration des diffrents types de variables,
Instructions de base du WLangage,
Procdures et fonctions,
Traitements des chanes,
Traitements des numriques,
Traitements des dates et des heures.

Dclaration des diffrents types de variables

Les diffrents types de variables


WINDEV propose une grande varit de types de variables (boolen, entier, rel, montaire,
chane, date, heure, dure, dateheure, variant, tableau, structure,...).
La syntaxe utiliser pour dclarer une variable est trs simple: il suffit dindiquer le nom de la
variable et son type:
NomVariable EST UN(e) TypeVariable

Quelques exemples:
Indice est un entier
NomFournisseur est une chane
TablePrix est un tableau de 10 montaires
I, J, K sont des entiers
Compteur est un entier = 120
B1 est un boolen = Faux

Pour plus dinformations tous les types de variables disponibles (types simples, types avancs, ...),
consultez laide en ligne (mot-cl: "Types de donnes").

La dclaration des variables et leur porte


Le WLangage permet de manipuler deux types de variables:
Les variables globales.
Les variables locales.
Les variables globales peuvent tre globales au projet ou une fentre. Il suffit de dclarer ces
variables:
dans le code dinitialisation du projet, pour dclarer les variables globales au projet. Ces va-
riables pourront tre utilises dans tous les traitements du projet et des lments du projet
(fentres, tats, ...)
dans le code de dclarations des globales de la fentre, pour dclarer les variables globales de
la fentre. Ces variables pourront tre utilises dans tous les traitements de la fentre et des
lments de la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 63
Toutes les variables dclares ailleurs sont des variables locales.

La plupart des dveloppeurs sont tents de dclarer toutes leurs variables en


"global" dans un projet. Ce type de programmation est en effet "facile". Les va-
riables tant toutes globales, elles sont alors manipulables depuis nimporte
quel traitement.
Attention!

Mais ce type de programmation est souvent la cause dcrasement de variables


et deffets de bord indsirables.
Il est donc prfrable de dclarer un nombre limit de variables globales et en-
suite de dclarer des variables locales.
Si vous souhaitez partager des valeurs entre 2 fentres, il est vivement conseill
dutiliser la mthode du "passage de paramtres", mthode que nous verrons un
peu plus tard.

Instructions de base du WLangage


Le WLangage est un L5G riche, compos de:
Fonctions WLangage.
Proprits WLangage.
Mots-cls WLangage.
Instructions WLangage.
Au fur et mesure de votre formation, vous dcouvrirez les instructions ncessaires.
Dans cette leon, nous allons simplement vous prsenter les instructions de base, permettant de
raliser des conditions et des boucles ou simplement de saisir des commentaires.
Exemple pratique
Pour comprendre un concept, rien ne vaut une manipulation. Le projet "WD Bases Program-
mation" contient des exemples pour chaque concept prsent.
1.Lancez WINDEV 21 si ce nest dj fait.
2.Fermez si ncessaire le projet en cours: sous le volet "Accueil", dans le groupe "Gnral",
droulez "Fermer" et slectionnez loption "Fermer le projet".
3.Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez
le projet "Bases de la programmation".
Astuce: il est galement possible sous le volet "Accueil", dans le groupe "Aide en ligne", de
drouler "Guide dAuto-formation" puis de slectionner loption "Bases de la programmation".

Instructions conditionnelles
Le WLangage permet de grer des instructions conditionnelles du type:
SI, SINON, FIN pour effectuer un test sur une condition.
SELON, CAS, FIN pour excuter une ou plusieurs actions selon les diffrents rsultats dun
test sur une condition.

64 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quelques exemples
SI SAI_Maximum > Hasard(1, 999) ALORS
Info(Bravo, vous avez gagn!)
SINON
Info(Dommage, vous avez perdu!)
FIN

SELON jour
CAS Lundi
// Premier jour de la semaine
CAS Mercredi
// Troisime jour de la semaine
CAS Vendredi
// Cinquime jour de la semaine
CAS Samedi, Dimanche
// Cest le week-end
AUTRES CAS
// Cest un autre jour
FIN

Exemple pratique
Aprs avoir prsent les principales instructions conditionnelles, rien ne vaut un petit test rel!
Ouvrez la fentre "FEN_Code.wdw": dans le volet "Explorateur de projet", dans le dossier
"Fentres", double-cliquez sur le nom de la fentre. Cette fentre prsente diffrents
exemples.

Pour rechercher rapidement une fentre dans le projet en cours, utilisez la com-
binaison de touches [CTRL] + [E]. Une fentre saffiche permettant de raliser
Astuce

une recherche sur toutes les fentres contenant la suite de lettres saisies dans
le champ de recherche. Il suffit de slectionner la fentre voulue et de valider
pour que cette fentre souvre sous lditeur.

Lancez le test de cette fentre ( parmi les boutons daccs rapide).


1.Cliquez sur longlet "SI / SELON".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 65
2.Testez les diffrents exemples. Le code excut est affich dans la fentre.
3.Fermez la fentre et revenez sous lditeur.

Instructions de boucle
Le WLangage propose plusieurs possibilits pour grer des boucles:
POUR, FIN pour un nombre ditrations dtermin.
TANTQUE, FIN pour un nombre ditrations indtermin et dont la condition de sortie de la
boucle est teste au dbut de la boucle.
BOUCLE, FIN pour un nombre ditrations indtermin et dont la condition de sortie de la
boucle est teste dans la boucle. Linstruction SORTIR permet de sortir de cette boucle.

Le WLangage propose galement des boucles de type POUR TOUT, FIN permet-
Notes

tant de parcourir les lments dun champ, les chanes de caractres, les enre-
gistrements dun fichier de donnes, ... Ces boucles avances seront tudies
dans la suite de ce cours dauto-formation.

Quelques exemples

POUR i = 1 A 100 // Il nest pas ncessaire de dclarer i


Cpt ++ // Equivalent Cpt=Cpt+1
FIN

i est un entier = 0
TANTQUE i < SAI_Maximum
i ++ // Equivalent i=i+1
FIN

i est un entier = 0
BOUCLE
i ++ // Equivalent i=i+1
SI i > SAI_Maximum ALORS SORTIR
FIN

Exemple pratique
Aprs avoir prsent les principales instructions de boucle, vrifions le fonctionnement en excu-
tion.
Ouvrez la fentre "FEN_Code.wdw": dans le volet "Explorateur de projet", dans le dossier
"Fentres", double-cliquez sur le nom de la fentre. Cette fentre prsente diffrents
exemples.

66 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lancez le test de cette fentre ( parmi les boutons daccs rapide).
1.Cliquez sur longlet "Boucle".

2.Testez les diffrents exemples. Le code excut est affich dans la fentre.
3.Fermez la fentre et revenez sous lditeur.

Commentaires
Pour saisir des commentaires dans le code, il suffit de commencer le code par // (deux carac-
tres "/").
Exemple:
// Ceci est une ligne de commentaire

Vous pouvez mettre en commentaires plusieurs lignes de code en slectionnant


au clavier (ou la souris) les lignes mettre en commentaires puis en appuyant
Astuce

sur les touches [CTRL] / (du pav numrique).


Vous ralisez lopration inverse (enlever les commentaires) en slectionnant au
clavier (ou la souris) les lignes enlever des commentaires puis en appuyant
sur les touches [CTRL] [SHIFT] / (du pav numrique).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 67
Oprateurs de base du WLangage
Le WLangage dispose de plusieurs types doprateurs:
les oprateurs logiques (ET, OU, PAS, ...),
les oprateurs arithmtiques qui permettent dadditionner, de soustraire, ...
les oprateurs de comparaison qui permettent de comparer des valeurs. Nous en avons vu
quelques-uns dans le paragraphe prcdent (>, <, =, ...),
les oprateurs binaires qui permettent deffectuer des oprations sur des valeurs binaires,
les oprateurs daffectation et dchange (=, <=>),
les oprateurs dindirections qui permettent de construire le nom dun champ partir dune
expression.
les oprateurs sur les chanes de caractres (que nous verrons dans le paragraphe "Traitements
des chanes", page 73).
...
Nous allons ici dtailler lutilisation des oprateurs logiques, des oprateurs de comparaison et
des oprateurs dindirection. Nous verrons les autres types doprateurs au fil de nos besoins
dans ce cours. Pour plus de dtails sur un type doprateur, consultez laide en ligne (mot-cl:
"Oprateurs").

Les oprateurs logiques


Le WLangage dispose de 5 oprateurs logiques qui permettent deffectuer des oprations lo-
giques et de construire des conditions:
ET et _ET_ qui correspondent la multiplication logique.
OU et _OU_ qui correspondent laddition logique.
PAS qui correspond la ngation logique.
Exemple pratique
Rien ne vaut un bon exemple pour comprendre les subtilits de ces oprateurs.
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Oprateur".
Lancez le test de cette fentre ( parmi les boutons daccs rapide) et testez les opra-
teurs logiques.

68 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les oprateurs de comparaison
Le WLangage possde de nombreux oprateurs de comparaison qui permettent de raliser de
nombreux traitements:
oprateurs dgalit: galit (=), galit souple (~=) ou galit trs souple (~~).
oprateurs de comparaison: diffrent (<>), infrieur et suprieur (<, <=, >, >=), ou commence
par ([=, [=~, [=~~).
Exemple pratique
Une page dexemple est disponible pour tester quelques cas dutilisation des diffrents opra-
teurs de comparaison.
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Oprateur".
Lancez le test de cette fentre ( parmi les boutons daccs rapide) et testez les opra-
teurs de comparaison.

Les oprateurs dindirection


Le mcanisme "dindirection" permet de construire le nom dun champ, dune rubrique de fichier
ou le nom dune variable partir dune expression de type chane.
Ceci permet par exemple de crer des traitements gnriques indpendants des noms des
champs, des variables, des rubriques de fichier...
Lindirection est ralise laide des oprateurs { }.
Pour optimiser la vitesse de vos applications, il est conseill de prciser lors de lutilisation de la
syntaxe dindirection le type de llment manipul.
Ainsi, si vous manipulez un champ, le type correspondant sera IndChamp.
Voici quelques exemples dindirection:
Exemple dindirections simples:

{"NOM",indChamp} = NomCli
// est quivalent NOM=NomCli
{"NOM",indChamp} = {"CL.NOMCLI"}
// est quivalent NOM=CL.NOMCLI
{"FENCLI.NOM",indChamp} = NomCli
// est quivalent FENCLI.NOM=NomCli
{"FENCLI"+".NOM",indChamp} = NomCli
// est quivalent FENCLI.NOM=NomCli

Exemple dindirection avec une procdure:


NomChamp est une chane
NomChamp = "SAISIE1" //SAISIE1 est le nom du champ
// Appel dune procdure rendant un champ invisible
INVISIBLE(NomChamp)

PROCEDURE INVISIBLE(NChamp)
{NChamp,indChamp}..Visible = Faux

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 69
Exemple Pour plus de dtails sur lutilisation des indirections, consultez lexemple "Les
indirections" (exemple unitaire), livr en standard avec WINDEV. Cet exemple est
accessible depuis la fentre de bienvenue de WINDEV (CTRL + >).

Procdures et fonctions

Dfinition
Comme nous lavons vu dans la leon prcdente, lorsquun traitement est appel plusieurs fois
dans un projet ou dans une fentre, il est souvent intressant de crer une procdure contenant
ce traitement. Il suffit alors dappeler la procdure chaque fois que cela est ncessaire.
Ct programmation, il existe les procdures et les fonctions:
Les fonctions renvoient un rsultat.
Les procdures servent excuter un traitement spcifique.
WINDEV permet de grer simplement les deux types de traitements, de manire identique: en
WLangage, il ny a pas de diffrence entre une procdure et une fonction. Cest pourquoi dans la
suite de ce cours, nous utiliserons uniquement le terme "procdure".
Vous avez la possibilit de crer des procdures "locales" et des procdures "globales".

Procdure locale
Une procdure "locale" est lie une fentre et uniquement cette fentre.
Une procdure, lorsquelle est locale, peut tre utilise uniquement dans les traitements de la
fentre et des champs de la fentre dans laquelle elle a t dclare. Elle fait partie de la fentre.

Procdure globale et collection de procdures


Les procdures "globales" sont contenues dans des "collections de procdures". Chaque "collec-
tion de procdures" est un fichier qui contient toutes les procdures globales qui lui sont asso-
cies. Ce fichier possde lextension ".WDG". Par exemple, une collection permet de regrouper les
procdures selon un thme: CalculsTVA, CalculsFraisDePorts, ...
Vous pouvez crer autant de collections de procdures que vous le dsirez dans un projet.
Une collection de procdures permet de:
partager des procdures globales entre plusieurs dveloppeurs, pour un mme projet.
partager des procdures globales entre plusieurs projets. En effet, une mme collection de
procdures peut tre utilise dans plusieurs projets.

70 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour crer une collection de procdures:
1.Slectionnez le volet "Explorateur de projet".
2.Slectionnez "Procdures".
3.Dans le menu contextuel (clic droit), slectionnez loption "Nouvelle collection de proc-
dures".

4.Dans la fentre qui apparat, indiquez le nom de la collection de procdures et validez.


5.Les traitements associs la collection de procdures apparaissent sous lditeur de code.
Il est ensuite possible de crer des procdures globales (cette cration est dtaille dans la suite
de cette leon).

Comment choisir si une procdure est globale ou locale?


Pour choisir si une procdure doit tre globale ou locale, posez-vous la question suivante: "La
procdure va-t-elle tre utilise uniquement dans cette fentre, ou peut-elle tre appele depuis
une autre fentre?"
Si la procdure est appele "uniquement depuis cette fentre", la procdure peut tre "lo-
cale".
Si la procdure peut tre appele "depuis plusieurs fentres", la procdure doit tre "glo-
bale".

A propos du passage des paramtres


Dans le projet "WD Mes Premires fentres", vous avez pu voir quune procdure pouvait grer
des paramtres. Les paramtres peuvent tre obligatoires ou optionnels.
Les paramtres "obligatoires" sont toujours dfinis avant les paramtres "optionnels". La dclara-
tion dun paramtre "optionnel" est effectue en affectant une valeur par dfaut lors de la dcla-
ration du paramtre. Par exemple:
PROCEDURE MaProcdure (Param1, ParamOption = "Valeur par dfaut")

Une fentre peut galement renvoyer une valeur au traitement qui la appele. Pour plus de d-
tails, consultez laide en ligne sur la proprit ..ValeurRenvoye.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 71
Appel dune procdure
Pour appeler une procdure dans un traitement, il suffit dcrire son nom dans lditeur de code
et si ncessaire dindiquer des paramtres.
WINDEV sait bien videmment grer les appels de procdures imbriques.

Dans lditeur de code, lorsque vous tes positionn sur un nom de procdure,
Astuce

lappui sur la touche de fonction [F2] permet de visualiser le code de cette pro-
cdure. Lappui simultan sur les touches [CTRL]+[F2] permet de revenir dans le
code prcdent sur le nom de la procdure.

Cration dune procdure


Une procdure peut tre cre directement depuis lditeur principal de WINDEV. Il suffit dutiliser
le volet "Explorateur de projet".
Pour crer une procdure locale:
1.Dans le volet "Explorateur de projet", slectionnez le nom de la fentre associe la proc-
dure locale.
2.Cliquez sur la flche gauche pour afficher les diffrents lments.
3.Slectionnez "Procdures locales".
4.Dans le menu contextuel de "Procdures locales", slectionnez loption "Nouvelle procdure
locale".
5.Dans la fentre qui apparat, indiquez le nom de la procdure et validez.
6.La procdure apparat sous lditeur de code. Saisissez le code de la procdure.
Pour crer une procdure globale:
1.Slectionnez le volet "Explorateur de projet".
2.Slectionnez "Procdures".
3.Crez si ncessaire la collection de procdures dans laquelle la procdure globale doit tre
cre. Si cette collection existe, slectionnez-la.
4.Dans le menu contextuel, slectionnez loption "Nouvelle procdure globale".
5.Dans la fentre qui apparat, indiquez le nom de la procdure et validez.
6.La procdure apparat sous lditeur de code. Saisissez le code de la procdure.
Rappel: Il est galement possible de crer directement une procdure locale (ou globale) partir
du code slectionn dans lditeur de code (option "Nouveau .. Crer une procdure locale (ou
globale) contenant le code slectionn" du menu contextuel). Cest ce que nous avons fait dans la
leon prcdente.

Quand utiliser les procdures?


Lorsquun traitement est utilis plusieurs fois dans une mme fentre, il est
conseill dutiliser une procdure locale la fentre qui contiendra ce traite-
Astuce

ment.
Lorsquun traitement est utilis plusieurs fois dans un ensemble de fentres,
il est conseill dutiliser une procdure globale au projet qui contiendra ce trai-
tement.

72 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
Aprs avoir vu la thorie, un peu de pratique!
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Code" (double-cliquez sur
son nom dans lexplorateur de projet). Cette fentre prsente diffrents exemples.
Lancez le test de cette fentre ( parmi les boutons daccs rapide).
1.Cliquez sur longlet "Fonction" pour tester le fonctionnement dune fonction.
2.Cliquez sur longlet "Procdure" pour tester le fonctionnement dune procdure.
3.Fermez la fentre.
Consultez la liste des diffrentes procdures locales (accessible depuis le volet "Explorateur
de projet"). En double-cliquant sur le nom de la procdure, le code de cette procdure est affi-
ch dans lditeur de code.

Un exercice dapplication? A vous de jouer!


Pour mettre en application les diffrentes fonctionnalits de cette partie, nous vous proposons un
petit exercice:
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Code": double-cliquez sur
son nom dans lexplorateur de projet.
Afficher longlet "A vous de jouer".
Dans le bouton "Votre code", crivez une procdure qui permet dafficher tous les chiffres
pairs de 10 1 (compte rebours) dans le champ de saisie SAI_VotreRsultat.
Testez la fentre pour tester votre code.
Correction: Le bouton "Code corrig" contient la solution.

Traitements des chanes


Parmi les fonctionnalits de base dun langage de programmation, la manipulation des chanes
de caractres est une des fonctionnalits les plus importantes.
Le WLangage offre une palette impressionnante de possibilits pour manipuler les chanes de
caractres: fonctions WLangage, oprateurs dextraction, de concatnation, ...
Nous prsentons ici les fonctions les plus courantes pour manipuler les chanes de caractres.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Chane de caractres").

Exemple pratique

Ouvrez si ncessaire le projet "WD Bases Programmation.WDP":


1.Fermez si ncessaire le projet en cours.
2.Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez
le projet "Bases de la programmation".
Ouvrez la fentre "FEN_Chane.WDW": double-cliquez sur son nom dans lexplorateur de
projet. Cette fentre illustre les diffrentes manipulations que nous expliquerons dans cette
leon.
Testez la fentre ( parmi les boutons daccs rapide).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 73
Principales manipulations sur une chane de caractres
Initialisation
Un champ de type texte (par exemple un champ Libell ou un champ de saisie) peut tre initialis
grce une des mthodes suivantes:
dans longlet "Contenu" de la fentre de description du champ:

par programmation en affectant directement la chane au nom du champ:


SAI_Texte = WINDEV est un outil formidable
par programmation en utilisant une variable de type chane:
ch est une chane
ch = WINDEV est un outil formidable
SAI_Texte = ch

Concatnation
Une chane peut tre construite partir de plusieurs autres chanes. On parle alors de concatna-
tion de chanes. Pour concatner deux chanes, il suffit dutiliser loprateur "+".
// La fonction Info permet dafficher le rsultat lcran
Info(SAI_Text1 + SAI_Text2)

Extraction de parties dune chane


Lextraction dune partie dune chane peut tre ralise avec:
les oprateurs [[ et ]] (attention il ne faut pas despace entre les crochets [[ et ]]).
Info(SAI_Texte[[1 A 6]]) // Affiche WINDEV

la fonction ExtraitChane, qui extrait une sous-chane depuis une chane:


Info(ExtraitChane(SAI_Texte,1, )) // Affiche WINDEV

la fonction Milieu, qui extrait un morceau de chane depuis une chane:


Info(Milieu(SAI_Texte,4,2)) // Affiche DE

74 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
la fonction Gauche, qui retourne la partie gauche dune chane:
Info(Gauche(SAI_Texte,6)) // Affiche WINDEV

la fonction Droite, qui retourne la partie droite dune chane:


Info(Droite(SAI_Texte,3)) // Affiche ble

Manipulations diverses
La taille dune chane peut tre connue avec la fonction Taille:
Info(Taille(SAI_Text2)) // Affiche 35

Une chane peut tre transforme en majuscules avec la fonction Majuscule ou en minuscules
avec la fonction Minuscule:
Info(Majuscule(SAI_Text1))
Info(Minuscule(SAI_Text2))

Une chane peut tre recherche dans une autre avec la fonction Position:
ChaneARechercher est une chane = WINDEV
Pos est un entier
Pos = Position(SAI_Texte, ChaneARechercher)
SI Pos = 0 ALORS
InfoConstruit(%1 non trouv dans le texte, ChaneARechercher)
SINON
InfoConstruit(%1 trouv dans le texte, ChaneARechercher)
FIN

Vous pouvez galement effectuer une recherche de position dune chane de caractres dans
une autre sans tenir compte de la casse. Il suffit dindiquer la fonction Position la constante
SansCasse:
Pos = Position(SAI_Texte, ChaneARechercher, 1, SansCasse)

Pour connatre le nombre doccurrences dune chane de caractres donne dans une autre
chane de caractres, utilisez la fonction ChaneOccurrence:
NbOccurrences est un entier
NbOccurrences = ChaneOccurrence(anastasia, a) // Renvoie 4
Il est galement possible de rechercher une chane et de la remplacer en une seule opration
grce la fonction Remplace:
Remplace(SAI_Texte, WINDEV, WINDEV Mobile)

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 75
Pour construire une chane partir dune chane et du rsultat dune fonction,
il est conseill dutiliser la fonction InfoConstruit. Cette fonction permet de
construire le texte affich en fonction de paramtres (%1, %2, ...) :
InfoConstruit(%1 non trouv dans le texte, ...
ChaneARechercher)
Bien entendu, il est possible dutiliser la concatnation simple:
Astuce

Info(ChaneARechercher + non trouv dans le texte)


Lutilisation de la fonction InfoConstruit prsente plusieurs avantages:
la lisibilit du code: une chane plus simple lire
la traduction: une chane peut tre traduite dans son intgralit. Il est possible
dinverser les mots et les paramtres. Le traducteur na quune obligation:
remettre les %1, %2, %3.
Selon le mme principe, le WLangage propose les fonctions ChaneConstruit,
ErreurConstruit, ...

Un exercice dapplication ? A vous de jouer !


Pour mettre en application les diffrentes fonctionnalits de cette partie, nous vous proposons un
petit exercice:
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Chane" si ncessaire:
double-cliquez sur son nom dans lexplorateur de projet.
Dans la zone "A vous de jouer", un exercice vous est propos:
Dans le bouton "Votre code", crivez le code permettant dafficher le 5me mot du texte
manipul en majuscules ainsi que la taille de ce mot.
Testez la fentre pour tester votre code.
Correction: Le bouton "Code corrig" contient la solution.

76 Partie 1 : A la dcouverte de WINDEV


Traitements des numriques
Les calculs sur les numriques peuvent tre effectus partir des champs de saisie de type
numrique ou directement en manipulant les variables types (entier, rel, numrique, mon-
taire,...).

Exemple pratique

Ouvrez si ncessaire le projet "WD Bases Programmation.WDP":


1.Fermez si ncessaire le projet en cours.
2.Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez
le projet "Bases de la programmation".
Ouvrez la fentre "FEN_Numrique.WDW": double-cliquez sur le nom de la fentre dans le
volet "Explorateur de projet".
Testez la fentre. Cette fentre prsente un aperu des manipulations sur les "numriques".
Principales manipulations sur les numriques
Initialisation
Un champ de saisie de type numrique peut tre initialis grce une des mthodes suivantes:
longlet "Contenu" de la fentre de description du champ.
par programmation en affectant directement la valeur numrique au nom du champ:
SAI_ValeurInitiale = 3.14
par programmation en utilisant une variable de type numrique:
ent1 est un entier
ent1 = 1234
SAI_ValeurInitiale = ent1

Il est possible de concatner une chane et un numrique avec loprateur "+":


Info(Le champ SAI_ValeurInitiale contient la valeur : + ...
SAI_ValeurInitiale)

Si vous excutez le code suivant:


Info(Un calcul : + 1 + 2)
Astuce

La bote de dialogue affichera "Un calcul : 12".


Si vous souhaitez afficher le rsultat du calcul, il faut utiliser le code suivant:
Info(Un calcul : + (1 + 2))
La bote de dialogue affichera "Un calcul : 3".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 77
Manipulations diverses
Quelques exemples de manipulations de numriques raliss en WLangage:
La partie entire dun nombre est connue par la fonction PartieEntire, la partie dcimale
par la fonction PartieDcimale:
InfoConstruit(Partie entire de %1 : %2 + RC + ...
Partie dcimale de %1 : %3, SAI_RelSign, ...
PartieEntire(SAI_RelSign), ...
PartieDcimale(SAI_RelSign))

La valeur absolue dun nombre est retourne par la fonction Abs:


InfoConstruit(Valeur absolue de %1 : %2, ...
SAI_RelSign, Abs(SAI_RelSign))

La valeur arrondie dun nombre est retourne par la fonction Arrondi:


InfoConstruit(Arrondi de %1 : %2, ...
SAI_RelSign, Arrondi(SAI_RelSign, 1))

La fonction Racine permet de calculer la racine Nime dun nombre:


InfoConstruit(Racine carre de %1 : %2, ...
SAI_Reference_Racine, Racine(SAI_Reference_Racine, 2))

La fonction Puissance permet dlever un nombre la puissance N:


InfoConstruit(Puissance 2 de %1 : %2, ...
SAI_Reference_Puissance, Puissance(SAI_Reference_Puissance, 2))

Remarque: le type des champs de saisie numriques


Lorsquun champ est dfini comme numrique, on ne connat pas a priori son type (entier, rel,
rel double,...). Son type est dfini automatiquement en fonction du masque slectionn pour le
champ.
Pour forcer le type dun champ, il suffit dutiliser une variable type. Par exemple:
Val1 est un entier
Val1 = 123456789
SAI_NUM = Val1 // Affectation du champ
Val1 = SAI_NUM // Rcupration du champ

Un exercice dapplication ? A vous de jouer !


Pour mettre en application les diffrentes fonctionnalits de cette partie, nous vous proposons un
petit exercice:
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Numrique" si ncessaire:
double-cliquez sur son nom dans lexplorateur de projet.
Dans la zone "A vous de jouer", un exercice vous est propos:
Dans le bouton "Votre code", crivez le code qui permet dafficher le rsultat de la soustrac-
tion des champs "Montant 1" et "Montant 2" arrondi 1 dcimale.
Testez la fentre pour tester votre code.
Correction: Le bouton "Code corrig" contient la solution.

78 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Traitement des montaires

Exemple pratique

Ouvrez si ncessaire le projet "WD Bases Programmation.WDP":


1.Fermez si ncessaire le projet en cours.
2.Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez
le projet "Bases de la programmation".
Ouvrez la fentre "FEN_RelMontaire.wdw" (double-cliquez sur son nom dans le volet
"Explorateur de projet").
Testez la fentre. Cette fentre permet de tester les diffrents codes prsents dans ce
paragraphe.

Dtails
Les rels permettent de manipuler par programmation des nombres dcimaux.
Les montaires permettent de grer galement ces nombres dcimaux mais de manire plus
prcise.
En effet, avec les rels, des arrondis sont effectus par le systme dexploitation et ces arrondis
peuvent induire des erreurs de calcul.
Par exemple:
// Avec une variable de type Rel Double, le calcul est faux
MonRel est un rel
MonRel = 18.6 - 8.6 - 10
Erreur(18.6 - 8.6 - 10 = + MonRel)

Pour tester ce code, cliquez sur le bouton "Soustraction de rels" dans la fentre de test.
Avec des variables de type montaires, le calcul est effectu par le WLangage.
Le WLangage garantit 23 chiffres significatifs ce qui permet davoir en toutes circonstances des
calculs corrects.
Avec le code suivant, le calcul est correct:
// Avec une variable de type Montaire, le calcul est correct
monMontaire est un montaire
monMontaire = 18.6 - 8.6 - 10
Info (18.6 - 8.6-10 = + monMontaire)

Pour tester ce code, cliquez sur le bouton "Soustraction de montaires" dans la fentre de
test.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 79
Pour effectuer des divisions sur des montaires, il est conseill de passer par des variables inter-
mdiaires de type "Montaire".

Monetaire1, Monetaire2, Rsultat sont des montaires


// Attribue un nombre aux deux variables montaires
Monetaire1 = 12 345 678 901 234 567,123456
Monetaire2 = 12 345 678 901 234 567,123456
// Division de Montaire1 par Montaire2
Rsultat = Monetaire1/Monetaire2
// Affiche le rsultat de la division
Info(12 345 678 901 234 567,123456, divis par ,...
12 345 678 901 234 567,123456, = +Rsultat)

Pour tester ce code, cliquez sur le bouton "Division dun montaire" dans la fentre de test.

Pour faire des calculs avancs, le WLangage met galement votre disposition
le type Numrique. Par dfaut, le type Numrique correspond 32 chiffres pour
Remarque

la partie entire et 6 chiffres pour la partie dcimale (comme le type montaire).


Mais lavantage du type numrique est de pouvoir configurer le nombre de
chiffres utiliser pour la partie entire et le nombre de chiffres utiliser pour la
partie dcimale.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Numrique").

Mlange de chanes et de numriques

WINDEV est trs souple dans les affectations de variables. Ainsi il est possible daffecter une
chane de chiffres dans une variable numrique et inversement. Par exemple:
i est un entier
c est une chane
i = 123
c = i // la variable c contient la chane 123
c = 456
i = c // la variable i contient la valeur 456

Si vous voulez transformer un nombre en une chane de caractres en respectant un format bien
prcis, il suffit dutiliser la fonction NumriqueVersChane. Par exemple:
NumriqueVersChane(1234.567,012,3f) // renvoie 00001234,567

80 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
A chaque fois que vous devez utiliser la fonction NumriqueVersChane et que vous ne savez pas
exactement quels paramtres utiliser, utilisez lassistant de code propos par WINDEV: cet assis-
tant vous donnera la syntaxe utiliser en fonction du rsultat souhait.

Sous lditeur de code, lors de la saisie du nom dune fonction suivi de la paren-
thse ouvrante, plusieurs informations peuvent tre affiches dans une liste:
Notes

le nom de lassistant correspondant la fonction. Si vous slectionnez


cette option, un assistant se lance. Grce des questions simples, cet as-
sistant crit automatiquement la syntaxe voulue.
le nom dun exemple utilisant cette fonction. Si vous slectionnez cette op-
tion, lexemple est automatiquement ouvert sous lditeur.

La fonction "inverse" de NumriqueVersChane est la fonction Val. Cette fonction permet de


convertir une chane en un numrique.

Traitements des dates et des heures


Pour grer simplement les dates et les heures dans vos applications, WINDEV met votre dispo-
sition:
un champ de saisie de type Date, Heure ou Dure. Avec ce champ, plus aucun problme pour
saisir une date ou une heure valide.
un champ libell de type Date, Heure ou Dure. Avec ce champ, plus aucun problme pour affi-
cher une date ou une heure au bon format.
des variables de type Date, Heure, DateHeure et Dure. Ces variables simplifient la manipula-
tion des dates et des heures par programmation et permettent de multiples calculs.

Les dates

Exemple pratique

Ouvrez si ncessaire le projet "WD Bases Programmation.WDP":


1.Fermez si ncessaire le projet en cours.
2.Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez
le projet "Bases de la programmation".
Ouvrez la fentre "FEN_Date.WDW". Cette fentre illustre les explications donnes dans la
suite de cette leon.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 81
Masque de saisie et valeur retourne
Les dates (comme les heures) sont des chanes qui ont un format prdfini.
Dans un champ de saisie de type "Date" (ou de type "Heure"), il faut distinguer:
Le masque de saisie: cest le format avec lequel la date et lheure seront saisies.
Le masque daffichage: cest le format avec lequel la date et lheure seront affiches.
La valeur retourne (ou mmorise): cest la valeur retourne par le champ vers le programme.
Ces informations sont saisies dans la fentre de description du champ de saisie.
Dans la fentre "FEN_Date", affichez la fentre de description du champ "Saisissez une date"
(option "Description" du menu contextuel du champ). Affichez longlet "Gnral" de cette
fentre. Les informations affiches sont les suivantes:

Par exemple, pour un champ de type "Date":


le masque de saisie sera "JJ/MM/AAAA". La date saisie par lutilisateur sera de la forme
"01/11/2013".
le masque daffichage sera "JJJJ JJ MMMM AAAA". La date affiche dans le champ sera de la
forme "Jeudi 18 Juillet 2013".
la valeur retourne sera par dfaut "AAAAMMJJ" (Exemple: la valeur saisie sous la forme
"23/04/2013" retournera au programme "20130423").
Remarque

Il existe la possibilit de choisir un masque de saisie de type "Date systme".


Dans ce cas, le format affich sera celui dfini dans les "Paramtres rgionaux
du panneau de configuration de Windows" de la machine en cours dexcution.

Pour comprendre limportance et les relations entre le masque de saisie et la valeur retourne,
regardons les exemples suivants:
Si le masque de saisie et daffichage dun champ date est "JJ/MM/AA" et la valeur
retourne est "AAAAMMJJ":
SAI_DateJ= 20131225 // Affiche la date sous la forme 25/12/13
SAI_DateJ = 131225 // Affiche la date sous une forme incorrecte
La date affiche sera incorrecte.
Si le masque de saisie et daffichage dun champ date est "MM/JJ/AAAA" et la valeur
retourne est "AAMMJJ":
SAI_DateJ = 131225 // Affiche la date sous la forme 12/25/2013
SAI_DateJ = 20131225 // Affiche la date sous une forme incorrecte
La date affiche est incorrecte.
Il faut donc faire attention au format de la valeur retourne dans un champ de type date ou
heure.

82 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les fonctions du WLangage qui manipulent:
des dates utilisent le format "AAAAMMJJ".
des heures utilisent le format "HHMMSSCC" (certaines utilisent le format "HHMMSSCCC",
pour la gestion des millisecondes).

Rappel: Par dfaut, le format (masque de saisie) du champ correspond au


masque date dfini dans longlet "Langues" de la fentre de description du projet
(sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description"). Ainsi, le
Notes

mme masque est utilis automatiquement dans tous les champs de type date
de lapplication.
Cette fonctionnalit est galement trs utile dans les applications multilingues.

Nous allons maintenant voir comment grer les dates par programmation.
1.Fermez si ncessaire la fentre de description du champ.
2.Testez la fentre "FEN_Date" ( parmi les boutons daccs rapide).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 83
Quel jour sommes-nous?
Pour connatre la date du jour, il suffit dutiliser la fonction DateDuJour (ou DateSys). La fonction
DateDuJour retourne la date systme de votre ordinateur sous la forme dune chane de carac-
tres au format "AAAAMMJJ". Exemple:
Info(Nous sommes le + DateDuJour())

Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "DateDuJour".
Comme vous pouvez le constater, la date affiche est au format "AAAAMMJJ".
Pour afficher la date sous un format plus explicite, il suffit dutiliser la fonction DateVersChane:
Info(Nous sommes le + DateVersChane(DateDuJour(),...
maskDateSystme))
La fonction DateVersChane transforme une chane au format "AAAAMMJJ" en chane au format
choisi. La constante MaskDateSystme permet dutiliser le format de date dfini dans longlet
"Langues" des caractristiques du projet.
Rappel: Pour afficher les caractristiques du projet, sous le volet "Projet", dans le groupe "Projet",
cliquez sur "Description".
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "DateVersChane".
Quel jour sommes-nous, mais avec le jour et le mois en lettres?
Pour afficher la date en toutes lettres, il faut utiliser la fonction DateVersChane en utilisant un
format de date spcifique:
Info(Nous sommes le + DateVersChane(DateDuJour(),...
JJJJ JJ MMMM AAAA))

Dans ce code:
la chane "JJJJ JJ" permet dobtenir le jour en toutes lettres. Par exemple: Mardi 17.
la chane "MMMM" permet dobtenir le mois en toutes lettres. Par exemple: Septembre.
la chane "AAAA" permet dobtenir lanne. Par exemple: 2013.
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "En lettres".
Quel est le nombre de jours entre 2 dates?
Vous voulez savoir combien de jours se sont couls entre deux dates? Cest trs simple: il suffit
dutiliser la fonction DateDiffrence:
NombreJour est un entier
NombreJour = DateDiffrence(20100101, DateDuJour())
InfoConstruit(...
Le nombre de jours entre le %1 et le %2 est: %3, ...
DateVersChane(20100101, maskDateSystme),...
DateVersChane(DateDuJour(), maskDateSystme), NombreJour)

Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "DateDiffrence".

84 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Il est galement possible dobtenir la dure entre la date du jour et une date
spcifique sous forme dun texte clair (il y a deux jours, dans 3 semaines, ...). Il
Remarque suffit dutiliser:
soit le masque daffichage de type "Dure relative".
soit la fonction DateVersChane avec la constante maskDateDureRelative.
Par exemple:
// A la date du 22/01/2013
Res = DateVersChane("20130101", maskDateDureRelative)
// Renvoie : il y a 3 semaines

Quel est le jour de la semaine dune date donne?


Toujours aussi simplement, vous pouvez connatre le jour de nimporte quelle date avec la fonc-
tion DateVersJourEnLettre:
J est une chane
J = DateVersJourEnLettre(17890714)
Info(Le 14 juillet 1789 tait un + J)

Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton
"DateVersJourEnLettre".

Petit exercice pratique


Maintenant que vous matrisez les dates, une colle: que fait le code suivant?
DateVersChane(DateDuJour(),JJJJ JJ MMM AAAA)
Rponse : Affiche la date littrale (le jour et la date en clair).

Manipulation des variables de type Date


Le WLangage propose des types de variables spcifiques pour les valeurs de type Date, DateHeure
ou de Dure.
Ces variables sont assimilables des "chanes". Chacune contient une valeur selon le tableau
suivant:
Type Format par dfaut
Date AAAAMMJJ
DateHeure AAAAMMJJHHMMSSCC
Dure AAAAMMJJHHMMSSCC

Le type "Date" permet de grer des dates comprises entre le 01/01/0001 et le 31/12/9999 (de
quoi tre tranquille pour un bon moment!).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 85
Plus srieusement, pour manipuler la valeur de ces variables, vous pouvez utiliser les syntaxes
suivantes:
MaDate est une Date = 20121021
Info(DateVersChane(MaDate)) //Affiche 21/10/2012
MaDate..Anne = MaDate..Anne + 1
MaDate..Mois = MaDate..Mois + 1
MaDate..Jour = MaDate..Jour + 1
Info(DateVersChane(MaDate)) //Affiche 22/11/2013

Dans ce code, Anne, Mois et Jour sont des proprits WLangage.


Dans la fentre "FEN_Date", le bouton "Exemple de code" permet de calculer la date du
prochain 1er Janvier en utilisant une variable de type Date.
Le code utilis est le suivant:
MaDate est une Date
// MaDate est automatiquement initialise la date du jour

// Calcul de la date du prochain 1er Janvier


NouvelleAnne est une Date
NouvelleAnne..Mois = 12
NouvelleAnne..Jour = 31

// Calcul de la dure entre la date du jour


// et le prochain rveillon
MaDure est une Dure = NouvelleAnne - MaDate

Info(ChaneConstruit(...
Il reste %1 jours avant le prochain rveillon du jour de lan,...
le %2., MaDure..EnJours, DateVersChane(NouvelleAnne)))

Un exercice dapplication ? A vous de jouer !


Pour mettre en application les diffrentes manipulations sur les dates, nous vous proposons un
petit exercice:
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Date" si ncessaire
(double-cliquez sur son nom dans lexplorateur de projet).
Dans la zone "A vous de jouer", un exercice vous est propos:
Dans le bouton "Votre code", crivez le code qui permet de calculer la date quil sera dans
180 jours et affichez cette date en lettres.
Testez la fentre pour tester votre code.
Correction: Le bouton "Code corrig" contient la solution.

86 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les heures

Exemple pratique

Ouvrez si ncessaire le projet "WD Bases Programmation.WDP".


1.Fermez si ncessaire le projet en cours.
2.Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez
le projet "Bases de la programmation".
Ouvrez la fentre "FEN_Heure.WDW". Cette fentre illustre les explications donnes dans la
suite de cette leon.
Testez cette fentre.

Quelle heure est-il?


Pour connatre lheure, il suffit dutiliser la fonction Maintenant (ou HeureSys). La fonction
Maintenantretourne lheure actuelle de votre systme sous la forme dune chane de caractres
au format "HHMMSSCC":
Info(Il est + Maintenant())

Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Maintenant".
Vous souhaitez afficher lheure au format standard "HH:MM:SS:CC"? Le code devient alors:
Info(Il est + HeureVersChane(Maintenant()))

La fonction HeureVersChane transforme une heure au format "HHMMSSCC" en une chane au


format "HH:MM:SS:CC".
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "HeureVersChane".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 87
Pour ne pas afficher les centimes de seconde, le code est:
Info("Il est " + HeureVersChane(Maintenant(), "HH:MM:SS"))

Il suffit de prciser le format daffichage de lheure avec la fonction HeureVersChane.


Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Sans les cen-
times".

Combien de temps sest-il coul entre deux heures?


Il est 17h25. Combien de temps sest coul depuis 12h15? Le code est le suivant:

// Affiche le temps coul depuis 12h15


Diff est un entier = HeureDiffrence(1215, Maintenant())
Rsultat_Temps est une Heure = EntierVersHeure(Abs(Diff))

SI Diff < 0 ALORS


InfoConstruit(Temps coul avant 12:15 -> %1 h %2 min %3 s , ...
Rsultat_Temps..Heure, Rsultat_Temps..Minute, ...
Rsultat_Temps..Seconde)
SINON
InfoConstruit(Temps coul depuis 12:15 -> %1 h %2 min %3 s , ...
Rsultat_Temps..Heure, Rsultat_Temps..Minute, ...
Rsultat_Temps..Seconde)
FIN

La fonction EntierVersHeure transforme un entier (qui correspond au nombre de centimes de


secondes coules depuis minuit (ou 00h00)) vers une heure sous la forme "HHMMSSCC".
La fonction HeureVersEntier effectue lopration inverse.
Attention!

Ne mettez pas de ":" dans lheure passe en paramtre la fonction


HeureVersEntier, cela fausserait le rsultat.
Pour calculer des dures de plus de 24 heures, utilisez les types Date, Heure,...

Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "1er exemple".
Le mme calcul peut tre effectu en utilisant les variables de type Heure et Dure.
Le WLangage propose des types de variables spcifiques pour les valeurs de type Date, Heure,
DateHeure ou de Dure. Ces variables sont assimilables des "chanes". Chacune contient une
valeur selon le tableau suivant:
Type Format par dfaut
Heure HHMMSSCC
Dure AAAAMMJJHHMMSSCC

88 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le code peut devenir:
Dans12H est une Heure
Dans12H..Heure+= 12
Dans12H..Minute+= 30
InfoConstruit(Dans 12 heures et 30 minutes, il sera %1, ...
HeureVersChane(Dans12H, HH:MM))

Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "2 me
exemple".

Un exercice dapplication ? A vous de jouer !


Pour mettre en application les diffrentes manipulations sur les dates, nous vous proposons un
petit exercice:
Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Heure" si ncessaire
(double-cliquez sur son nom dans lexplorateur de projet).
Dans la zone "A vous de jouer", un exercice vous est propos:
Dans le bouton "Votre code", crivez le code qui permet dafficher le temps restant avant
23h59 au format HH:MM.
Testez la fentre pour tester votre code.
Correction: Le bouton "Code corrig" contient la solution.

Calculs avec des dates et des heures


Le WLangage possde de trs nombreuses fonctions pour grer les dates et les heures et effec-
tuer diffrents calculs.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Date, Fonctions WLangage").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 89
Leon 1.5. Questions / Rponses

Ce que vous allez apprendre dans cette leon...

Questions / Rponses

Dure estime: 10 mn

90 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Questions / Rponses

Question Comment visualiser llment auquel appartient le traitement en cours?

Pour visualiser llment correspondant au traitement en cours, sous le volet "Code", dans le
groupe "Navigation", cliquez sur "Aller lobjet" (CTRL + ALT + F2). La fentre contenant llment
voulu saffiche.

Question Comment imprimer le code source?

Le code source en cours peut tre imprim directement en cliquant sur licne dans le volet
"Accueil" ou grce la combinaison de touches [CTRL] + [P].

Question Comment faire un "rechercher et/ou remplacer"?

Les fonctions de recherche ou de remplacement (dans le code, linterface, ...) sont accessibles
depuis le volet "Accueil", dans le groupe "Rechercher" ou dans le volet "Rechercher - Remplacer"
(CTRL + F):

Vous pouvez ensuite dfinir les diffrentes caractristiques de la recherche effectuer.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 91
Question Que signifient les signes "+" ou "-" dans lditeur de code?

Lditeur de code permet denrouler ou de drouler le code WLangage. Cette fonctionnalit est
trs utile si vos traitements utilisent de nombreuses instructions structures (boucles, condition,
parcours,...).
Pour replier un code, sous le volet "Affichage", droulez "Replier" et slectionnez loption de menu
"Replier tout" (ou le raccourci [CTRL] + [SHIFT] + * (du clavier numrique)).
Seuls les commentaires restent visibles. Le survol de chaque ligne de commentaire permet de
visualiser le code associ dans une bulle:

La combinaison de touches [CTRL] + * (du clavier numrique) permet de dplier tout le code. Le
clic sur les symboles "-" ou "+" permet denrouler ou de drouler uniquement la partie de code
correspondante.

Question Est-il possible didentifier la personne qui a crit une ligne de code?

Lappui de la touche [F6] permet dafficher les informations (nom et date de la cration/modifica-
tion) de chaque ligne de code.

Question Est-il possible de connatre le numro dune ligne de code?

Dans lditeur de code, pour activer (ou non) la numrotation des lignes de code, sous le volet
"Affichage", dans le groupe "Aide ldition", cliquez sur "Afficher les numros de ligne".

92 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Question Existe-t-il un moyen dobtenir facilement la syntaxe ou de laide sur une
fonction?

Lors de la frappe dune fonction, la syntaxe de la fonction saffiche:


dans une bulle daide au-dessous de la ligne en cours de saisie. Pour chaque paramtre (y
compris le rsultat de la fonction), une bulle explicative est affiche.
Si plusieurs syntaxes sont disponibles, il est possible de passer dune syntaxe lautre
grce aux touches [CTRL] + [ALT] + flche droite ou flche gauche.
dans la barre de message de lditeur.
Dans laide affiche, les paramtres entours par [ et ] sont optionnels.

Pour les fonctions utilisant des noms de fichiers de donnes, de champs, de fentres, ou dtats,
la saisie assiste permet dafficher la liste des lments du projet correspondant au paramtre
de la fonction en cours de saisie.
Exemple de saisie assiste pour la fonction HLitPremier: loption <Assistant> permet de lancer
un assistant de code. Cet assistant vous pose diffrentes questions sur lutilisation de la fonction
et gnre automatiquement le code correspondant.
Toutes les fonctions et les proprits du WLangage ont une aide associe. Cette aide est directe-
ment accessible depuis lditeur en appuyant sur la touche [F1] sur le nom de la fonction ou de la
proprit voulue.

Question Quels sont les raccourcis clavier connatre sous lditeur de code?

[F2] sur le nom dun champ, dune mthode, dune classe, dune procdure ou dun bloc dtat
affiche le traitement de cet objet.
[CTRL]+[F2] permet de revenir au traitement initial.
Il est possible par lappui rpt sur la touche [F2] de se dplacer dun traitement un
autre. Pour revenir sur le traitement initial, il suffit dappuyer autant de fois sur les touches
[CTRL]+[F2].
[CTRL]+[L] supprime la ligne en cours.
[CTRL]+[D] duplique la ligne en cours (ou les lignes slectionnes) sur la ligne du dessous.
[TAB] et [SHIFT]+[TAB] permettent de grer lindentation de lensemble des lignes slectionnes.
[CTRL]+[/] met en commentaires les lignes slectionnes, [CTRL]+[SHIFT]+[/] enlve les com-
mentaires (Attention touche [/] du pav numrique).
[CTRL]+[R] permet de rindenter automatiquement le code affich.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 93
Question Comment dialoguer avec lutilisateur?

Il suffit dutiliser une bote de dialogue avance. Ces botes de dialogue permettent de grer:
linterrogation directive (fonction Dialogue): lutilisateur rpond une question grce des
boutons contenant le texte de laction effectuer.
la saisie immdiate (fonction Saisie), en proposant lutilisateur de saisir directement dans
la bote de dialogue la valeur voulue.
Pour plus de dtails sur ces fonctions, consultez laide en ligne (mot-cl: "Dialogue" et "Saisie").
Pour tester les diffrents modes de dialogue avec lutilisateur:
1.Ouvrez si ncessaire le projet "WD Bases Programmation.WDP": sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Bases de la pro-
grammation".
2.Ouvrez la fentre "FEN_Dialogue.WDW". Cette fentre illustre les diffrents modes de dia-
logue possibles.
3.Testez cette fentre (bouton "GO").
4.Cliquez sur les diffrents boutons pour tester les diffrents modes de dialogue.

5.Arrtez le test de cette fentre et revenez sous lditeur de code pour tudier le code de
chaque bouton.

94 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour mettre en application les diffrentes manipulations sur les botes de dialogues, nous
vous proposons un petit exercice:
1.Dans le projet "WD Bases Programmation", ouvrez la fentre "FEN_Dialogue" si ncessaire
(double-cliquez sur son nom dans lexplorateur de projet).
2.Dans la zone "A vous de jouer", un exercice vous est propos:
Dans le bouton "Votre code", crivez le code qui permet de demander lutilisateur son pr-
nom. Affichez ce prnom dans la barre de message et dans une bote dinformation. Si luti-
lisateur annule la saisie du prnom, affichez un toast pour indiquer cette annulation.
Testez la fentre pour tester votre code.
Correction: Le bouton "Code corrig" contient la solution.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 1 : A la dcouverte de WINDEV 95
96 Partie 1 : A la dcouverte de WINDEV (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 2

Ma premire
base de
donnes
98 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 2.1. Prsentation

Ce que vous allez apprendre dans cette leon...

Prsentation du projet ralis dans cette partie

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 99
Prsentation du projet ralis dans cette partie
Dans cette partie, nous allons crer un projet associ une base de donnes HFSQL.
Vous allez ainsi dcouvrir des lments cls de la conception dune application:
Cration dun projet WINDEV.
Description des fichiers de donnes manipuls par lapplication.

Dans une prochaine partie, nous nous concentrerons sur le dveloppement des lments (fe-
ntres, tats, ...) dune application avec donnes, que nous dvelopperons de A Z, de la cration
de linterface la distribution finale. Vous verrez ainsi tous les points importants du dveloppe-
ment dune application.
Dans cette partie, la base de donnes que nous allons crer ensemble est une gestion de com-
mandes.
Le mme type de base de donnes sera ensuite utilis dans la partie 3 de ce cours pour dve-
lopper une application complte. La base de donnes utilise est HFSQL Classic, la base de don-
nes gratuite fournie avec WINDEV. Plus loin dans ce cours, nous tudierons la base de donnes
HFSQL Client/Serveur.

100 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 2.2. WINDEV et les bases
de donnes

Ce que vous allez apprendre dans cette leon...


Vocabulaire utilis.
Les diffrents modes daccs aux bases de donnes.

Dure estime: 5 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 101
Prsentation
Lors de la conception dune application, vous pouvez tre amen manipuler des donnes. Pour
les stocker, vous devez constituer ce que lon nomme "une base de donnes".
Dans WINDEV, lors de la cration dun projet manipulant des donnes, vous devez tout dabord
crer une "analyse".
Une "analyse" contient la description des fichiers de donnes (ou tables) contenant les donnes
de lapplication.
Cest seulement lors de lexcution de lapplication, que ces descriptions sont utilises pour crer
la base de donnes et/ou les fichiers de donnes. Cest dans cette base ou dans ces fichiers de
donnes que seront stockes les informations.
Notes

Plusieurs outils de maintenance des bases de donnes HFSQL sont livrs en


standard avec WINDEV. Ils sont accessibles depuis le Centre de Contrle HFSQL.

WINDEV sait grer diffrents formats de base de donnes (pour ne pas dire tous). Les formats les
plus courants sont:
HFSQL, systme de base de donnes intgre WINDEV et livre en standard. La base de
donnes HFSQL est disponible en mode Classic ou Client/Serveur.
Oracle, SQL Server, MySQL, xBase, SQL Azure, ...
AS/400, Access, Sybase, Informix,...
Toute base accessible en langage SQL sous Windows.
Texte (fichiers ASCII).
Pour accder aux donnes, il existe diffrentes techniques:
Accs Natif,
Accs OLE DB,
Accs ODBC direct,
Accs ODBC via OLE DB.

102 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
HFSQL
HFSQL est une base de donnes la fois trs puissante, trs rapide et trs robuste.
HFSQL fonctionne sous Windows et Linux, sur Mobiles (iOS, Android, Windows CE, Windows 10),
sur les rseaux de toute taille et de tout type, et gre automatiquement plusieurs centaines dac-
cs simultans.
La diffusion de HFSQL est libre et gratuite avec vos applications WINDEV.

HFSQL propose toutes les fonctionnalits dune base de donnes, notamment:


la journalisation,
les transactions,
la rplication,
les triggers.
Pour plus de dtails sur la mise en place de ces fonctionnalits, consultez laide en ligne.

Dans les diffrentes parties de ce cours dauto-formation, nous allons manipuler une base de
donnes HFSQL Classic puis une base HFSQL Client/Serveur.

Les diffrents modes daccs aux bases de donnes

Accs Natif
Un accs natif manipule directement et exclusivement un format de base de donnes. Ce type
daccs optimis est dvelopp spcialement pour chaque format de base de donnes.
Dans WINDEV, il existe un accs natif pour les bases de type:
HFSQL Classic ou Client/Serveur (en standard)
xBase (en standard)
Access (en standard)
XML (en standard)
SQLite (en standard)
Oracle (optionnel)
AS/400 (optionnel)
SQL Server (optionnel)
Sybase (optionnel)
Informix (optionnel)
DB2 (optionnel)
Progress (optionnel)
MySQL (optionnel et gratuit)
PostgreSQL (optionnel et gratuit)
MariaDB (optionnel et gratuit)
SQL Azure (optionnel et gratuit)
Dautres accs natifs seront bientt disponibles, contactez notre service commercial!
Les fonctions WLangage SQL* et HLit* sont utilisables avec ce type daccs. Le code est ainsi
portable et indpendant de la base de donnes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 103
Accs ODBC direct
Un accs via ODBC direct utilise un standard daccs multi-bases. Vous devez installer la couche
ODBC sur votre machine. Cette couche est en gnral dj installe sur les versions rcentes de
Windows. Vous pouvez le vrifier dans le panneau de configuration de Windows en choisissant
loption "Administrateur ODBC".
Attention: toutes les bases de donnes ne sont pas obligatoirement accessibles via cette m-
thode. Si vous souhaitez utiliser ce type daccs, vrifiez quil existe un pilote ODBC et installez ce
pilote si ncessaire.
Seules les fonctions WLangage SQL* sont utilisables avec ce type daccs.

Accs OLE DB
Un accs via OLE DB est un accs qui utilise un standard daccs multi-bases. Ce type daccs est
bas sur le MDAC (Microsoft Data Access Component) de Microsoft.
Attention!

Si vous utilisez un accs OLE DB, vous devez obligatoirement installer le MDAC
sur les postes utilisateurs (version 2.6 minimum).

Toutes les bases de donnes ne sont pas obligatoirement accessibles via cette mthode. Si vous
souhaitez utiliser ce type daccs, vrifiez quil existe un pilote OLE DB.
Les fonctions WLangage SQL* et HLit* sont utilisables avec ce type daccs.

Accs ODBC via OLE DB


En rsum, il sagit dun "mlange" de OLE DB et de ODBC. Cette technique est la plus "lourde" et
la moins efficace en terme de performances. Il est dconseill de lutiliser sur des bases de petite
taille.
Les fonctions WLangage SQL* et HLit* sont utilisables avec ce type daccs.

104 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 2.3. Projet et analyse

Ce que vous allez apprendre dans cette leon...

Cration dun projet


Cration dune analyse

Dure estime: 40 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 105
Prsentation
Pour crer une application avec une base de donnes, il faut:
Crer le projet li lapplication. Ce projet regroupera tous les lments de lapplication (fe-
ntres, codes, requtes, tats, ...).
Crer lanalyse lie au projet. Lanalyse permet de dcrire tous les fichiers de donnes manipu-
ls par lapplication.

Cration du projet

Pour crer le projet:


1.Lancez WINDEV si ce nest pas dj fait. Si ncessaire fermez le projet en cours.
2.Dans la fentre de bienvenue, cliquez sur le bouton "Crer un projet", puis sur loption "Ap-
plication Windows ou Linux". Lassistant de cration de projet se lance. Les diffrents crans
de lassistant vont vous aider crer votre projet. Tous les renseignements indiqus dans cet
assistant pourront tre modifis par la suite.

Astuce: Pour crer un projet, vous pouvez galement:


Notes

1.Cliquer sur parmi les boutons daccs rapide.


2.La fentre de cration dun nouvel lment saffiche: cliquer sur "Projet".

3.Le premier cran de lassistant permet de saisir le nom du projet, son emplacement et sa
description. Dans notre cas, ce projet va simplement sappeler "WD Ma Premire Base De
Donnes". Par dfaut, WINDEV propose de crer ce projet dans le rpertoire "\Mes projets\
WD Ma Premire Base De Donnes". Vous pouvez conserver cet emplacement ou le modifier
grce au bouton [...]. Pour le rsum du projet, saisissez "Le projet a pour but de grer des
clients et leurs commandes".

106 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Les diffrentes tapes de lassistant sont indiques gauche de lassistant. Ces tapes
sont directement clicables. Les autres crans de ltape "Description" ntant pas fondamen-
taux, cliquez directement sur "Chartes".
5.Cette tape permet de dfinir la charte de programmation utilise. Ne modifiez pas les
options proposes. Passez ltape suivante laide des flches situes en bas.
6.Cette tape permet de dfinir la charte graphique. Slectionnez "Elegant". Passez ltape
suivante laide des flches situes en bas.

7.Cliquez sur ltape "Le saviez-vous". Cet cran permet de grer laffichage dune fentre de
type "Le saviez-vous".
Nous nafficherons pas cette fentre: slectionnez loption "Ne pas afficher la fentre Le sa-
viez-vous au lancement de lapplication". Passez ltape suivante.
8.Nous allons maintenant donner les renseignements concernant la base de donnes.
9.Slectionnez loption "Oui, crer une nouvelle base de donnes" et validez. Lassistant de
cration de lanalyse se lance.

Pour suivre les diffrentes leons de cette partie et optimiser votre apprentis-
sage de WINDEV, il est conseill de crer le projet "WD Ma Premire Base De
Donnes".
Notes

Un exemple corrig est disponible tout moment pour vrifier la validit des op-
rations effectues.
Pour ouvrir ce projet corrig, sous le volet "Accueil", dans le groupe "Aide en
ligne", droulez "Guide dAuto-formation" puis slectionnez "Ma premire base de
donnes (Corrig)".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 107
Cration de lanalyse

Les tapes de lassistant de cration danalyse sont les suivantes:


1.Indiquez le nom et le rpertoire de lanalyse. Par dfaut, le nom de lanalyse correspond au
nom du projet et le rpertoire de lanalyse est un rpertoire ".ana" dans le rpertoire du projet.
Nous allons conserver ces paramtres par dfaut. Passez ltape suivante de lassistant.

2.Vous pouvez ensuite choisir le ou les types de bases de donnes manipules par le projet.
Slectionnez HFSQL Classic (la base de donnes propose par dfaut avec WINDEV).

Passez ltape suivante de lassistant.


3.Validez. Lassistant de cration dun fichier de donnes se lance automatiquement.

108 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cration de la description des fichiers de donnes
Notre application de gestion de clients et de commandes va tre associe lanalyse suivante.
Cette analyse comportecinq fichiers de donnes (tables) diffrents:
Client
Commande
ModeRglement
LigneCommande
Produit

Pour crer les diffrents fichiers de donnes de cette analyse, nous allons utiliser diffrentes m-
thodes disponibles dans WINDEV.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 109
Cration dun fichier de donnes : utilisation dun fichier prdfini

Les tapes de lassistant de cration dun fichier de donnes sont les suivantes:
1.Slectionnez dans lassistant loption "Slectionner une description parmi des fichiers de
donnes prdfinis". Passez ltape suivante de lassistant (flche en bas de lassistant).

2.La liste des fichiers de donnes prdfinis est affiche. Nous allons crer le fichier "Client".
Dans la liste des fichiers de donnes, slectionnez "Client". Passez ltape suivante.
3.Lassistant propose la liste des rubriques intgrer dans le fichier Client. Cette liste est
impressionnante car elle permet de grer de nombreux types de fichiers Client.

4.Cochez uniquement les rubriques suivantes : IDClient, Socit, Nom, Prnom, Adresse, Co-
dePostal, Ville, EtatDep, Pays, Tlphone, Mobile, Email.
5.Validez lassistant.

110 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
6.Le fichier "Client est automatiquement cr sous lditeur danalyses.

7.La fentre de cration dun nouvel lment saffiche. Nous allons maintenant crer le fi-
chier de donnes contenant les commandes.

Cration dun fichier de donnes: cration du fichier et des rubriques

Pour crer un fichier de donnes depuis la fentre de cration dun nouvel lment:
1.Cliquez sur "Donnes" puis sur "Fichier de donnes".

Il est galement possible de crer un fichier de donnes directement depuis


Notes

lditeur danalyses : sous le volet "Analyse", dans le groupe "Cration", cliquez


sur "Nouveau fichier".

2.Lassistant de cration dun nouveau fichier de donnes se lance.


3.Slectionnez dans lassistant loption "Crer une nouvelle description dun fichier de don-
nes".

4.Passez ltape suivante de lassistant.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 111
5.Nous allons crer le fichier "Commande". Saisissez son nom "Commande" dans lassistant.
Ce nom sera utilis:
pour manipuler le fichier de donnes en programmation. La variable associe au fichier
sera "Commande".
pour construire le nom du fichier de donnes physique associ (fichier "Commande.fic").
Automatiquement, le libell et la description des lments reprsents par les enregistre-
ments du fichier de donnes apparaissent.

Dans lassistant, le champ "Un enregistrement reprsente" permet davoir un


libell clair lors de la description des liaisons entre les fichiers de donnes. Auto-
Notes

matiquement, un libell est propos partir du nom du fichier.


Dans notre cas, saisissez "Une commande".

6.Dans la zone "Identifiant automatique", conservez loption "Identifiant automatique sur 8


octets". Si un identifiant automatique est dfini sur le fichier de donnes, cela signifie que le
fichier de donnes possde une cl unique, gre automatiquement par WINDEV.
Pour crer lidentifiant (un identifiant est une cl unique), vous pouvez crer une
rubrique numrique de type "Identifiant automatique".
Notes

Cet identifiant est automatiquement gr par WINDEV. Chaque fois quun enre-
gistrement est ajout dans le fichier de donnes, WINDEV affecte automatique-
ment une valeur lidentifiant du fichier. Cette valeur est unique.

7.Passez ltape suivante et slectionnez le type de la base associe au fichier de donnes.


Nous allons travailler sur des fichiers de donnes HFSQL Classic. Passez ltape suivante.
8.Cliquez sur le bouton vert pour valider. Le fichier de donnes est automatiquement cr
dans lanalyse. La fentre de description des rubriques souvre.

112 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons saisir les rubriques du fichier "Commande". Dans la fentre de description du fichier
de donnes, vous pouvez dj voir quune rubrique a t automatiquement cre: "IDCommande".
Cette rubrique correspond lidentifiant automatique du fichier de donnes. Cette rubrique est
compose des lettres "ID" et du nom du fichier.
Nous allons crer les autres rubriques de ce fichier de donnes.
Tout dabord, nous allons crer la rubrique "Date". Cette rubrique contiendra la date de la
commande.
1.Dans la fentre de description des rubriques, double-cliquez dans la colonne "Nom" de la
premire ligne vide. Cette colonne passe automatiquement en saisie. Saisissez "Date".
2.Cliquez dans la colonne "Libell". Automatiquement, le nom de la rubrique apparat. Nous
allons modifier le libell de la rubrique en cliquant dessus: saisissez "Date de la commande".
Dans la colonne "Type", le type "Texte" est automatiquement slectionn. Droulez la liste et
slectionnez le type "Date".

3.Cette rubrique va tre une cl (un index) de notre fichier de donnes: les cls permettent
dacclrer les accs aux donnes et les tris.
Dans le cas dune base de donnes au format SQL, le moteur utilise au mieux les index.
Dans le cas dun parcours squentiel dun fichier de donnes, il suffit dindiquer lindex de
parcours (cest--dire la cl).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 113
La notion de cl fait partie des caractristiques dune rubrique. En fait, lors de la
cration dune rubrique, vous avez la possibilit dindiquer si elle est:
non cl,
Notes

cl unique: la valeur de cette cl sera unique dans lensemble du fichier de


donnes (cest--dire dans tous les enregistrements du fichier de donnes)
cl avec doublons: la valeur de cette cl pourra tre prsente plusieurs fois
dans le fichier de donnes.

4.La dfinition de la cl se fait de la manire suivante: re-slectionnez la ligne de la rubrique


"Date" pour activer les champs de description prsents sur la droite de lcran. Il suffit alors de
prciser le type de cl utilis. Dans notre cas, la date est une cl avec doublons.

5.Il est galement ncessaire de dfinir le sens de parcours de la cl. Le sens de parcours
permet de dfinir le tri par dfaut de cette rubrique. Dans notre cas, lorsquun parcours sera
effectu sur cette cl, le tri par dfaut sera "ascendant".
Nous allons maintenant crer la rubrique "Etat" qui permet de connatre ltat de la com-
mande.
1.Positionnez-vous sur une nouvelle ligne de la table. Saisissez:
le nom: Etat
le libell: Etat de la commande
le type: Slecteur, Liste, Combo. Dans la fentre qui souvre, vous pouvez slectionner le
type de champ cr par dfaut pour cette rubrique. Ici, ce sera un slecteur. Validez la fe-
ntre.
2.Dans la partie basse de lcran, cliquez sur la double flche pour afficher les paramtres
du champ li la rubrique slectionne.

Les informations saisies ici seront automatiquement utilises lors de la cration des fentres
lies au fichier de donnes. Vous retrouvez ici le type du champ et le libell.
Nous allons saisir les options suivantes dans longlet "Contenu":
Cliquez sur longlet "Contenu".
Cliquez sur le bouton "+" pour ajouter la premire option.
Loption 1 correspond En attente. Saisissez "En attente" dans le champ de saisie droite
du slecteur.

114 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cliquez sur le bouton "+" pour ajouter la seconde option.
Saisissez "Valide" la place de "Option 2".
Cliquez nouveau sur le bouton "+".
Saisissez "Annule" la place de "Option 3".

3.Cliquez nouveau sur la double flche.

4.De la mme manire:


Positionnez-vous sur une nouvelle ligne de la table et crez la rubrique "TotalHT". Cette ru-
brique est de type "Montaire".
Positionnez-vous sur une nouvelle ligne de la table et crez la rubrique "TotalTTC". Cette ru-
brique est de type "Montaire".
5.Voil, la description du fichier "Commande" est termine. Validez la fentre de description
des rubriques.
6.Le fichier "Commande" apparat sous lditeur danalyses. Il est possible dagrandir le fi-
chier affich. Il suffit de cliquer sur le fichier, de slectionner la poigne noire en bas du fichier
et de dplacer la souris vers le bas.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 115
Importation dun fichier CSV
Pour crer le fichier "ModeRglement", contenant les caractristiques du rglement, nous allons
utiliser une autre mthode: limport dun fichier CSV.

Un fichier CSV est un fichier texte utilisant un format spcifique. Ce fichier


Notes

contient des donnes sur chaque ligne. Les donnes sont spares par un ca-
ractre de sparation (gnralement une virgule, un point-virgule ou une tabula-
tion).

A partir du fichier CSV contenant les donnes, WINDEVva crer:


la description du fichier de donnes dans lanalyse,
le fichier de donnes HFSQL avec les donnes prsentes dans le fichier CSV.

Pour importer un fichier CSV dans lanalyse:


1.Sous le volet "Analyse", dans le groupe "Cration", droulez "Importer" et slectionnez "Impor-
ter des descriptions de fichiers/tables".

Pour importer un fichier (CSV ou autre) dans lanalyse, il est galement possible
Astuce

de raliser directement un "Drag and Drop" du fichier CSV (prsent dans lexplo-
rateur de fichiers Windows) vers lditeur danalyses. Nous le verrons dans le
paragraphe suivant.

2.Lassistant dimportation de fichiers se lance.


3.Passez ltape suivante.
4.Slectionnez le format des fichiers importer. Ici, slectionnez "Fichier texte". Passez
ltape suivante de lassistant.

116 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Indiquez le chemin du fichier importer : "\Autoformation\Exercices\WD Ma Premire Base
De Donnes\ModeRglement.csv" prsent dans le rpertoire dinstallation de WINDEV.
6.Passez ltape suivante de lassistant.
7.Indiquez les paramtres dimportation suivants:
Enregistrements dlimits par: "<Retour chariot/Saut de ligne>
Colonnes dlimits par: "<Point-virgule>"
Chanes dlimites par : "<Aucun>"
Sparateur dcimal : "<Automatique : point ou virgule>"

8.Noubliez pas de cocher loption "La premire ligne contient les noms des colonnes".
9.Passez ltape suivante.
10.La structure du fichier de donnes qui va tre cr apparat. Conservez les options par
dfaut. Passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 117
11.Le contenu du fichier CSV va tre automatiquement converti au format HFSQL. Lassistant
vous propose de crer le fichier HFSQL dans le rpertoire du projet. Conservez les options pro-
poses et passez ltape suivante.

12.Validez lassistant. WINDEV cre le fichier de donnes.


Examinons la description du fichier de donnes import:
1.Slectionnez le fichier "ModeRglement".
2.Dans le menu contextuel (clic droit), slectionnez loption "Description du fichier de don-
nes".
3.Dans la fentre qui saffiche, modifiez le libell du fichier: supprimez "(Import)".
4.Cliquez sur licne pour afficher la description des rubriques du fichier de donnes.
5.Ce fichier de donnes ne contient pas didentifiant automatique ni de cl unique. Nous
allons passer la rubrique "Code" en cl unique:
Positionnez le bandeau de slection si ncessaire sur la rubrique code.
Dans la partie droite de lcran, cliquez sur "Cl unique".

6.Nous obtenons les donnes suivantes:

7.Validez la fentre de description des rubriques puis la fentre de description du fichier.

118 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Importation directe de fichiers de donnes existants
La dernire mthode que nous allons voir pour crer des fichiers de donnes est la simple impor-
tation de fichiers de donnes HFSQL existants. Nous allons utiliser cette mthode pour crer le
fichier "Produit".

Pour importer des fichiers de donnes HFSQL:


1.Dans lexplorateur de fichiers de Windows, ouvrez le sous-rpertoire de WINDEV suivant:
"\Autoformation\Exercices\WD Ma Premire Base De Donnes".
2.Slectionnez le fichier "Produit.fic".
3.Effectuez un "Drag and Drop" du fichier "Produit" vers lditeur danalyses de WINDEV.
4.Lassistant dimportation se lance. Validez les diffrents crans. Le fichier de donnes ap-
parat sous lditeur danalyses.
Tous les fichiers de donnes ncessaires sont maintenant prsents dans lditeur danalyses.

Nous avons uniquement import la description du fichier "Produit" dans lana-


lyse de notre projet. Les donnes contenues dans le fichier "Produit" nont pas
t importes dans le projet.
Attention!

Pour manipuler les donnes du fichier que vous venez dimporter, copiez dans
lexplorateur de fichiers, les fichiers "Produit.fic", "Produit.mmo" et "Produit.ndx"
(prsents dans le rpertoire "\Autoformation\Exercices\WD Ma Premire Base
De Donnes") vers le sous-rpertoire EXE du rpertoire de votre projet.
Remarque: Pour ouvrir directement lexplorateur de fichiers sur le rpertoire de
votre projet, sous le volet "Accueil", dans le groupe "Gnral", cliquez sur .

Cration des liaisons


Nous avons cr toutes les descriptions de fichiers ncessaires lapplication de gestion de
comptes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 119
Maintenant nous allons crer les liaisons entre les fichiers de donnes. Une liaison permet de
dfinir les contraintes dintgrit (cardinalits) entre deux fichiers de donnes.
Crons tout dabord la liaison entre le fichier "Client" et le fichier "Commande": un client peut
avoir une ou plusieurs commandes, et chaque commande est lie un client.
1.Sous le volet "Analyse" (prsent dans le ruban), dans le groupe "Cration", cliquez sur "Nou-
velle liaison". Le curseur de la souris se transforme en crayon.
2.Cliquez sur le fichier "Client" puis sur le fichier "Commande".
3.Lassistant de cration de liaison se lance.
4.Rpondez aux questions poses par lassistant:

Chaque Client a au moins une Commande: Non


Chaque Client peut avoir plusieurs Commandes: Oui
Chaque Commande a au moins un Client: Oui
Chaque Commande peut avoir plusieurs Clients: Non

Vous pouvez galement saisir directement les cardinalits de la liaison dans


lassistant.
Notes

120 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Passez ltape suivante. Lassistant propose automatiquement la cl utilise par la liai-
son (IDClient).

6.Affichez lcran suivant de lassistant. Lassistant propose de crer la cl "IDClient" dans le


fichier Commande pour stocker le client correspondant la commande.

7.Acceptez cette option en passant lcran suivant.


8.Cet cran permet de dfinir les rgles dintgrit qui seront automatiquement appliques.
Dans notre cas, vous pouvez choisir le comportement que vous souhaitez lors de la suppres-
sion dun client, ainsi que le comportement lors de la modification de lidentifiant du client.
9.Validez les rgles dintgrit en passant lcran suivant.
10.Cliquez sur la flche verte. La liaison est automatiquement cre dans lditeur dana-
lyses.
De la mme manire, crez une liaison entre le fichier ModeRglement et Commande. Ces
deux fichiers sont lis de la faon suivante:
Une commande doit avoir un mode de rglement.
Un mode de rglement peut tre utilis dans plusieurs commandes.
Dans lassistant:
Les cardinalits sont les suivantes: ModeRglement (0,n), Commande (1,1)
La cl de liaison correspond la rubrique "Code".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 121
Nous allons maintenant crer une liaison entre le fichier "Produit" et "Commande". Cette
liaison va nous permettre de crer un fichier de liaison, le fichier des lignes de commandes.
1.Crez de la mme manire la liaison entre les fichiers.
2.Rpondez aux questions poses par lassistant:
Chaque Produit a au moins une Commande: Non
Chaque Produit peut avoir plusieurs Commandes: Oui
Chaque Commande a au moins un Produit: Non
Chaque Commande peut avoir plusieurs Produits: Oui

3.Passez ltape suivante. Lassistant propose de crer un fichier de relation. Conservez


loption "Crer automatiquement le fichier de relation" et passez ltape suivante.
4.Lassistant propose la cl unique du fichier Produit utiliser. Slectionnez "Rfrence". Pas-
sez ltape suivante.
5.Validez la cration de la cl en passant lcran suivant.
6.Conservez les options par dfaut concernant les rgles dintgrit, et passez ltape sui-
vante.
7.Lassistant propose la cl unique du fichier Commande utiliser "IDCommande." Passez
ltape suivante.
8.Validez la cration de la cl en passant lcran suivant.
9.Conservez les options par dfaut concernant les rgles dintgrit et passez ltape sui-
vante.
10.Cliquez sur la flche verte. Le fichier de relation est automatiquement cr dans lditeur
danalyses.

122 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons maintenant modifier le fichier de relation qui a t cr par WINDEV. En effet, ce fi-
chier va contenir les lignes de commande. Nous allons:
Modifier le nom du fichier.
Modifier le nom de ses rubriques.
Ajouter des rubriques pour connatre la quantit de produit command et le total de la ligne de
commande.
Nous allons tout dabord renommer le fichier. Nous avons dj ralis une manipulation
similaire lorsque nous avons chang le libell du fichier import. Mais ici, ce nest pas juste
un libell qui va tre modifi: nous allons galement renommer le fichier physique li la
description du fichier.
1.Slectionnez le fichier "Produit_Commande".
2.Dans le menu contextuel (clic droit), slectionnez loption "Description du fichier de don-
nes".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 123
3.Dans la fentre qui saffiche, modifiez:
le nom du fichier: "LigneCommande".
le nom sur le disque: "LigneCommande".

Nous allons maintenant modifier les rubriques de ce fichier de relation.


1.Cliquez sur licne pour afficher la description des rubriques du fichier de donnes.

2.Ce fichier comporte 3 rubriques. Positionnez le bandeau de slection sur la rubrique "Rf-
rence_IDCommande". Cette rubrique est une cl compose.

Une cl compose est un ensemble de rubriques constituant un index.


Notes

Ce type de cl permet de parcourir le fichier de donnes sur des critres com-


plexes ou de faire des recherches sur plusieurs rubriques simultanment.

3.Pour renommer cette rubrique:


Cliquez dans la colonne "Nom".
Remplacez "Rfrence_IDCommande" par "IDLigneCommande".
Cliquez dans la colonne "Libell".
Remplacez le libell actuel par "Identifiant de LigneCommande".

124 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons maintenant ajouter 3 nouvelles rubriques dans ce fichier de relation: Quantit,
TotalTTC et TotalHT.
1.Positionnez-vous sur une nouvelle ligne et crez la rubrique "Quantit". Cette rubrique est de
type "Numrique".
2.Positionnez-vous sur une nouvelle ligne de la table et crez la rubrique "TotalTTC". Cette
rubrique est de type "Montaire".
3.Une fentre saffiche indiquant que la rubrique existe dj dans lanalyse, et proposant de
reprendre ses caractristiques:

Conservez les options slectionnes par dfaut et validez (bouton vert).


4.Positionnez-vous sur une nouvelle ligne de la table et crez la rubrique "TotalHT". Cette ru-
brique est de type "Montaire". L encore, reprenez la description existante.
5.La description des rubriques pour le fichier "LigneCommande" est la suivante.

6.Validez la description des rubriques (bouton vert en bas de lcran) et celle du fichier.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 125
Lanalyse est alors la suivante:

Gnration de lanalyse
La gnration de lanalyse consiste valider les modifications de lanalyse (cration de fichiers
de donnes, ajout ou suppression de rubriques, ...) et les propager dans tout le projet (pages,
champs relis, tats,...).

La gnration est automatiquement propose lorsque vous fermez lditeur danalyses et que des
modifications ont t effectues.
Il est galement possible de gnrer lanalyse manuellement. Cest ce que nous allons faire.
Pour gnrer lanalyse:
1.Sous lditeur danalyses, sous le volet "Analyse", dans le groupe "Analyse", cliquez sur "Gn-
ration".
2.La gnration de lanalyse est automatiquement lance.
Nous avons modifi les descriptions des fichiers de donnes prsents dans lanalyse.
Pour mettre jour les fichiers de donnes de lapplication, WINDEV lance automatiquement la
procdure de modification des fichiers de donnes. Cette opration permet de mettre jour les
fichiers de donnes (fichiers ".fic") en fonction de leur description dans lanalyse.

126 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lassistant de modification automatique se lance. Validez les diffrents crans jusqu
lcran listant les fichiers prendre en compte.
WINDEV dtecte que le fichier ModeRglement ncessite une mise jour. Conservez ce fi-
chier slectionn.
WINDEV dtecte une ambiguit sur le fichier Produit qui a t copi et import. Slectionnez
ce fichier.

Passez ltape suivante.


Lassistant propose de raliser une sauvegarde des fichiers de donnes existants, ne chan-
gez rien et passez ltape suivante.
Lassistant propose de saisir des mots de passe de protection des fichiers de donnes mo-
difis par la modification automatique. Conservez les options par dfaut et passez au plan
suivant.
La liste des fichiers de donnes modifier apparat. Validez lassistant.
La mise jour des fichiers de donnes est effectue.
Fermez lditeur danalyses.
Vous venez de dcouvrir les principales tapes pour la cration dune analyse.

Lorsque votre analyse est dcrite et gnre, il est galement possible de:
Crer une application complte grce au RAD (Rapid Application Developpement). Nous allons
crer lapplication correspondant lanalyse de cette manire dans la leon suivante.
Crer une application complte entirement personnalise. Cette mthode sera utilise pour
dvelopper une application complte base sur une base de donnes dans la partie 3 de ce
cours dauto-formation. Cette application sera base sur une analyse correspondant celle que
vous avez cre dans cette partie.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 127
Leon 2.4. Le RAD complet

Ce que vous allez apprendre dans cette leon...

Quest-ce que le RAD ?


Gnration du RAD
Test du projet

Dure estime: 20 mn

128 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quest-ce que le RAD ?
R.A.D. sont les initiales de "Rapid Application Developpement".
Le RAD permet de construire automatiquement une application, cest--dire construire toutes les
fentres, les tats et les requtes ncessaires.
Comme nous lavons vu prcdemment, pour dvelopper une application en WINDEV, il faut com-
mencer par crer un projet et ventuellement une analyse. Lanalyse contient la dfinition des
structures des fichiers de donnes manipuls dans les traitements.
Le module RAD de WINDEV sappuie sur cette analyse. Le module RAD est constitu dun assis-
tant dans lequel vous pouvez choisir le modle dapplication gnrer (le pattern RAD) et les
principales options de fonctionnement de votre application.

WINDEV est livr avec diffrents "Patterns RAD", permettant de gnrer plusieurs
Note

modles dapplication. Vous pouvez galement crer vos propres patterns RAD.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Pattern RAD").

Toutes les fentres, les tats, les requtes et le code gnrs par le RAD sont entirement per-
sonnalisables. Vous avez galement la possibilit de modifier les types de champs, les valeurs par
dfaut,...
Le RAD permet galement de gnrer des fentres de plusieurs types, cest le RAD fentre. Le
RAD Fentre est disponible lorsque vous crez une nouvelle fentre dans votre application.
Nous allons ici dcouvrir comment utiliser le module RAD Projet.

RID (Rapid graphical Interface Design)


WINDEV permet galement de gnrer des fentres contenant uniquement les
Note

champs lis aux rubriques de lanalyse. Tout le code ncessaire au fonctionne-


ment de ces fentres reste la charge du dveloppeur.
Pour plus de dtails, consultez laide en ligne (mot-cl: "RID").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 129
Gnration du RAD

Pour lancer la gnration du RAD:


1.Sous le volet "Projet", dans le groupe "Gnration", cliquez sur "RAD Application complte".
Lassistant de gnration de lapplication RAD se lance.

2.Slectionnez le modle utiliser pour la gnration du RAD: par exemple "RAD Simple".
Passez ltape suivante de lassistant.
En version Express, seul le pattern RAD Simple est disponible. Cet cran nest pas affich.
3.Tous les fichiers de donnes de lanalyse vont tre pris en compte:

4.Affichez lcran suivant.

130 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Les points dentre de lapplication correspondent aux entres disponibles dans le menu.

Conservez uniquement les fichiers Client, Commande, ModeRglement et Produit. Affichez


lcran suivant.
6.Indiquez si les champs Table gnrs dans les fentres de lapplication doivent permettre
la saisie ou non. Dans notre exemple, les champs Table permettront lutilisateur de saisir
de nouvelles informations. Slectionnez "Oui: Autoriser la saisie dans les champs Table ...".
Affichez lcran suivant.
7.Indiquez si le groupware utilisateur doit tre utilis dans lapplication. Nous le verrons plus
tard dans une prochaine partie de ce cours. Slectionnez loption "Non: Ne pas intgrer la
gestion du groupware utilisateur". Passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 131
8.Indiquez si le menu automatique doit tre intgr lapplication. Rpondez "Oui: Intgrer
le menu ?".

9.Passez ltape suivante. Lassistant de gnration du RAD se termine et lassistant de


gnration du menu automatique se lance.

Le menu automatique est un menu daide adapt vos applications. Ce menu


Note

permettra aux utilisateurs de vos applications daccder directement plusieurs


fonctionnalits.

Les diffrentes options proposes par lassistant de gnration du menu automatique sont
les suivantes:

132 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
1.Conservez loption "Aide des FAA (Fonctionnalits Automatiques de lApplication)".
2.Terminez lassistant.

Lors de la cration du menu ?, loption "? .. Aide des FAA (Fonctionnalits Auto-
matiques de lApplication)" a ajout automatiquement dans votre application:
Notes

le composant "CCMenu". En effet, cette option utilise une procdure de ce


composant pour fonctionner.
le fichier "WinDev FAA 21.PDF". Ce fichier sera automatiquement ouvert
lors de lutilisation de loption de menu.

Lapplication est gnre et peut tre teste.

Des erreurs dIHM peuvent apparatre dans le volet des erreurs de compilation.
Notes

Ces erreurs signalent des problmes dinterface notamment dans les tats (libel-
ls trop longs par exemple). Pour corriger ces erreurs, il est ncessaire de modi-
fier les tats.

Test de lapplication
Testons immdiatement lapplication gnre.
Pour lancer le test de lapplication:
1.Cliquez sur parmi les boutons daccs rapide. Lapplication se lance.
2.Dans le menu, slectionnez loption "Clients/Prospects .. Liste des Clients/Prospects".
3.La liste des clients saffiche.
4.Pour ajouter une nouvelle personne, cliquez sur le bouton "Nouveau". Un formulaire de sai-
sie apparat.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 2 : Ma premire base de donnes 133
5.Saisissez des informations concernant un client et validez.
6.Fermez la liste des personnes.
7.Dans le menu, slectionnez loption "Produit .. Liste des Produit". La liste des produits appa-
rat.
8.Fermez la fentre de tests. Lditeur de WINDEV rapparat.

134 Partie 2 : Ma premire base de donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 3

Application
complte avec
donnes
136 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.1. Prsentation

Ce que vous allez apprendre dans cette leon...

Prsentation de lapplication ralise dans cette partie

Dure estime: 5 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 137
Prsentation de lapplication ralise dans cette partie
Dans cette partie, nous allons raliser une application manipulant des fichiers de donnes au
format HFSQL Classic.
Cette application de gestion de commandes permettra de:
Visualiser, saisir et modifier des produits,
Imprimer des tats,
Afficher des statistiques,
Grer des niveaux dutilisation,
Envoyer des emails,
...
Le dveloppement de cette application nous permettra galement daborder le dploiement et la
diffusion de lapplication auprs des clients finaux.
Vous verrez ainsi tous les points importants du dveloppement dune application.

Projets fournis

Projet exemple
Nous avons dj vu dans la partie prcdente comment crer un projet et une analyse. Nous ny
reviendrons pas. Nous allons travailler sur un projet contenant dj une analyse et des fichiers de
donnes pr-remplis. Lanalyse de lapplication est une version amliore de lanalyse que vous
avez cre dans la partie prcdente.
Pour ouvrir ce projet sous WINDEV:
1.Si ncessaire, fermez le projet en cours pour faire apparatre la fentre de bienvenue.
2.Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Application complte (Exercice)".

Avant de commencer dvelopper lapplication, arrtons-nous un instant sur lanalyse associe


au projet "WD Application complte".

138 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour afficher lanalyse lie au projet, cliquez sur parmi les boutons daccs rapide.
Lditeur danalyses saffiche:

Cette analyse contient la description de 5 fichiers de donnes:


Client,
Commande,
LigneCommande,
Produit,
ModeRglement.
Cette analyse est volontairement simple et permet de grer un cas classique de gestion de com-
mandes.
Fermez lditeur danalyses (cliquez sur la croix en haut droite du menu).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 139
Projets corrigs
Vous hsitez sur le rsultat obtenir? Ou vous navez pas le temps de raliser toutes les manipu-
lations? Un projet corrig de lapplication est disponible.
Lapplication que nous allons raliser ensemble tant relativement longue (cest une application
complte qui va nous permettre de dcouvrir les principales fonctionnalits de WINDEV), nous
vous proposons deux projets corrigs:
Un projet corrig correspondant aux leons 3.2 3.4. Ce projet contient toutes les fentres
ralises dans ces leons.
Pour utiliser ce projet corrig:
1.Si ncessaire, fermez le projet en cours pour faire apparatre la fentre de bienvenue.
2.Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Application complte (Avec fentres)".
Un projet corrig correspondant aux leons 3.5 3.9. Ce projet contient la totalit de lapplica-
tion propose.
Pour utiliser ce projet corrig:
1.Si ncessaire, fermez le projet en cours pour faire apparatre la fentre de bienvenue.
2.Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Application complte (Corrig)".

140 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.2. Fentres dajout et de
modification

Ce que vous allez apprendre dans cette leon...

Cration dune fentre de menu listant les produits.


Cration dune fiche produit.
Gestion de lajout et de la modification dun produit.

Dure estime: 50 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 141
Prsentation
Nous allons crer les diffrentes fentres permettant de lister, ajouter, modifier des produits. Ces
manipulations vous feront dcouvrir plusieurs aspects de la gestion des fichiers de donnes et
vous feront galement utiliser certaines fonctionnalits bien utiles de WINDEV.

Si vous navez pas ouvert le projet "WD Application Complte" dans la leon prcdente:
1.Si ncessaire, fermez le projet en cours pour faire apparatre la fentre de bienvenue.
2.Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Application complte (Exercice)".
Astuce: si la fentre de bienvenue nest pas affiche, sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "Application com-
plte (Exercice)".

Un projet corrig est disponible. Ce projet contient les diffrentes fentres


Corrig

cres dans cette leon. Pour ouvrir le projet corrig, sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Avec fentres)".

Cration dune fentre listant les produits


Pour crer la fentre listant les produits, nous allons tout dabord crer une fentre vierge, puis
ajouter tous les champs: nous verrons ainsi toutes les tapes ncessaires la cration dune
telle fentre.

Cration de la fentre

Pour crer une fentre listant les produits:


1.Crez une nouvelle fentre vierge.
Cliquez sur parmi les boutons daccs rapide (ou utilisez le raccourci CTRL N).
La fentre de cration dun nouvel lment saffiche : cliquez sur "Fentre" puis sur "Fe-
ntre".
Dans lassistant, cliquez sur longlet "Base sur un modle" et choisissez "Utiliser: FEN-
MOD_Modle". Validez.

142 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les modles de fentres
Un modle de fentres permet de donner un look homogne aux diffrentes
fentres dune application.
Un modle de fentres contient tous les lments graphiques communs len-
semble des fentres de lapplication. Un modle de fentres peut galement
contenir du code. Dans ce cas, ce code sera galement commun toutes les
Notes

fentres de lapplication.
Pour cet exemple nous avons cr le modle de fentres FENMOD_Modle. Ce
modle contient un logo qui apparatra sur toutes les fentres:

2.La nouvelle fentre apparat sous lditeur.


3.Enregistrez la fentre: cliquez sur parmi les boutons daccs rapide.
4.Dans la fentre qui saffiche, indiquez le titre de la fentre: "Menu".

5.Le nom de la fentre (qui sera utilis par exemple en programmation) est automatique-
ment dduit du titre de la fentre. Si ce nom ne vous convient pas, il est possible de le modi-
fier et de spcifier un titre diffrent du nom de la fentre.
6.Validez.

Nous avons appel cette fentre "Menu" car cette fentre est la fentre princi-
Notes

pale de notre application. Elle va servir de menu mais galement afficher des
informations.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 143
Cration des champs
Pour crer la liste des produits, nous allons utiliser un champ Table. Ce champ va tre li au
fichier de donnes "Produit".

Quest-ce quun champ Table?


Il ne faut pas confondre "Table" et "champ Table".
On parle de Table pour une base de donnes de type SQL.
On parle de champ Table pour visualiser en tableau des donnes (ou "browse"
ou encore "feuille de donnes"). Dans ce cas, ces donnes peuvent tre saisies
ou provenir dun fichier de donnes (ou dune table).
Notes

Le champ Table de WINDEV permet de visualiser ou de modifier des donnes:


en mmoire: on parle alors de champ Table mmoire ou champ Table
remplie par programmation.
provenant de fichiers de donnes ou de requtes: on parle alors de champ
Table fichier.
provenant de variables WLangage: on parle alors de champ Table sur
source.

Pour crer le champ Table:


1.Sous le volet "Cration", dans le groupe "Donnes", droulez "Table et liste" et slectionnez
"Table (Verticale)". Le champ en cration suit alors le mouvement de la souris.
2.Cliquez dans la fentre: lassistant de cration du champ Table se lance.
3.Le champ Table que nous sommes en train de crer doit afficher les enregistrements du fi-
chier de donnes "Produit". Dans lassistant, slectionnez loption "Afficher des donnes dun
fichier ou dune requte existante". Passez ltape suivante en cliquant sur la flche en bas
de lassistant.

144 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Lcran suivant de lassistant propose les diffrents fichiers de donnes et les requtes
prsents dans le projet en cours. Dpliez "Analyse" si ncessaire et slectionnez le fichier
"Produit". Passez ltape suivante.

5.Lassistant propose la liste des rubriques prsentes dans le fichier "Produit". Par dfaut,
toutes les rubriques sont coches pour tre affiches dans le champ Table. Dans notre cas,
nous allons afficher toutes les rubriques SAUF lidentifiant "IDProduit", qui correspond liden-
tifiant automatique du fichier de donnes.

Dcochez "IDProduit" et passez ltape suivante.


6.Lassistant propose ensuite de slectionner la rubrique de tri. Cette rubrique va tre utilise
pour trier les donnes affiches dans le champ Table. Les rubriques proposes dans lassis-
tant correspondent des rubriques dfinies comme cls dans lanalyse. Nous allons trier les
produits selon leur libell.

Cliquez sur la ligne "Libell" et passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 145
7.Les crans suivants correspondent des paramtres supplmentaires. Conservez les op-
tions par dfaut jusqu la fin de lassistant puis validez lassistant.
8.Le champ Table est automatiquement cr dans la fentre. Le champ est automatiquement
positionn et agrandi afin doccuper tout lespace disponible dans la fentre.

Arrtons-nous un instant sur le champ que nous venons de crer: les donnes sont dj affiches
dans le champ, mme sous lditeur. Cest le concept du "Live data": le contenu des fichiers de
donnes prsents sur le poste de dveloppement sont utiliss dans les fentres ou les tats ma-
nipuls sous lditeur. Cette fonctionnalit est trs intressante par exemple pour dfinir la taille
des champs prsents dans une fentre.

Test de la fentre

Nous allons tout de suite tester la fentre que nous venons de crer.
1.Cliquez sur parmi les boutons daccs rapide.
2.La fentre apparat automatiquement avec ses donnes en excution.
3.Vous pouvez faire dfiler les produits grce lascenseur (ou laide des flches du clavier).
Mettons-nous quelques instants la place de lutilisateur final pour voir les possibilits du
champ Table en excution.

146 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quelques remarques:
Tout dabord, en excution le champ Table a le mme aspect que sous lditeur: cest la
notion de WYSIWYG ("What You See Is What You Get"): ce que vous voyez correspond ce
que vous obtenez.
Des petits pictogrammes apparaissent en haut des colonnes:
la double flche indique que la colonne peut tre trie (colonne "Rfrence" ou "Libell" par
exemple).

Par exemple, cliquez deux fois successivement sur la colonne "Libell": les donnes
affiches sont tries diffremment. Une flche gauche de la colonne indique que la
colonne est trie ainsi que le sens de tri.
la loupe indique quune recherche peut tre ralise directement dans la colonne.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 147
Par exemple, cliquez sur la loupe de la colonne "Rfrence". Une zone de saisie apparat et
vous permet de saisir la rfrence recherche. Saisissez "REF-010". Automatiquement, le
produit correspondant cette rfrence est affich.

Un menu contextuel est disponible sur le champ Table et sur chacune de ses colonnes. Ce
menu contextuel peut tre affich:
par un clic droit sur la colonne du champ Table.
par clic sur la flche situe lextrmit des enttes de colonnes.
Ce menu contextuel permet notamment dexporter le contenu du champ Table au format
Excel, de limprimer, ...

En quelques minutes, nous venons de voir et de tester quelques fonctionnalits qui sont automa-
tiquement incluses avec le champ Table. Vous navez rien programmer pour proposer ces fonc-
tionnalits vos utilisateurs. Ces fonctionnalits sont appeles "FAA" (Fonctionnalits Automa-
tiques de lApplication).

148 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
De nombreux champs proposent des FAA par dfaut. Si ces fonctionnalits ne
Notes doivent pas tre proposes (pour des raisons de scurit ou de confidentialit),
il est possible de les dsactiver sous lditeur ou par programmation. Pour plus
de dtails, consultez laide en ligne (mot-cl: "Fonctionnalits automatiques de
lapplication").

Avoir la liste des produits, cest bien, mais pouvoir modifier un produit, cest mieux. Maintenant,
nous allons crer une fentre affichant le dtail du produit afin de pouvoir le modifier.
Fermez la fentre en cours de test grce la croix situe en haut de lcran. Lditeur de
WINDEV rapparat.

Cration dune fentre "Fiche produit"

Cration de la fentre

Pour crer une fentre affichant le dtail dun produit:


1.Ouvrez si ncessaire le projet "WD Application Complte".
2.Crez une nouvelle fentre vierge.
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Fentre" puis sur "Fe-
ntre".
Lassistant de cration de fentres se lance.
Dans longlet "Base sur un modle", choisissez "Utiliser: FENMOD_Modle" et validez las-
sistant.
3.Enregistrez la fentre ( ou CTRL S). Cette fentre a pour titre "Fiche du produit", son nom
"FEN_Fiche_du_produit" est automatiquement propos. Validez la fentre de sauvegarde.

Cration des champs de saisie


La fentre que nous allons crer est destine afficher les caractristiques du produit slec-
tionn dans le champ Table. Ce type de fentre est appel une "Fiche" simplement car elle corres-
pond une fiche descriptive de llment voulu.
Dans notre cas, cette fentre va afficher le contenu des diffrentes rubriques prsentes dans le
fichier de donnes "Produit".
Pour crer les champs dans la fentre:
1.Affichez si ncessaire le volet "Analyse": sous le volet "Accueil", dans le groupe "Environne-
ment", droulez "Volets" et slectionnez "Analyse". Les diffrents fichiers de donnes dcrits
dans lanalyse "WD Application Complte" apparaissent dans le volet.
2.Cliquez sur licne gauche du fichier "Produit": les rubriques du fichier de donnes
sont listes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 149
3.Slectionnez laide de la souris lensemble des rubriques affiches dans le volet (sauf la
rubrique "IDProduit"). Vous pouvez par exemple utiliser la multislection en maintenant la
touche [CTRL] enfonce.
4.Effectuez un "Drag and Drop" (glisser/dplacer) de ces rubriques vers la fentre que vous
venez de crer.

5.Diffrents champs sont automatiquement crs dans la fentre. Ces champs sont automa-
tiquement lis la rubrique correspondante dans le fichier de donnes. Pour le vrifier:
Slectionnez par exemple le champ "Rfrence".
Affichez le menu contextuel (clic droit) et slectionnez loption "Description".

150 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Affichez longlet "Liaison" de la fentre de description:

Cet onglet permet de voir que le champ de saisie en cours est li la rubrique "Rfrence" du
fichier de donnes "Produit".
6.Fermez la fentre de description.
7.Enregistrez la fentre.
Repositionnez les champs dans la fentre et redimensionnez la fentre afin dobtenir
linterface suivante:

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 151
Cration des boutons
La fentre "FEN_Fiche_du_produit" va permettre dajouter un nouveau produit ou encore de modi-
fier un produit prsent dans la liste.
Nous allons tout de suite ajouter un bouton de validation et un bouton dannulation.
Pour crer le bouton "Valider":
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton" (cliquez sur la
flche situe sous ).
2.La liste des boutons prdfinis saffiche.
3.Cliquez sur "Valider": la forme du bouton apparat sous la souris.
4.Cliquez ensuite droite des champs de saisie pour crer le bouton.
Ajoutez le bouton "Annuler" en utilisant le mme principe.
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton" (cliquez sur la
flche situe sous ).
2.Dans la liste des boutons prdfinis, cliquez sur "Annuler": la forme du bouton apparat
sous la souris.
3.Cliquez ensuite en dessous du bouton "Valider" pour crer le bouton.

Amliorations de linterface de la fentre


Cette fentre tant une fentre relativement simple, essayons damliorer son interface. De nom-
breux petits dtails peuvent vite devenir gnants pour lutilisateur, alors autant les traiter ds le
dbut.

Alignement des champs

Une des premires optimisations faire consiste aligner les champs et leur donner la
mme taille:
1.Slectionnez le champ "Libell" puis tous les autres champs de saisie de la fentre (par
exemple en maintenant la touche [CTRL] appuye et en cliquant sur les diffrents champs). Le
premier champ slectionn va servir de rfrence pour la taille des autres champs.
2.Dans le ruban, affichez le volet "Alignement" de WINDEV. Ce volet contient toutes les op-
tions dalignement disponibles pour les champs.

152 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3.Nous voulons que les bords externes et internes des champs soient aligns. Cliquez sur
loption "Justifier (Int. et Ext.)".

Si vous ne savez pas quel alignement choisir, survolez les diffrentes options
proposes par le volet "Alignement" de WINDEV. Lors du survol avec la souris
dune option, les champs slectionns dans la fentre sont automatiquement
Notes

positionns et/ou redimensionns en fonction de loption survole.


Si le positionnement vous convient, il suffit de cliquer sur loption.
Si le positionnement ne vous convient pas, il suffit de cliquer dans la fentre: les
champs sont replacs leur position dorigine.

Gestion des ancrages

Voyons maintenant le rendu visuel de notre fentre:


1.Sous le volet "Modification", dans le groupe "Aperu", cliquez sur "Aperu". Ce mode dexcu-
tion permet dafficher uniquement linterface de la fentre. Les diffrents codes ne sont pas
excuts.
2.Agrandissez la fentre laide de la poigne dagrandissement au bas de la fentre. La
position des champs nest pas modifie et la fentre affiche une grande zone vide. Pour rem-
dier ce problme, deux possibilits:
Interdire le redimensionnement de la fentre
Grer les ancrages, cest--dire grer le comportement des champs lors dun redimension-
nement de la fentre. Cest ce que nous allons faire.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 153
3.Fermez laperu: cliquez soit sur le bouton "Fermer" de la tlcommande, soit sur la croix
en haut droite de la fentre.

Comment grer les ancrages dans une fentre?


Pour grer les ancrages:
1.Sous lditeur, rduisez la fentre sa taille minimale. Tous les bords ext-
Notes

rieurs de la fentre doivent tre "colls" un champ.


2.Passez les champs en revue un un et posez-vous la question suivante
"Comment doit ragir le champ lors de lagrandissement de la fentre?". Ap-
pliquez alors lancrage correspondant.

Pour cette fentre, nous allons dfinir les ancrages ensemble:


1.Les boutons "Valider" et "Annuler" doivent toujours tre colls droite.
Slectionnez ces deux champs.
Affichez le menu contextuel (clic droit) et slectionnez loption "Ancrage".
Dans la fentre de dfinition des ancrages, slectionnez loption "Droite" et validez.

154 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Des petites flches rouges apparaissent sous lditeur indiquant que les champs sont an-
crs droite.
2.Les champs de saisie doivent sagrandir en largeur:
Slectionnez les 4 champs de saisie.
Affichez le menu contextuel (clic droit) et slectionnez loption "Ancrage".
Dans la fentre de dfinition des ancrages, slectionnez loption "Largeur" ( ).
Validez.
3.Nous allons tester nouveau le fonctionnement de cette fentre en aperu:
Sous le volet "Modification", dans le groupe "Aperu", cliquez sur "Aperu".
Agrandissez la fentre: les champs suivent bien lagrandissement en largeur.
Maintenant, il reste dfinir le fonctionnement lors de lagrandissement en hauteur.
4.Le champ "Description" peut contenir une description du produit plus ou moins importante.
Cest le champ le plus important de la fentre: il est ncessaire quil occupe le maximum de
place disponible. Appliquez-lui un ancrage en largeur et hauteur ( ).
5.Le champ "Prix HT" est automatiquement encadr en rouge: lditeur de fentres indique
un problme dancrage. En effet, si le champ "Description" stire vers le bas, le champ "Prix
HT" doit lui aussi se dplacer de la mme manire vers le bas.
6.Ouvrez la fentre des ancrages du champ "Prix HT". Lancrage idal est automatiquement
propos: "Largeur et bas" (une coche verte est prsente). Slectionnez lancrage propos et
validez.
7.Nous allons tester nouveau le fonctionnement de cette fentre en aperu:
Sous le volet "Modification", dans le groupe "Aperu", cliquez sur "Aperu".
Agrandissez la fentre: les champs suivent bien lagrandissement en largeur et en hauteur.

8.Fermez laperu de la fentre pour revenir sous lditeur.


9.Enregistrez la fentre ( ou CTRL S).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 155
Affichage de la fiche depuis la liste des produits
Nous allons maintenant voir comment afficher la fiche du produit slectionn dans la liste des
produits. Le principe est simple: lutilisateur slectionnera le produit dans le champ Table et affi-
chera le dtail grce un bouton.
Nous allons tout dabord modifier la fentre "FEN_Menu" afin de crer un bouton de modifi-
cation:
1.Placez-vous sur la fentre "Menu": cliquez sur le bouton "FEN_Menu" dans la barre des bou-
tons:

2.Actuellement, le champ Table occupe la totalit de la fentre. Agrandissez la taille de la fe-


ntre vers la droite. Le champ Table sagrandit galement grce au mcanisme de lancrage.
3.Diminuez la largeur du champ Table afin que toutes les colonnes soient affiches.
Slectionnez le champ laide de la souris: des poignes apparaissent tout autour du
champ.
Slectionnez la poigne droite du champ avec la souris pour diminuer la taille du champ.
4.Nous avons maintenant de la place droite de la table pour crer le bouton de visualisation
du produit.
Pour crer le bouton de visualisation du produit:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton" (cliquez sur la
flche situe sous ).
2.Dans la liste des boutons prdfinis, cliquez sur "Modifier". La forme du bouton apparat
sous la souris. Cliquez ensuite droite du champ Table pour crer le bouton.

3.Faites un clic droit sur le bouton et dans le menu qui saffiche, slectionnez loption "Code".
4.Dans la fentre de code qui apparat, saisissez le code suivant dans le traitement "Clic sur":
Ouvre(FEN_Fiche_du_produit)

Laissez-vous guider par lassistance la saisie de code (galement appele


"compltion"): ds que vous allez taper la parenthse ouvrante "(", une liste d-
roulante va souvrir proposant le nom de toutes les fentres existantes dans le
Notes

projet. Il suffit de slectionner la fentre au clavier ou la souris.


Si vous ne trouvez pas le nom de la fentre que vous cherchez dans la liste, cest
que celle-ci na pas t sauvegarde prcdemment.

5.Examinons ce code: la fonction Ouvre permet douvrir la fentre "FEN_Fiche_du_produit".


Nous avons dj vu cette fonction dans la premire partie de ce cours.

156 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
6.Enregistrez les modifications en cliquant sur parmi les boutons daccs rapide.
7.Fermez la fentre de code (cliquez sur la croix en haut droite de lditeur de code).
Nous allons maintenant modifier la fentre "FEN_Fiche_du_produit" pour afficher le produit slec-
tionn dans le champ Table.
Affichez la fentre "FEN_Fiche_du_produit" sous lditeur: cliquez sur le bouton correspon-
dant dans la barre de boutons.
Pour afficher les donnes du produit:
1.Affichez les traitements associs la fentre:
Dans la zone ct de la fentre (appele "Zone daccueil"), faites un clic droit de souris.
Dans le menu contextuel qui saffiche, slectionnez "Code".
Lditeur de code apparat.
2.Dans le traitement "Fin dinitialisation de FEN_Fiche_du_produit", saisissez le code suivant:
// Affecte le contenu des rubriques aux champs
FichierVersEcran()

La fonction FichierVersEcran permet dafficher dans les champs les donnes prsentes dans le
fichier de donnes, pour lenregistrement en cours. Dans notre cas, lenregistrement en cours
sera lenregistrement slectionn dans le champ Table de la fentre "FEN_Menu".
3.Fermez la fentre de code.
4.Enregistrez la fentre.
Affichez la fentre "FEN_Menu" sous lditeur: cliquez sur le bouton correspondant dans la
barre de boutons.
Testez la fentre ( parmi les boutons daccs rapide).
Dans la liste des produits, cliquez sur un des produits avec la souris.
Cliquez sur le bouton "Modifier llment".
La fentre de dtail du produit saffiche.
Fermez les fentres en utilisant la croix (x) en haut droite des fentres.
Gestion de la modification dun produit
Nous allons maintenant modifier la fentre "FEN_Fiche_du_produit" afin de grer la modification
dun produit.
Nous allons:
permettre lutilisateur de modifier limage du produit.
ajouter des boutons pour enregistrer ou annuler les modifications effectues dans la fiche.

Modification de limage du produit


Lutilisateur va pouvoir modifier limage du produit dans la fiche Produit. Pour cela, nous allons lui
proposer un bouton "Modifier" situ en dessous de limage du produit. Ce bouton ouvrira un slec-
teur de fichiers permettant de slectionner limage utiliser.
Tout dabord, affichez si ncessaire la fentre "FEN_Fiche_du_produit" sous lditeur: cliquez
sur le bouton correspondant dans la barre de boutons.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 157
Pour crer le bouton de modification:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton" : la liste des bou-
tons prdfinis saffiche. Cliquez sur "Modifier".
2.La forme du bouton apparat sous la souris. Cliquez ensuite dans la fentre, sous limage
du produit.
3.Redimensionnez si ncessaire le bouton ( laide des poignes) pour que le bouton ait la
mme largeur que le champ Image.
Notes

Lors du redimensionnement du champ, un effet de magntisme automatique


simplifie lalignement du bouton avec le champ Image.

4.Faites un clic droit sur le bouton. Dans le menu qui saffiche, slectionnez loption "Code".
5.Dans la fentre de code qui apparat, saisissez le code suivant dans le traitement "Clic sur":
fSlecteurImage(

6.Lditeur de code propose un assistant de code.


Cliquez sur "Assistant de la fonction fSlecteurImage".
Lassistant de code se lance.

WINDEV propose de nombreux assistants de code qui laide de questions


Notes

simples vont crire la ou les ligne(s) de code correspondant. Nhsitez pas les
utiliser, vous viterez ainsi des erreurs de syntaxe.

7.Conservez toutes les options par dfaut de lassistant et validez. Le code correspondant est
automatiquement insr.
sFichier est une chane

// Ouvre le slecteur dimages


sFichier = fSlecteurImage(, , Slectionnez une image...)

158 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8.Ajoutez le code suivant la suite:
// Si un fichier a t slectionn
SI sFichier <> ALORS
// Affecte limage au champ Image
IMG_Visuel = sFichier
FIN

Ce code permet daffecter le fichier slectionn au champ Image prsent dans la fentre.
9.Fermez lditeur de code (cliquez sur la croix en haut droite de lditeur de code).
Nous testerons cette fonctionnalit lorsque la gestion des modifications effectues dans la fiche
sera finie.

Validation des modifications du produit


Nous avons dj cr 2 boutons dans la fentre "FEN_Fiche_du_produit":
un bouton "Valider" pour grer la validation des modifications
un bouton "Annuler" pour grer le retour la liste des produits.
Nous allons maintenant saisir le code WLangage ncessaire leur fonctionnement.
Tout dabord, affichez si ncessaire la fentre "FEN_Fiche_du_produit" sous lditeur: cliquez
sur le bouton correspondant dans la barre de boutons.
Nous allons maintenant saisir le code du bouton "Valider".
1.Faites un clic droit sur le bouton puis slectionnez loption "Code" dans le menu contextuel.
2.Dans le traitement "Clic sur", saisissez le code suivant:
EcranVersFichier()
HModifie(Produit)
Ferme()
Examinons ce code:
La fonction EcranVersFichier permet dinitialiser les rubriques avec les valeurs des champs
lis, pour lenregistrement courant. Cette fonction est donc quivalente aux lignes sui-
vantes:
Produit.Rfrence = SAI_Rfrence
Produit.Libell = SAI_Libell
Produit.Description = SAI_Description
...

Notre fentre utilise moins de 10 champs et dj lavantage se fait sentir; pensez simple-
ment aux fentres qui contiennent plusieurs dizaines de champs: 1 seule ligne de code ef-
fectue toutes les affectations!
La fonction HModifie permet de mettre jour les donnes du fichier de donnes pour lenre-
gistrement courant.
3.Enregistrez les modifications en cliquant sur parmi les boutons daccs rapide.
4.Fermez la fentre de code (cliquez sur la croix en haut droite de lditeur de code).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 159
Les modifications ralises dans la fentre "Fiche du produit" doivent tre prises en compte
dans le champ Table listant les produits. Pour cela, nous allons simplement modifier le code
du bouton "Modifier" dans la fentre "FEN_Menu".
1.Affichez la fentre "FEN_Menu" sous lditeur: cliquez sur le bouton correspondant dans la
barre de boutons.
2.Slectionnez le bouton "Modifier" et affichez lditeur de code (option "Code" du menu
contextuel du bouton).
3.Modifiez le traitement "Clic sur" de la manire suivante:
Ouvre(FEN_Fiche_du_produit)
TableAffiche(TABLE_Produit, taCourantBandeau)

Examinons ce code:
La fonction TableAffiche permet de mettre jour le champ Table.
La constante taCourantBandeau permet de spcifier que le champ Table doit tre mis jour
partir de la position du bandeau de slection.
4.Enregistrez les modifications en cliquant sur parmi les boutons daccs rapide.
5.Fermez la fentre de code (cliquez sur la croix en haut droite de lditeur de code).

Test de la modification dun produit

Pour tester la modification dun produit:


1.Lancez le test du projet ( parmi les boutons daccs rapide).

2.WINDEV demande de slectionner la premire fentre du projet. Dans notre cas, cette fe-
ntre correspond "FEN_Menu". Slectionnez cette fentre et validez.

La premire fentre du projet correspond la premire fentre ouverte au lance-


ment de lapplication.
La premire fentre du projet peut tre dfinie:
lors dun test du projet.
Notes

lors de la cration de lexcutable.


sous lexplorateur de projet: il suffit de slectionner la fentre voulue, daffi-
cher le menu contextuel et de slectionner loption "Premire fentre du pro-
jet".
Lorsquune premire fentre du projet est dfinie, un petit 1 rouge apparat de-
vant le nom de la fentre sous lexplorateur de projet.

3.Dans la liste des produits, slectionnez un produit dans le champ Table (par exemple le
premier) et cliquez sur le bouton "Modifier".
4.Le dtail du produit slectionn apparat dans la fentre fiche.
5.Modifiez le prix de 100,23euros et saisissez 200,00euros puis ensuite cliquez sur le bou-
ton "Valider".

160 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
6.De retour sur la liste des produits, vous pouvez constater que le prix de cet article a t mis
jour.
7.Affichez nouveau le dtail du produit.
8.Cliquez sur le bouton "Modifier" sous limage. Le slecteur dimages saffiche. Slectionnez
une image et validez. Limage apparat dans la fiche.
9.Cliquez sur le bouton "Annuler". La modification de limage na pas t prise en compte
dans le fichier de donnes.
10.Fermez lapplication en cliquant sur la croix.

Cration dun nouveau produit


Le principe de la cration dun produit va tre le suivant:
Dans la fentre de la liste des produits, nous allons ajouter un bouton "Nouveau" qui va per-
mettre douvrir la fentre "Fiche du produit".
Nous modifierons ensuite le code de la fentre "Fiche du produit" pour grer lajout dans le
fichier de donnes Produit.

Ajout dun bouton

Pour ajouter un bouton "Nouveau" dans la fentre "FEN_Menu":


1.Affichez la fentre "FEN_Menu" sous lditeur: cliquez sur le bouton correspondant dans la
barre de boutons.
2.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton" et slectionnez
"Nouveau".
3.La forme du bouton apparat sous la souris. Cliquez ensuite dans la fentre: le bouton est
cr.
4.Positionnez le bouton au-dessus du bouton "Modifier" (si ncessaire modifiez la position du
bouton "Modifier").

5.Modifiez le code de ce bouton:


Faites un clic droit sur le bouton puis slectionnez loption "Code" dans le menu contextuel.
Dans le traitement "Clic sur", saisissez le code suivant:

HRAZ(Produit)
Ouvre(FEN_Fiche_du_produit)
TableAffiche(TABLE_Produit, taCourantEnreg)

Examinons ce code:
La fonction HRAZ initialise les variables des rubriques du fichier "Produit" avec les valeurs
par dfaut pour grer un nouvel enregistrement.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 161
La fonction Ouvre permet douvrir la fiche du produit pour saisir le nouvel enregistrement.
La fonction TableAffiche permet de rafficher le champ Table. Dans ce code, la constante
taCourantEnreg est utilise: le champ Table est raffich partir de lenregistrement cou-
rant.
6.Enregistrez les modifications en cliquant sur parmi les boutons daccs rapide.
7.Fermez la fentre de code (cliquez sur la croix en haut droite de lditeur de code).

Ajout dans le fichier de donnes

Maintenant, nous allons modifier la fentre de la fiche du produit pour grer lajout dun
nouvel enregistrement.
1.Affichez la fentre "FEN_Fiche_du_produit" sous lditeur.
2.Nous allons modifier le code du bouton de validation:
Faites un clic droit sur le bouton "Valider" puis slectionnez loption "Code" dans le menu
contextuel.
Dans le traitement "Clic sur", remplacez le code par le code suivant:
EcranVersFichier()
SI Produit..NouvelEnregistrement ALORS
HAjoute(Produit)
SINON
HModifie(Produit)
FIN
Ferme()
Examinons ce code:
La proprit ..NouvelEnregistrement permet de savoir si lenregistrement en cours doit tre
cr.
Si la fonction HRAZ a t appele prcdemment, la proprit renvoie Vrai (cas du clic sur
"Nouveau produit") et lenregistrement doit tre cr par la fonction HAjoute.
Dans le cas contraire, lenregistrement en cours existe dj et doit tre modifi par la fonc-
tion HModifie.
La fonction HAjoute ajoute lenregistrement dans le fichier de donnes. Cette fonction prend
les valeurs en mmoire et crit le contenu des rubriques du fichier dans le fichier de don-
nes lui-mme. Les index sont immdiatement et automatiquement mis jour. Ici, le fichier
de donnes mis jour est bien entendu le fichier "Produit".

Le code de test du nouvel enregistrement peut tre remplac par la fonction


HEnregistre. Cette fonction permet de tester si lenregistrement est dj prsent
dans le fichier de donnes, et selon le cas elle permet soit de lajouter, soit de le
Notes

modifier. Le code devient alors:


EcranVersFichier()
HEnregistre(Produit)
Ferme()

3.Enregistrez les modifications en cliquant sur parmi les boutons daccs rapide.
4.Fermez la fentre de code (cliquez sur la croix en haut droite de lditeur de code).

162 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Test de lajout dun produit

Pour tester lajout dun produit:


1.Lancez le test du projet ( parmi les boutons daccs rapide).
2.Dans la liste des produits, cliquez sur le bouton "Nouveau".
3.Saisissez un nouveau produit avec les caractristiques suivantes:
Rfrence: REF-337
Libell: Surf WD
Description: Surf aux couleurs de WinDev
Prix: 150

4.Validez. Le nouveau produit apparat dans la liste des produits.


5.Cliquez nouveau sur le bouton "Nouveau".
6.Saisissez un nouveau produit avec les caractristiques suivantes:
Rfrence: REF-337
Libell: Surf WB
Description: Surf aux couleurs de WebDev
Prix: 150
7.Validez. Une fentre spcifique apparat:

Cette fentre signale lutilisateur quil existe un doublon: en effet, la rfrence (qui est une
cl unique) est identique pour deux produits. Cette fentre permet de modifier la valeur de la
rfrence: saisissez par exemple "REF-338".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 163
Cette fentre est une des fentres de gestion automatique des erreurs HFSQL, disponible en stan-
dard.

Lors de lajout ou de la modification dun enregistrement, plusieurs types der-


reurs peuvent survenir: erreur de doublons, erreur dintgrit, erreur de mot de
passe, ...
WINDEV propose plusieurs modes de gestion de ces erreurs:
le mode automatique: pour chaque erreur rencontre lors de la gestion des
enregistrements de la base de donnes, une fentre spcifique est affiche
Notes

lutilisateur. Cette fentre permet lutilisateur de modifier directement ses


donnes.
le mode programm avanc: pour chaque erreur rencontre lors de la gestion
des enregistrements de la base de donnes, une procdure ou une fentre
personnalise de gestion des erreurs est appele.
Lexemple didactique "Detection Erreurs" livr avec WINDEV permet de tester ces
diffrents modes de gestion des erreurs. Cet exemple peut tre ouvertpar la
fentre de bienvenue de WINDEV (CTRL >), via loption "Ouvrir un exemple".

Visualiser les enregistrements saisis


Les nouveaux enregistrements que nous avons saisis peuvent tre visualiss immdiatement
dans le champ Table de la fentre "FEN_Menu".
Mais dans certains cas, lors de tests par exemple, il peut tre ncessaire de voir directement le
contenu du fichier de donnes.
WINDEV propose un outil simple permettant de voir le contenu des fichiers de donnes pendant
le dveloppement de lapplication (lorsque par exemple, les fentres de visualisation nont pas
encore t cres).
Cet outil sappelle WDMAP. Nous allons lutiliser pour voir le contenu du fichier Produit.
Pour lancer WDMAP:
1.Sous le volet "Outils", dans le groupe "Base de donnes", cliquez sur "WDMap".
2.Slectionnez le fichier "Produit". Le contenu du fichier de donnes saffiche.

3.En triant les lments par rfrence (cliquez sur lentte de la colonne "Rfrence"), les
deux enregistrements que nous avons ajouts apparaissent.

164 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.3. Recherche simple et
parcours des enregistrements

Ce que vous allez apprendre dans cette leon...

Gestion de la recherche denregistrements


Parcours des enregistrements

Dure estime: 30 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 165
Prsentation
Nous avons gr lajout et la modification denregistrement. Cest bien. Mais ce serait encore
mieux de pouvoir rechercher un enregistrement (pour le modifier par exemple). Cest ce que nous
allons faire maintenant.
Nous allons modifier la fentre principale de lapplication "WD Application Complte" pour utiliser
des volets donglet.
Le premier onglet permettra dafficher la liste des produits et de grer lajout et la modification
des produits (les manipulations ont t ralises dans les leons prcdentes).
Le second onglet proposera la recherche dun client selon son nom. La fiche du client sera affi-
che dans longlet.
Nous allons mettre en place deux modes de recherche:
une recherche lidentique,
une recherche gnrique.

Ensuite, il sera possible de parcourir les enregistrements prsents dans le fichier de donnes
partir du client affich.

Un projet corrig est disponible. Ce projet contient les diffrentes fentres


Corrig

cres dans cette leon. Pour ouvrir le projet corrig, sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Avec fentres)".

166 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Modification de la fentre: utilisation dun champ Onglet
Dans cet exemple, la recherche ne va pas seffectuer dans une nouvelle fentre: nous allons utili-
ser la fentre FEN_Menu. Actuellement, cette fentre affiche la liste des produits.
Pour afficher plusieurs donnes diffrentes dans cette fentre, nous allons utiliser des onglets.
Les onglets permettent de regrouper des informations par thme. Lutilisateur peut accder direc-
tement un thme en cliquant sur le "volet" voulu.
Ce systme est utilis dans toutes les fentres de description de WINDEV.

Cration du champ Onglet

Pour afficher les donnes de la fentre "FEN_Menu" dans un onglet:


1.Affichez si ncessaire la fentre "FEN_Menu":
soit depuis la barre des boutons.
soit en double-cliquant sur son nom dans lexplorateur de projet.
2.Slectionnez les champs de la fentre et dplacez-les dans la zone daccueil de la fentre.
Cette manipulation peut sembler "bizarre", mais ainsi il sera plus simple de travailler sur le
champ Onglet puis dassocier les champs longlet voulu.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 167
3.Crez un champ Onglet dans la fentre:
Sous le volet "Cration", dans le groupe "Conteneurs", droulez "Onglet et associs" et slec-
tionnez "Onglet".
Cliquez dans la fentre pour crer le champ Onglet.
Positionnez le champ Onglet en haut gauche de la fentre.
Par dfaut, un champ Onglet est cr avec deux volets. Le champ Onglet occupe toute la
place disponible dans la fentre.
4.Slectionnez les champs prsents dans la zone daccueil de la fentre et dplacez-les vers
le volet 1.
5.Un cadre vert apparat lors du survol des champs sur le champ Onglet. Ce cadre indique
que les champs poss sur le volet en cours seront automatiquement associs au volet.
6.Agrandissez si ncessaire la fentre et le champ Onglet pour afficher le champ Table et les
boutons dans le champ Onglet.

Manipulations de champs dans un champ Onglet:


Pour vrifier que tous les champs sont bien associs au volet donglet en
cours, cliquez sur un autre volet donglet : tous les champs associs longlet
Notes

disparaissent.
Pour redimensionner le champ Onglet sans prendre en compte lancrage des
champs prsents dans le volet, utilisez la touche [SHIFT] pendant le redimen-
sionnement.

168 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Modifications du champ Onglet

Modifiez le nom du champ Onglet:


1.Double-cliquez sur le champ Onglet que vous venez de crer: la fentre de description du
champ saffiche.
2.Modifiez le nom du champ. Le champ a pour nom "ONG_Visualisation".
3.Validez la fentre de description du champ.
Deux volets sont crs par dfaut. Nous allons modifier leur libell directement:
1.Slectionnez le champ Onglet.
2.Cliquez sur "Volet 1". Le volet passe en dition: saisissez le libell "Liste des produits".
Validezavec la touche [ENTREE].

3.Cliquez sur "Volet2". Le volet saffiche. Cliquez nouveau sur "Volet 2". Saisissez le libell
"Recherche de clients". Validez avec la touche [ENTREE].
Nous allons associer une image chaque volet de longlet. Pour cela:
1.Affichez la fentre de description du champ Onglet (double-clic sur le champ par exemple).
Longlet "Gnral" de la fentre de description permet de configurer les caractristiques de
chaque volet donglet. La liste des volets est affiche gauche. Pour chaque volet slectionn,
ses caractristiques sont modifiables dans la partie droite de lcran.
2.Dans la fentre de description, slectionnez le volet "Liste des produits".

3.Les caractristiques du volet sont affiches.

4.Nous allons associer une image longlet grce au catalogue dimages de WINDEV.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 169
Notes Ds quune image peut tre affiche dans un champ ou une fentre, WINDEV
propose dutiliser le catalogue dimages grce au bouton "Catalogue". Ce cata-
logue contient plusieurs milliers dimages, de cliparts, ...

5.Cliquez sur le bouton "Catalogue". La fentre du catalogue dimages apparat.


6.Slectionnez le thme Flat Soft dans la combo Thme, puis saisissez "Produit" dans la
zone de recherche. Lancez la recherche en cliquant sur la loupe.

7.Slectionnez limage et validez (bouton vert).


8.Lcran de paramtrage de limage gnre apparat. Cet cran permet de modifier les ca-
ractristiques de limage gnrer: taille, luminosit, ... Conservez les options par dfaut et
validez.
9.Limage est gnre dans le rpertoire du projet et le fichier correspondant est automati-
quement associ llment en cours.
10.Dans la fentre de description, cliquez sur "Recherche de clients" dans la liste des volets
statiques.
11.Dans la zone droite de la fentre, cliquez sur le bouton "Catalogue". La fentre du cata-
logue dimages apparat.
12.Dans la zone de recherche, indiquez "Personne" (le thme "Flat Soft" utilis pour notre
dernire recherche est slectionn par dfaut). Lancezla recherche en cliquant sur la loupe.
13.Parmi les images proposes, slectionnez licne prsentant deux personnes ( ) et vali-
dez.
14.Conservez les options de lcran de paramtrage de limage gnre et validez.
15.Validez la fentre de description du champ Onglet.
Nous venons de crer un nouveau champ: il est ncessaire de soccuper de son ancrage
dans la fentre. Lorsque la fentre va sagrandir, il est ncessaire que le champ Onglet
sagrandisse galement pour occuper tout lespace disponible. Le champ doit donc stirer
vers la droite et vers le bas.
1.Slectionnez le champ Onglet.
2.Affichez le menu contextuel (clic droit) et slectionnez loption "Ancrage".
3.Dans la fentre de dfinition de lancrage, slectionnez loption et validez.
4.Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide.

170 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mise en place de la recherche
Nous avons fini de prparer la fentre "FEN_Menu". Nous pouvons maintenant nous concentrer
sur le contenu de longlet de recherche des clients.
Cet onglet va tre divis en plusieurs zones:
Une zone de saisie des lments rechercher.
Une zone daffichage des informations trouves.
Une zone contenant les boutons de parcours.

Zone daffichage des informations trouves


Nous allons tout dabord crer les diffrents champs qui afficheront les informations sur le client
trouv.
Pour crer les champs de saisie dans la fentre, nous allons procder de la mme manire que
pour la fentre fiche du produit: un simple "Drag and Drop" depuis le volet "Analyse".
Pour crer les diffrents champs affichant les informations sur le client:
1.Affichez la fentre FEN_Menu sous lditeur et cliquez sur longlet "Recherche de clients". Le
volet donglet vide apparat.
2.Affichez si ncessaire le volet "Analyse": sous le volet "Accueil", dans le groupe "Environne-
ment", droulez "Volets" et slectionnez "Analyse". Les diffrents fichiers de donnes dcrits
dans lanalyse "WD Application Complte" apparaissent dans le volet.
3.Cliquez sur licne gauche du fichier "Client": les rubriques du fichier de donnes
sont listes.
4.Slectionnez laide de la souris lensemble des rubriques affiches dans le volet. Vous
pouvez par exemple utiliser la multislection en maintenant la touche [CTRL] enfonce.
5.Effectuez un "Drag and Drop" (glisser/dplacer) de ces rubriques vers longlet "Recherche
de clients".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 171
6.Les champs sont automatiquement crs dans longlet. Ces champs sont automatique-
ment lis la rubrique correspondante dans le fichier de donnes.
7.Enregistrez la fentre.
Nous allons aligner les champs et leur donner la mme taille:
1.Slectionnez le champ "Ville" puis tous les autres champs de saisie de la fentre (par exemple
en maintenant la touche [CTRL] appuye et en cliquant sur les diffrents champs). Le premier
champ slectionn va servir de rfrence pour la taille des autres champs.
2.Sous le volet "Alignement", dans le groupe "Interne et externe", cliquez sur loption "Justifier
(Int. et Ext.)".

Testez la fentre ( parmi les boutons daccs rapide). Cliquez sur le volet donglet
"Recherche de clients". La fentre apparat avec tous les champs vides.

Recherche lidentique
Pour effectuer la recherche lidentique, nous allons slectionner le nom du client dans un champ
Combo. Le bouton "Rechercher" permettra dafficher la fiche de la personne correspondante. Une
seule personne correspond au nom slectionn.
Le champ Combo va venir se placer au-dessus des champs que nous venons de crer. Si vos
champs sont placs trop prts de longlet, il est ncessaire de les dplacer vers le bas. Pour
cela:
1.Slectionnez lensemble des champs prsents dans longlet:
Utilisez la combinaison de touches [CTRL] + A: tous les champs de la fentre et du volet en
cours sont slectionns.
Appuyez sur la touche [CTRL].
Cliquez sur longlet: seuls les champs du volet donglet sont slectionns.
2.Dplacez un des champs slectionns vers le bas laide de la souris.

172 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3.Tous les champs sont dplacs vers le bas.
Pour crer le champ de recherche:
1.Crez un champ de type Combo: sous le volet "Cration", dans le groupe "Champs usuels",
cliquez sur "Combo".
2.Cliquez ensuite dans le volet "Recherche de client", dans la zone entre le volet donglet et le
champ "Identifiant de Client".
3.Lassistant de cration des combos saffiche. Nous allons crer une combo base sur le
fichier de donnes "Client".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 173
4.Slectionnez loption "Afficher des donnes dun fichier ou dune requte existante". Pas-
sez ltape suivante de lassistant.
5.Slectionnez le fichier de donnes "Client". Passez ltape suivante.
6.Nous allons afficher le nom et le prnom de la personne.

Dslectionnez la rubrique "IDClient".


Slectionnez la rubrique "NomComplet".
Passez ltape suivante.
7.La rubrique "NomComplet" sera galement utilise pour trier la liste des clients affichs
dans le champ Combo. Slectionnez la rubrique "NomComplet". Passez ltape suivante.

174 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8.La valeur retourne par le champ Combo sera lidentifiant "IDClient". Cest cette valeur qui
sera recherche dans le fichier Client. Slectionnez la rubrique "IDClient" et passez ltape
suivante.

9.Le champ Combo ne sera li aucune rubrique. Conservez loption "Non" et passez
ltape suivante.
10.Validez lcran suivant avec la flche jaune.
11.Donnez un nom au champ (par exemple "COMBO_Client") et un libell (par exemple "Client
recherch").
12.Validez. Positionnez le champ Combo dans la fentre (par exemple en haut gauche).
13.Slectionnez le champ Combo et laide des poignes, modifiez sa taille afin de voir le
nom complet du client safficher.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 175
Pour crer le bouton de recherche:
1.Crez un bouton: sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.Positionnez le bouton ct de la combo qui vient dtre cre.
3.Ce champ a pour nom "BTN_RechercheIdentique" et pour libell "Recherche identique".
4.Si ncessaire, adaptez la taille du bouton pour que le libell apparaisse correctement dans
le bouton.
5.Saisissez le code suivant:
// Recherche le client par son identifiant
HLitRecherchePremier(Client, IDClient, COMBO_Client)
SI HTrouve(Client) ALORS
// Affiche les donnes du client
FichierVersEcran()
FIN

6.Examinons ce code:
La fonction HLitRecherchePremier permet de raliser une recherche lidentique. Dans cet
exemple, la recherche se fait sur le fichier Client et sur la rubrique IDClient. La valeur recher-
che correspond au dernier paramtre de la fonction. Ici, la valeur recherche correspond
la valeur slectionne dans la combo. Cette valeur est obtenue en utilisant directement le
nom de la combo (COMBO_Client).
La fonction HTrouve permet de tester le rsultat de la recherche. Si la fonction HTrouve ren-
voie Vrai, une valeur a t trouve, si la fonction HTrouve renvoie Faux, aucune valeur na
t trouve. Lorsquun enregistrement a t trouv, cet enregistrement est lu: il devient
lenregistrement courant du fichier de donnes.
Dans ce code, si lenregistrement a t trouv, il est affich grce la fonction FichierVersE-
cran.

La fonction FichierVersEcran effectue lopration inverse de la fonction


Note

EcranVersFichier: les donnes prsentes dans les rubriques du fichier de don-


nes sont affiches dans les champs correspondants.

7.Fermez lditeur de code.


8.Enregistrez la fentre.
Ralisons un test de la fentre:
1.Lancez le test de la fentre ( parmi les boutons daccs rapide).
2.Cliquez si ncessaire sur longlet "Recherche de clients".
3.Slectionnez une valeur dans la combo et cliquez sur le bouton de recherche.

176 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Le rsultat est immdiat.
5.Fermez la fentre de test pour retourner sous lditeur.

Recherche gnrique
Nous allons maintenant effectuer une recherche gnrique. Au lieu de rechercher exactement la
valeur saisie, nous allons rechercher tous les lments qui commencent par la valeur saisie.
Pour effectuer cette recherche, nous allons crer un champ de saisie afin de saisir le nom recher-
ch et un bouton pour lancer la recherche.
Pour crer le champ de recherche:
1.Affichez si ncessaire longlet "Recherche de clients" de la fentre "FEN_Menu" sous ldi-
teur.
2.Crez un champ de saisie: sous le volet "Cration", dans le groupe "Champs usuels", cli-
quez sur .
3.Cliquez dans la fentre sous le champ Combo "Client recherch". Le champ de saisie est
cr.
4.Ce champ a pour nom "SAI_Nom_recherch" et pour libell "Nom recherch".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 177
Pour crer le bouton de recherche:
1.Crez un bouton: sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.Positionnez le bouton ct du champ de saisie qui vient dtre cr.

3.Ce champ a pour nom "BTN_RechercheGnrique" et pour libell "Recherche gnrique".


4.Si ncessaire, adaptez la taille du bouton pour que le libell apparaisse correctement dans
le bouton.
5.Saisissez le code suivant:
// Recherche un client par son nom
HLitRecherche(Client, NomComplet, SAI_Nom_Recherch)
SI HTrouve(Client) ALORS
// Affiche les donnes du client
FichierVersEcran()
SINON
Erreur(Aucun client ne correspond)
FIN

La fonction HLitRecherche permet de raliser une recherche gnrique. Dans cet exemple, la
recherche se fait sur le fichier "Client" et sur la rubrique "NomComplet". La valeur recherche
correspond la valeur saisie dans le champ "SAI_Nom_Recherch". Cette valeur est obtenue
en utilisant directement le nom du champ.

Il est possible de faire une recherche lidentique avec la fonction HLitRe-


Note

cherche: il suffit dutiliser la constante hIdentique.

6.Fermez la fentre de code.


7.Enregistrez la fentre.
Ralisons un test de la fentre:
1.Lancez le test de la fentre ( parmi les boutons daccs rapide).
2.Cliquez si ncessaire sur longlet "Recherche de clients".
3.Saisissez une valeur dans le champ de saisie (par exemple "BEEF") et cliquez sur le bouton
de recherche.

178 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Le rsultat est immdiat. Cependant, si plusieurs enregistrements correspondent, seul le
premier est affich.
5.Arrtez le test et revenez sous lditeur.

Parcours des fiches


Nous allons maintenant ajouter quatre boutons permettant de parcourir les diffrents enregistre-
ments du fichier "Client". Ces boutons sont de type "boutons magnto".

Ils sont constitus uniquement dune icne et permettent dafficher:


le premier enregistrement,
lenregistrement prcdent,
lenregistrement suivant,
le dernier enregistrement.
Pour crer le bouton affichant le premier enregistrement du fichier de donnes:
1.Si ncessaire, affichez longlet "Recherche de clients" sous lditeur.
2.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
3.La forme du bouton apparat sous la souris. Cliquez ensuite dans longlet, sous le champ
"Recherche gnrique". Le bouton est automatiquement cr.
Pour uniformiser linterface des fentres dun projet, nous utilisons un gabarit. Ce gabarit
dfinit le style de tous les champs des fentres. Pour chaque bouton magnto, un style
spcifique est dfini. Pour appliquer ce style:
1.Slectionnez si ncessaire le bouton.
2.Affichez le menu contextuel (clic droit) et slectionnez loption "Choisir un style".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 179
3.Dans la fentre qui saffiche, tous les styles dfinis pour les boutons saffichent. Slection-
nez le style "BTN_Premier".
4.Validez.
Modifiez le nom du champ Bouton:
1.Affichez la fentre de description du champ:
Slectionnez le champ Bouton.
Affichez le menu contextuel (clic droit) et slectionnez loption "Description".
2.Ce champ a pour nom "BTN_Premier".
3.Validez la fentre de description.
Nous allons maintenant saisir le code WLangage associ ce champ:
1.Faites un clic droit sur le champ. Dans le menu qui saffiche, slectionnez loption "Code".
2.Dans la fentre de code qui apparat, saisissez le code suivant dans le traitement "Clic sur":
// Lit le premier client
HLitPremier(Client)
SI HEnDehors(Client) = Vrai ALORS
// Pas de client
Info(Aucune fiche visualiser.)
SINON
// Affiche les donnes du client
FichierVersEcran()
FIN

La fonction HLitPremier permet de lire le premier enregistrement du fichier de donnes, selon


la cl utilise pour la dernire recherche (NomComplet dans notre cas).

180 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
De la mme manire, crez 3 nouveaux boutons.
Ces boutons ont pour nom: "BTN_Prcdent", "BTN_Suivant" et "BTN_Dernier".
Ces boutons sont respectivement associs aux styles: "BTN_Prcdent", "BTN_Suivant" et
"BTN_Dernier".
Le code du bouton "BTN_Prcdent" est le suivant:
// Lit le client prcdent
HLitPrcdent(Client)
// Si le dbut du fichier est dpass
SI HEnDehors(Client) = Vrai ALORS
Info(Dbut du fichier atteint.)
SINON
// Affiche les donnes du client
FichierVersEcran()
FIN
Le code du bouton "BTN_Suivant" est le suivant:
// Lit le client suivant
HLitSuivant(Client)
// Si le dbut du fichier est dpass
SI HEnDehors(Client) = Vrai ALORS
Info(Fin du fichier atteinte.)
SINON
// Affiche les donnes du client
FichierVersEcran()
FIN

Le code du bouton "BTN_Dernier" est le suivant:

// Lit le dernier client


HLitDernier(Client)
SI HEnDehors(Client) = Vrai ALORS
// Pas de client
Info(Aucune fiche visualiser.)
SINON
// Affiche les donnes du client
FichierVersEcran()
FIN

Dans ces diffrents codes:


La fonction HLitDernier permet de lire le dernier enregistrement du fichier de donnes, selon la
cl utilise pour la dernire recherche.
La fonction HLitSuivant va lire lenregistrement qui a la valeur de cl immdiatement suprieure
celle de lenregistrement en cours.
La fonction HLitPrcdent va lire lenregistrement qui a la valeur de cl immdiatement inf-
rieure celle de lenregistrement en cours.
Dans tous les cas:
la fonction HEnDehors permet de savoir si le fichier de donnes est vide.
la fonction FichierVersEcran permet dafficher lenregistrement lcran.
Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 181
Test de la fentre

Ralisons un test de la fentre:


1.Lancez le test de la fentre ( parmi les boutons daccs rapide).
2.Cliquez si ncessaire sur longlet "Recherche de clients".
3.Recherchez un client (par exemple, une recherche gnrique sur "BEEF").
4.Parcourez le fichier de donnes en cliquant sur chacun des boutons de parcours.
5.Arrtez le test pour revenir sous lditeur.

182 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.4. Recherche multicritre

Ce que vous allez apprendre dans cette leon...

Cration dune requte paramtre.


Cration de linterface de slection des critres de recherche.
Passage de paramtres une requte.
Affichage du rsultat dune requte dans un champ Table.

Dure estime: 40 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 183
Prsentation
Nous avons vu dans la leon prcdente comment raliser une recherche sur un seul critre (le
nom du client). Dans cette leon, nous allons permettre lutilisateur de faire une recherche mul-
ticritre.
Dans notre exemple, cette recherche se fera sur le fichier "Commande". Lutilisateur pourra slec-
tionner:
ltat de la commande,
son mode de rglement,
les dates de commandes prises en compte.
Linterface de la fentre "FEN_Menu" sera la suivante:

Cette interface est compose:


de champs permettant de slectionner les critres de recherche.
de boutons permettant de lancer la recherche ou dimprimer le rsultat.
dun champ Table permettant dafficher le rsultat de la recherche. Ce champ Table est bas
sur une requte. Cette requte va permettre de slectionner les enregistrements afficher. Le
champ Table listera le rsultat de la recherche.

La premire tape consiste crer la requte de slection des enregistrements.

Quest-ce quune requte de slection?


Une requte de slection est une requte qui va "choisir" uniquement les enre-
Notes

gistrements correspondant aux critres spcifis.


Ce type de requte sappelle une requte de slection car en langage SQL lordre
SELECT est utilis.

184 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Un projet corrig est disponible. Ce projet contient les diffrentes fentres

Corrig
cres dans cette leon. Pour ouvrir le projet corrig, sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Avec fentres)".

Cration de la requte pour rechercher les commandes

Cration de la requte

Pour crer une requte, nous allons utiliser lditeur de requtes.


1.Cliquez sur parmi les boutons daccs rapide. La fentre de cration dun nouvel lment
saffiche: cliquez sur "Requte". Lassistant de cration dune requte se lance.
2.Slectionnez loption "Slection (SELECT)".
En effet, la requte que nous allons crer va nous permettre de slectionner des enregistre-
ments. Passez ltape suivante.
3.La fentre de description de la requte apparat. Nous allons construire la requte en slec-
tionnant les lments que nous voulons dans le rsultat.
4.Double-cliquez sur les rubriques prsentes dans lanalyse gauche de la fentre de des-
cription. Les rubriques prises en compte apparaissent alors au centre de lcran.
Remarque : Pour faire apparatre les rubriques des diffrents fichiers de donnes, il suffit de
cliquez sur le "+" prsent devant le nom du fichier.
Nous voulons afficher:
les renseignements concernant la commande. Droulez le fichier "Commande" (clic sur le
"+") puis double-cliquez sur les rubriques: IDCommande, Date, Etat et TotalHT.
les renseignements concernant le client ayant pass la commande. Droulez le fichier
"Client" (clic sur le "+") puis double-cliquez sur la rubrique "NomComplet".
les renseignements concernant le mode de rglement de la commande. Droulez le fichier
"ModeRglement" (clic sur le "+") puis double-cliquez sur la rubrique "Libell".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 185
La fentre de description de la requte est la suivante:

5.Nous allons trier les donnes par date.


Dans la liste des lments de la requte, slectionnez la rubrique "Commande.Date", puis
cliquez sur le bouton "Trier" et slectionnez loption "Trier sur la rubrique slectionne".

Dans la fentre qui saffiche, indiquez un tri croissant sur la rubrique et validez.

186 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
6.Une flche rouge avec le numro01 apparat droite de la rubrique "Commande.Date".
Cette flche indique quun tri croissant est fait sur cette rubrique. Le chiffre "01" indique que
ce tri sera ralis en premier.

7.Donnez un nom la requte: saisissez "REQ_RechercheCommandes" la place de "REQ_


SansNom1" dans la zone "Nom de la requte":

8.Validez la fentre de description de la requte (bouton vert en bas de lcran).


9.La reprsentation graphique de la requte est affiche:

10.Enregistrez la requte en cliquant sur parmi les boutons daccs rapide.


11.Validez si ncessaire la fentre de sauvegarde de la requte.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 187
Test de la requte
Comme tous les lments dun projet WINDEV, il est possible de tester immdiatement la requte
que nous venons de crer:
1.Cliquez sur .
2.Le rsultat saffiche dans une fentre:

Le rsultat affich liste TOUTES les commandes.


Dans notre cas, nous souhaitons afficher uniquement les commandes correspondant aux
critres de recherche. Pour cela, il est ncessaire dutiliser une requte paramtre.

Si vous faites un clic droit sur le rsultat de la requte, un menu contextuel appa-
rat. Vous avez alors la possibilit dexporter le rsultat vers:
un fichier XLS (Excel).
Notes

un fichier Word ou OpenOffice.


un fichier XML (eXtensible Markup Language).
un fichier texte.
un fichier HFSQL.

3.Fermez la fentre.

188 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Utilisation de paramtres dans la requte
Dans notre exemple, lutilisateur va pouvoir slectionner une valeur pour les critres de recherche
suivants:
Etat de la commande.
Mode de rglement de la commande.
Date de la commande.
Nous devons modifier la requte afin que ces critres de recherche correspondent des para-
mtres de la requte.
Pour dfinir les paramtres de la requte, affichez la fentre de description de la requte:
double-cliquez sur le fond de la reprsentation graphique de la requte (ou bien dans le
menu contextuel, utilisez loption "Description de la requte").
Pour grer le paramtre "tat de la commande":
1.Slectionnez au centre de lcran la rubrique Commande.Etat.
2.Droulez le bouton "Condition de slection" et slectionnez "Nouvelle condition".
3.Dans la fentre qui saffiche, nous allons indiquer que la condition de slection correspond
un paramtre:

Slectionnez "Est gal ".


Slectionnez "au paramtre".
Indiquez le nom du paramtre "pEtat".

Nous vous conseillons de prfixer les paramtres des requtes par "p". Il est
ainsi possible de les retrouver trs facilement dans lditeur de code.
Notes

Si vous recherchez un paramtre de la requte, saisissez simplement p et la


compltion de lditeur de code vous propose tous les paramtres.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 189
4.Validez la fentre de description de la condition. Le chiffre "1" apparat droite de la ru-
brique "Commande.Etat", indiquant quune condition de slection a t dfinie.

Nous allons maintenant dfinir une condition sur le mode de rglement. Cette rubrique nest
pas prsente dans le rsultat de la requte mais nous souhaitons tout de mme lui appliquer
une condition. Pour cela, nous allons intgrer la rubrique dans le rsultat de la requte et la
rendre invisible pour quelle ne soit pas prsente dans le rsultat.
1.Sur la partie gauche de la fentre de description de la requte, dans le fichier "Commande",
double-cliquez sur la rubrique "IDModeRglement". La rubrique "IDModeRglement" apparat
dans la liste des lments de la requte.
2.Pour ne pas afficher cette rubrique dans le rsultat:
Cliquez sur licne prsente droite de la rubrique.
Dans le menu qui saffiche, slectionnez "Ne pas afficher".
3.Pour dfinir une condition de slection sur la rubrique "Commande.IDModeRglement":
Slectionnez au centre de lcran la rubrique "Commande.IDModeRglement".
Droulez le bouton "Condition de slection" et slectionnez "Nouvelle condition".
Dans la fentre qui saffiche, indiquez que la condition de slection correspond un para-
mtre:
Slectionnez "Est gal ".
Slectionnez "au paramtre".
Indiquez le nom du paramtre "pIDModeRglement".
4.Validez la dfinition de la condition de slection.

190 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La dernire condition de slection dfinir concerne la date de la commande. Cette date doit
tre comprise entre deux dates saisies par lutilisateur.
1.Slectionnez dans la liste des lments de la requte la rubrique "Commande.Date".
2.Cliquez sur le bouton "Entre deux dates ...". Ce bouton permet de dfinir directement une
condition de slection.
3.Dans la fentre qui saffiche:
La condition de slection est "Est compris entre".
Cliquez sur "au paramtre".
Indiquez le nom du paramtre "pDbutPriode".
Cliquez sur le second "au paramtre".
Indiquez le nom du paramtre "pFinPriode".
4.Validez la dfinition de la condition de slection.
5.Validez la fentre de description de la requte. Le graphe de la requte est modifi pour
prendre en compte les conditions de slections que nous avons dfinies.

6.Enregistrez la requte en cliquant sur parmi les boutons daccs rapide.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 191
Test de la requte paramtre

Pour tester la requte paramtre:


1.Cliquez sur .
2.Une fentre saffiche permettant de saisir les diffrents paramtres de la requte.
3.Saisissez les donnes suivantes:
Dcochez le paramtre pEtat.
Slectionnez le paramtre pDbutPriode. Dans la partie basse de lcran, saisissez
"01/01/2013".
Slectionnez le paramtre pFinPriode. Dans la partie basse de lcran, saisissez
"31/03/2013".
Slectionnez le paramtre pIDModeRglement. Dans la partie basse de lcran, saisissez
"1".

4.Validez la fentre. Le rsultat de la requte correspondant aux paramtres spcifis saf-


fiche.
5.Fermez la fentre.
Nous allons maintenant crer linterface permettant dindiquer les paramtres de cette requte,
de lexcuter et dafficher le rsultat.

Cration de linterface pour raliser une recherche multicritre

Modifications du champ Onglet


Nous allons ajouter un volet donglet dans la fentre "FEN_Menu" pour afficher le rsultat de la
recherche multi-critres.
Pour ajouter un volet donglet:
1.Affichez si ncessaire la fentre "FEN_Menu" sous lditeur.
2.Slectionnez le champ Onglet.
3.Affichez la fentre de description du champ (option "Description" du menu contextuel).
4.Dans longlet "Gnral" de la fentre de description, cliquez sur le bouton "Nouveau". Un
troisime volet donglet apparat.

192 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Cliquez sur "Volet 3".
6.Dans la partie "Description dun volet statique", saisissez le libell du volet: "Recherche de
commandes".

7.Nous allons associer une image longlet grce au catalogue dimages de WINDEV. Cliquez
sur le bouton "Catalogue". La fentre du catalogue dimages apparat.
8.Dans la zone de recherche, indiquez "Recherche" et slectionnez si ncessaire le thme
"Flat Soft". Lancezla recherche en cliquant sur la loupe.
9.Parmi les images proposes, slectionnez licne reprsentant les jumelles et validez.
10.Conservez les options de lcran de paramtrage de limage gnre et validez.
11.Validez la fentre de description du champ Onglet.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 193
Cration des champs de paramtrage des critres et affichage du rsultat
Passons maintenant laffichage du rsultat de notre recherche multicritre.
Nous allons tout dabord crer un champ Table bas sur la requte puis crer les diffrents
champs qui permettront lutilisateur de slectionner les critres de recherche.
Cration du champ Table

Pour crer le champ Table affichant le rsultat de la recherche:


1.Dans la fentre "FEN_Menu", cliquez sur le volet "Recherche de commandes". Le volet don-
glet vide apparat.
2.Crez un champ Table: sous le volet "Cration", dans le groupe "Donnes", droulez "Table
et liste" et slectionnez "Table (Verticale)".
3.Cliquez dans le volet donglet: lassistant de cration du champ Table se lance.
4.Le champ Table va tre bas sur la requte "REQ_RechercheCommandes" (que nous avons
cr prcdemment). Slectionnez loption "Afficher les donnes dun fichier ou dune requte
existante". Passez ltape suivante de lassistant.
5.Slectionnez la requte qui sera la source de donnes du champ Table:
Droulez si ncessaire le groupe "Requtes".
Slectionnez la requte "REQ_RechercheCommandes".

Passez ltape suivante de lassistant.


6.Slectionnez si ncessaire toutes les rubriques proposes.

194 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7.Passez ltape suivante de lassistant.
8.Conservez les options par dfaut dans les diffrents crans de lassistant et validez la cra-
tion du champ Table.
9.Le champ Table est automatiquement cr dans longlet "Recherche de commandes".
10.Si ncessaire, modifiez la position du champ Table pour quil apparaisse entirement dans
le volet donglet.

Pour plus de lisibilit, nous allons renommer les libells des colonnes du champ Table.
1.Affichez la description du champ Table (double-cliquez sur le champ).

La fentre de description dun champ Table est compose de deux zones:


la zone suprieure prsentant le nom du champ, des colonnes et leur type.
la zone infrieure compose des diffrents onglets de description.
Notes

Si le nom du champ Table est slectionn, la partie infrieure prsente les carac-
tristiques du champ Table.
Si une colonne est slectionne, la partie infrieure prsente les caractris-
tiques des colonnes.

2.Cliquez sur la colonne "COL_IDCommande". Le titre de la colonne apparat dans la partie


basse de lcran. Remplacez le libell "Identifiant de la commande" par "ID".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 195
3.Cliquez sur la colonne "COL_NomComplet". Remplacez le libell "Nom complet" par "Client".

4.Cliquez sur la colonne "COL_Libell". Remplacez le libell "Libell" par "Mode de rglement".

5.Validez la fentre de description du champ Table. Le champ est automatiquement mis


jour avec les changements effectus.
6.Agrandissez la taille des colonnes ID, Date et Etat du champ Table laide des poignes de
redimensionnement des colonnes.
7.Diminuez la taille de la colonne "Mode de rglement" afin que toutes les colonnes appa-
raissent dans le champ Table.
8.Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide. Nous allons
vrifier les tailles des colonnes en excutant la fentre.

Live Data et champs bass sur des requtes


Notes

Le Live data nest pas affich dans les champs utilisant une requte comme
source de donnes pour la raison suivante: les donnes affiches dpendent du
rsultat de la requte et ne peuvent tre connues quen excution.

196 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons faire un premier test de cette fentre:
1.Cliquez sur parmi les boutons daccs rapide.
2.Cliquez sur longlet "Recherche de commandes". Seules 22 commandes saffichent,
comme lors du dernier test de la requte ralis sous lditeur, lorsque nous avions spcifi
les paramtres dans la fentre de test de la requte.

3.Fermez la fentre de test pour revenir sous lditeur.


Regardons les traitements associs au champ Table:
1.Slectionnez le champ Table.
2.Affichez le menu contextuel (clic droit) et slectionnez loption "Code".
3.Le traitement "Initialisation de TABLE_REQ_RechercheCommandes" contient le code sui-
vant:
// Paramtres de la requte REQ_RechercheCommandes
//MaSource.pEtat = <Valeur du paramtre pEtat>
MaSource.pIDModeReglement = 1
MaSource.pDbutPriode = 20130101
MaSource.pFinPriode = 20130331

Les paramtres de test ont t rcuprs comme paramtres par dfaut pour lexcution.
Nous allons maintenant modifier la fentre pour que les paramtres soient saisis par
lutilisateur, laide de champs.
4.Fermez lditeur de code (utilisez la croix en haut droite de lditeur).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 197
Nous allons maintenant crer dans notre fentre les diffrents champs permettant lutilisateur
de slectionner les diffrents paramtres de la requte. Ces champs vont tre placs au-dessus
du champ Table.
Si ncessaire, dplacez le champ Table dans la fentre et diminuez sa hauteur afin de laisser
de lespace pour crer les diffrents champs de slection des critres.

Premier paramtre: Etat de la commande

Une commande peut avoir 3 tats:


en attente,
paye
annule.
Dans notre analyse, ltat de la commande est enregistr dans la rubrique "Etat" prsente dans le
fichier de donnes "Commande". Cette rubrique est de type slecteur.
Pour permettre lutilisateur de slectionner un de ces trois tats, nous allons utiliser le champ
Slecteur associ la rubrique "Etat" du fichier de donnes "Commande".

Les slecteurs doptions sont galement appels "case doptions". Ils permettent
de slectionner une option et une seule, parmi celles proposes.
Comment diffrencier le slecteur et linterrupteur?
Notes

Le slecteur est galement appel "Bouton radio". Un moyen mnmotechnique


simple: pensez aux anciennes radios: le bouton permettait de slectionner une
seule frquence!
Le slecteur permet de slectionner une seule option.

Pour crer le champ Slecteur:


1.Affichez si ncessaire le volet "Analyse": sous le volet "Accueil", dans le groupe
"Environnement", droulez "Volets" et slectionnez "Analyse". Les diffrents fichiers de donnes
dcrits dans lanalyse "WD Application Complte" apparaissent dans le volet.
2.Cliquez sur licne gauche du fichier "Commande": les rubriques du fichier de don-
nes sont listes.
3.Slectionnez la rubrique "Etat" prsente dans le fichier Commande et ralisez un "Drag and
Drop" de cette rubrique vers la fentre "FEN_Menu".
4.Le champ Slecteur est automatiquement cr. Positionnez ce champ au-dessus du champ
Table.

198 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons maintenant utiliser la valeur slectionne dans le champ Slecteur en paramtre
la requte:
1.Affichez les traitements associs au champ Table:
Slectionnez le champ Table.
Affichez le menu contextuel (clic droit) et slectionnez loption "Code".
2.Dans le traitement dinitialisation du champ Table, remplacez la ligne:
//MaSource.pEtat = <Valeur du paramtre pEtat>

par le code suivant :

MaSource.pEtat = SEL_Etat

Dans ce code, SEL_Etat est le nom du champ Slecteur que nous venons de crer. La valeur
de ce champ est associe au paramtre pEtat attendu par la requte.
3.Fermez lditeur de code.
Avant de tester, nous allons crer un bouton pour rafficher le contenu du champ Table en
fonction de la valeur slectionne dans le champ Slecteur:
1.Crez un champ Bouton:
sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
cliquez ensuite dans le volet donglet, en haut droite.
2.Slectionnez le champ puis tapez sur la touche [ENTREE] du clavier. Le libell du bouton
passe en dition. Saisissez "Rechercher" et appuyez sur la touche [ENTREE] du clavier.
3.Modifiez le style du champ:
Affichez le menu contextuel du champ (clic droit) et slectionnez loption "Choisir un style".
Dans la fentre qui saffiche, utilisez la combinaison de touches [CTRL F]. Dans le champ de
recherche, saisissez "BTN_Recherche".
Le style est automatiquement slectionn. Validez.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 199
4.Redimensionnez le champ si ncessaire.
5.Affichez le code associ ce champ: appuyez sur la touche [F2].
6.Dans le traitement "Clic sur ...", saisissez le code suivant:
// Actualise laffichage du champ Table
TableAffiche(TABLE_REQ_RechercheCommandes, taInit)

Dans ce code, la constante taInit permet de rexcuter le traitement dinitialisation du


champ Table (le traitement dans lequel les paramtres sont passs la requte).
7.Fermez lditeur de code.
Nous allons tester le passage du premier paramtre:
1.Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide.
2.Cliquez sur parmi les boutons daccs rapide.
3.Slectionnez si ncessaire longlet "Recherche de commandes".
4.Changez ltat des commandes grce au slecteur puis cliquez sur le bouton "Rechercher".
Le contenu du champ Table est modifi.

5.Fermez la fentre de test.

200 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Second paramtre: Mode de rglement

Une commande peut avoir plusieurs modes de rglement: espces, chques, ... Les diffrents
modes de rglement possibles sont stocks dans le fichier de donnes "ModeRglement".
Nous allons utiliser un champ Combo bas sur ce fichier de donnes pour permettre lutilisateur
de slectionner le mode de rglement voulu.

Le champ "Combo" permet dafficher une liste dlments et de slectionner un


lment dans cette liste.
A la diffrence dune liste, une combo nest pas droule: elle se droule la
demande ou lors du positionnement du curseur sur la liste.
Notes

Les lments apparaissant dans une combo peuvent tre dtermins lors de la
cration du champ sous lditeur. Ces lments:
sont dtermins par programmation.
proviennent dun fichier de donnes ou dune requte.

Pour crer un champ Combo:


1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur "Combo".
2.Cliquez dans la fentre lemplacement o le champ doit tre cr (par exemple ct du
slecteur prcdemment cr).
3.Lassistant de cration du champ Combo se lance.
4.Slectionnez loption "Afficher les donnes dun fichier ou dune requte existante" et pas-
sez ltape suivante.
5.Slectionnez le fichier de donnes "ModeRglement" et passez ltape suivante.
6.La rubrique afficher dans le champ Combo est "Libell". Dcochez "IDModeRglement" et
cochez "Libell". Passez ltape suivante.
7.Slectionnez la rubrique de tri: "Libell". Passez ltape suivante.
8.Slectionnez la valeur de retour "IDModeRglement". Cette valeur de retour est trs impor-
tante car cest elle qui sera passe en paramtre la requte. Passez ltape suivante.
9.Conservez les options par dfaut dans les diffrents crans de lassistant et validez la cra-
tion du champ Combo.
10.Le champ Combo est automatiquement cr dans la fentre.
Nous allons modifier quelques caractristiques du champ Combo:
1.Slectionnez le champ Combo et affichez la fentre de description du champ (option
"Description"du menu contextuel).
2.Dans longlet "Gnral", modifiez le libell du champ: remplacez "Combo ModeRglement"
par "Mode de rglement".
3.Dans longlet "Contenu", spcifiez la valeur initiale affiche par le champ Combo (champ
"Valeur initiale" en bas de la fentre de description). Dans notre cas, saisissez "1". Cette valeur
correspond au paiement en espces.
4.Validez la fentre de description du champ.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 201
Changez le look du champ: pour occuper moins de place, nous allons slectionner un style
affichant le libell au-dessus du champ.
1.Slectionnez le champ Combo.
2.Dans le menu contextuel (clic droit), slectionnez loption "Choisir un style".
3.Dans la fentre qui saffiche, slectionnez le style "COMBO_Interne" et validez.
4.Diminuez la taille du champ.
Nous allons maintenant utiliser la valeur slectionne dans le champ Combo en paramtre
la requte:
1.Affichez les traitements associs au champ Table:
Slectionnez le champ Table.
Affichez le menu contextuel (clic droit) et slectionnez loption "Code".
2.Dans le traitement dinitialisation du champ Table, remplacez la ligne:
MaSource.pIDModeReglement = 1

par le code :

MaSource.pIDModeReglement = COMBO_ModeRglement

Dans ce code, COMBO_ModeRglement est le nom du champ Combo que nous venons de
crer. La valeur de retour de ce champ est associe au paramtre pIDModeRglement
attendu par la requte.
3.Fermez lditeur de code.
4.Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide.
Nous allons tester le passage des deux premiers paramtres:
1.Cliquez sur parmi les boutons daccs rapide.
2.Slectionnez si ncessaire longlet "Recherche de commandes".
3.Changez ltat des commandes grce au slecteur et modifiez le mode de rglement grce
au champ Combo puis cliquez sur le bouton "Rechercher". Le contenu du champ Table est
modifi.

4.Fermez la fentre de test.

202 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dernier paramtre: Date de commande
Le dernier paramtre de la requte correspond la date des commandes prises en compte. Au
niveau de linterface, lutilisateur doit pouvoir saisir un intervalle de dates. Nous allons utiliser
pour cela un modle de champs.

Un modle de champs est une fentre spcifique contenant diffrents champs.


Dans cette fentre, vous pouvez mettre tout type de champs. Un modle de
champs est un fichier dextension "WDT".
Lintrt principal dun modle de champs est la r-utilisabilit. Un modle de
Notes

champs prsent dans un projet peut tre rutilis dans nimporte quelle fentre
du projet.
De plus, les modles de champs peuvent tre surchargs: du code peut tre
ajout, les champs peuvent tre dplacs dans la fentre utilisant le modle de
champs. Les champs peuvent galement tre modifis.

Pour grer la date de la commande:


1.Dans lexplorateur de projet, droulez le dossier "Modle de champs".
2.Slectionnez le modle de champs "MDLC_ChoixPriode" dans lexplorateur de projet et
ralisez un "Drag and Drop" vers la fentre "FEN_Menu" ( ct du champ "Mode de rgle-
ment").

3.Slectionnez le modle de champs cr et affichez sa description (option "Description" du


menu contextuel).
4.Dans la fentre de description, renommez le modle de champs. Le nouveau nom est
"CMOD_ChoixPriode".
5.Validez la fentre de description.
6.Repositionnez et alignez les champs si ncessaire.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 203
Nous allons maintenant utiliser les dates slectionnes en paramtre la requte:
1.Affichez les traitements associs au champ Table:
Slectionnez le champ Table.
Affichez le menu contextuel (clic droit) et slectionnez loption "Code".
2.Dans le traitement dinitialisation du champ Table, remplacez les lignes:
MaSource.pDbutPriode = 20130101
MaSource.pFinPriode = 20130331

par

MaSource.pDbutPriode = SAI_DateDbut
MaSource.pFinPriode = SAI_DateFin

Dans ce code, SAI_DateDbut et SAI_DateFin sont les noms des deux champs de saisie
prsents dans le modle de champs. Leurs valeurs sont associes aux paramtres pDbut-
Priode et pFinPriode attendus par la requte.
3.Fermez lditeur de code.
4.Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide.
Nous allons tester le passage des paramtres:
1.Cliquez sur parmi les boutons daccs rapide.
2.Slectionnez si ncessaire longlet "Recherche de commandes".
3.Dfinissez les diffrents paramtres de la recherche:
Etat des commandes,
Mode de rglement,
Fourchette de dates prises en compte.
4.Cliquez sur le bouton "Rechercher". Le contenu du champ Table est modifi.

5.Fermez la fentre de test.

204 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.5. Imprimer le contenu dun
champ Table

Ce que vous allez apprendre dans cette leon...

Imprimer le contenu dun champ Table


Imprimer un bon de commande

Dure estime: 20 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 205
Prsentation
WINDEV permet dimprimer vos donnes:
directement par programmation.
via les tats. Un tat est le nom donn la reprsentation graphique dune dition. Un tat est
cr grce lditeur dtats.
WINDEV propose de nombreux types dtats:

Vierge
Fiche
Etiquette
Tableau
Tableau crois
Tableau hirarchique
Etat multicolonne
Mailing
Formulaire
Composite
Agenda ou planning
Diagramme de Gantt
Nous allons maintenant dcouvrir comment crer diffrents types dtats dans lapplication "WD
Application Complte".

206 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
complte (Avec fentres)".
Corrig

Un projet corrig complet de lapplication est galement disponible: sous le vo-


let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)". Dans ce cas, pour suivre la
suite de ce cours, slectionnez la configuration "Excutable Windows 32 bits"
dans lexplorateur de projet.

Impression du contenu dun champ Table


Dans la leon prcdente, nous avons cr un champ Table permettant dafficher le rsultat dune
recherche multicritre. Nous allons tudier maintenant les diffrentes possibilits pour imprimer
le contenu de ce champ Table.

Impression directe via la FAA (Fonctionnalit automatique de lapplication)


Dans les leons prcdentes, nous avons dj vu que WINDEV proposait de nombreuses fonc-
tionnalits automatiques (appeles FAA). Pour limpression du contenu dun champ Table, il existe
une FAA.

La liste complte des FAA (Fonctionnalits automatiques de lapplication) est


disponible dans le fichier WINDEV FAA 21.PDF. Ce fichier est automatiquement
Note

intgr dans votre application si vous choisissez loption "Aide des FAA" lors de la
cration du menu automatique.

Faisons un test rapide:


1.Affichez si ncessaire la fentre "FEN_Menu" sous lditeur de fentres.
2.Cliquez sur parmi les boutons daccs rapide.
3.Slectionnez si ncessaire longlet "Recherche de commandes".
4.Dfinissez les diffrents paramtres de la recherche:
Etat des commandes,
Mode de rglement,
Fourchette de dates prises en compte.
5.Cliquez sur le bouton "Rechercher".
6.Lorsque les donnes sont affiches dans le champ Table, affichez le menu contextuel du
champ (icne en haut droite ou clic droit sur le champ).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 207
7.Cliquez sur loption "Imprimer".
8.Si ncessaire, choisissez dimprimer en mode "Paysage" le contenu du champ Table. Ltat
correspondant au champ est aussitt affich dans une fentre daperu.

208 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
En mode test, le contenu du champ Table est directement imprim.
En excution, lutilisateur final a la possibilit dimprimer directement ou de lan-
Note cer le logiciel "Etats et Requtes" pour crer ltat correspondant. Pour plus de
dtails sur le logiciel Etats et Requtes, consultez "Diffusez "Etats & Requtes"
avec vos applications", page 315.

9.Fermez la fentre daperu et arrtez le test de lapplication.


Vous voulez personnaliser ltat propos par dfaut? Il suffit de crer un tat automatique sur
le champ Table. Cet tat (sil existe) sera automatiquement utilis par loption dimpression du
champ Table.

Cration dun tat automatique sur un champ Table


Pour crer un tat imprimant les donnes dun champ Table, il suffit de crer un "Etat sur champ
table": ltat correspondant la table est cr automatiquement.

Pour crer un "Etat sur champ table":


1.Si ncessaire, sous lditeur de fentres, affichez longlet "Recherche de commandes" (cli-
quez dessus).
2.Sous le volet "Cration", dans le groupe "Donnes", droulez "Table et liste" et slectionnez
"Etat sur champ table".
3.Notre fentre contenant 2 champs Table sur des volets donglet diffrents, WINDEV de-
mande de slectionner le champ Table voulu. Dans notre cas, slectionnez "TABLE_REQ_Re-
chercheCommandes" et validez.
4.La forme dun bouton apparat sous le curseur de la souris. Ce bouton est automatique-
ment cr et contient le code permettant de lancer limpression du contenu du champ Table.
Cliquez dans la fentre la position o le bouton doit tre cr (par exemple en dessous du
bouton "Rechercher" dans longlet "Recherche de commandes").
5.Ltat est immdiatement cr.
6.Une fentre saffiche proposant dajouter ltat au projet. Validez.
7.Lditeur dtats apparat avec ltat qui a t automatiquement cr.
8.Enregistrez ltat en cliquant sur parmi les boutons daccs rapide.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 209
9.Vous retrouvez dans cet tat les titres des colonnes du champ Table prsent dans la fe-
ntre. Nous allons juste faire une petite modification dans cet tat: nous allons modifier le
titre:
Slectionnez le champ correspondant au titre de ltat ("Table REQ_RechercheCommandes"
est affich dans le champ) et double-cliquez sur ce champ.
Dans la fentre de description, modifiez le libell et saisissez "Commandes recherches".
Validez.
10.Enregistrez ltat en cliquant sur parmi les boutons daccs rapide.
11.Revenez sur la fentre "FEN_Menu" (par exemple en cliquant sur le bouton "FEN_Menu"
prsent dans la barre des lments ouverts sous WINDEV).
12.Modifiez si ncessaire la taille et la position du bouton "Imprimer" (pour quil ait la mme
taille que le bouton "Rechercher").
13.Enregistrez la fentre en cliquant sur parmi les boutons daccs rapide.
14.Testez la fentre: cliquez sur parmi les boutons daccs rapide.
Slectionnez si ncessaire longlet "Recherche de commandes".
Dfinissez les diffrents paramtres de la recherche:
Etat des commandes,
Mode de rglement,
Fourchette de dates prises en compte.
Cliquez sur le bouton "Rechercher".
15.Lorsque les donnes sont affiches dans le champ Table, utilisez le bouton dimpression
ou loption "Imprimer" du menu contextuel du champ Table: ltat que vous venez de crer
est utilis dans les deux cas.

210 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.6. Imprimer une commande

Ce que vous allez apprendre dans cette leon...

Crer un tat bas sur une requte


Lancer limpression dun tat bas sur une requte paramtre

Dure estime: 30 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 211
Prsentation
Nous allons maintenant donner la possibilit lutilisateur dimprimer directement le dtail de la
commande recherche. Ltat pourra tre imprim directement via le menu contextuel du champ
Table.

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
complte (Avec fentres)".
Corrig

Un projet corrig complet de lapplication est galement disponible: sous le vo-


let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)". Dans ce cas, pour suivre la
suite de ce cours, slectionnez la configuration "Excutable Windows 32 bits"
dans lexplorateur de projet.

Cration de ltat "Bon de commande"


Nous allons tout dabord lister les informations qui doivent tre affiches dans ltat:
Les caractristiques de la commande: date et numro de commande.
Les coordonnes du client: nom, adresse, code postal, ville et pays.
Les caractristiques des lignes de commande:
Quantit commande,
Rfrence du produit,
Libell du produit,
Total HT,
Total TTC.
Pour crer simplement cet tat, nous allons rassembler toutes les donnes imprimer dans une
requte. Cette requte pourra tre utilise par ltat ou par tout autre lment du projet WINDEV
(champ Table, champ Zone rpte, ...).

WINDEV propose de crer des tats partir de nombreuses sources de don-


nes: fichiers de donnes, requtes, champs, fichiers texte, ...
Dans la majorit des cas, il est conseill de rassembler les donnes imprimer
via une requte, puis de crer un tat sur cette requte. Si une information doit
Note

tre ajoute dans ltat, il suffira dajouter la rubrique correspondante dans la


requte.
Les tats raliss directement sur les fichiers de donnes doivent tre rser-
vs des tats simples, cest--dire affichant des donnes provenant dun seul
fichier de donnes.

212 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cration de la requte

Pour crer la requte de base de ltat, nous allons utiliser lditeur de requtes.
1.Cliquez sur parmi les boutons daccs rapide. La fentre de cration dun nouvel lment
saffiche: cliquez sur "Requte". Lassistant de cration de requtes se lance.
2.Slectionnez loption "Slection (SELECT)".
En effet, la requte que nous allons crer va nous permettre de slectionner les enregistre-
ments qui seront imprims dans ltat. Passez ltape suivante.
3.La fentre de description de la requte apparat. Nous allons construire la requte en slec-
tionnant les lments que nous voulons dans le rsultat.
4.Double-cliquez sur les rubriques prsentes dans lanalyse gauche de la fentre de
description. Les rubriques prises en compte apparaissent alors au centre de lcran.
Nous voulons imprimer dans ltat:
les renseignements concernant le client. Dans le fichier "Client", double-cliquez sur les ru-
briques NomComplet, Adresse, CodePostal, Ville et Pays.
les renseignements concernant la commande. Dans le fichier "Commande", double-cliquez
sur les rubriques IDCommande et Date.
les renseignements concernant le produit. Dans le fichier "Produit", double-cliquez sur les
rubriques Rfrence, Libell et PrixHT.
les renseignements concernant la ligne de commande. Dans le fichier "LigneCommande",
double-cliquez sur les rubriques Quantit et TotalHT.
les renseignements sur le prix total de la commande. Dans le fichier "Commande", double-
cliquez sur les rubriques TotalHT et TotalTTC.

Lordre dans lequel les rubriques sont insres dans la requte est important. En
effet, cet ordre correspond celui utilis pour afficher les donnes dans ltat. Si
Note

cet ordre est correctement dfini, la cration de ltat correspondant sera dau-
tant plus simple.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 213
La fentre de description de la requte est la suivante:

A ce stade, cette requte permet de slectionner toutes les commandes et les lignes de com-
mande correspondantes.
Nous voulons slectionner les donnes correspondant une seule commande dont lidentifiant
est connu. Nous allons donc dfinir en paramtre le numro de commande.
Pour grer le paramtre "Identifiant de la commande":
1.Slectionnez au centre de lcran la rubrique Commande.IDCommande.
2.Droulez le bouton "Condition de slection" et slectionnez "Nouvelle condition".
3.Dans la fentre qui saffiche, nous allons indiquer que la condition de slection correspond
un paramtre:

214 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Effectuez les oprations suivantes:
Slectionnez "Est gal ".
Cochez "au paramtre".
Indiquez le nom du paramtre "pIDCommande".
4.Validez la fentre de description de la condition. Le chiffre "1" apparat droite de la ru-
brique Commande.IDCommande, indiquant quune condition de slection a t dfinie.
5.Donnez un nom la requte: saisissez "REQ_BonDeCommande" la place de "REQ_Sans-
Nom1" dans la zone "Nom de la requte":

6.Validez la fentre de description de la requte (bouton vert en bas de lcran).


7.La reprsentation graphique de la requte est affiche:

8.Enregistrez la requte en cliquant sur parmi les boutons daccs rapide. Validez si n-
cessaire les informations de sauvegarde.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 215
Cration de ltat bas sur une requte

Pour crer un tat:


1.Cliquez sur le bouton parmi les boutons daccs rapide.
2.La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat". Las-
sistant de cration dtats se lance.
3.Lassistant de cration dtats propose plusieurs types dtats:

4.Slectionnez "Tableau". Passez ltape suivante.


5.Slectionnez la source des donnes de ltat. Ltat va tre bas sur la requte que vous
venez de crer. Slectionnez "Dun fichier de donnes ou dune requte existante". Passez
ltape suivante.

6.Dans la liste des fichiers de donnes et des requtes, slectionnez la requte "REQ_BonDe-
Commande". Passez ltape suivante.

216 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7.Lassistant demande dindiquer sil y a une rupture. Dans cet tat nous nutilisons pas de
rupture. Nous verrons ce concept un peu plus loin dans ce cours. Rpondez "Non". Passez
ltape suivante.
8.Vous allez ensuite indiquer dans quel ordre sont imprimes les rubriques et leur rpartition
dans les diffrents blocs. Dans lassistant, les rubriques sont listes dans lordre dfini dans
la requte:
Les rubriques concernant le client vont tre affiches dans le bloc "Entte de page". En ef-
fet, ces informations ne doivent pas tre rptes pour chaque ligne de la commande.
Pour les rubriques NomComplet, Adresse, CodePostal, Ville et Pays, cliquez sur la ligne cor-
respondant la rubrique. Dans la colonne "Bloc", droulez la combo et slectionnez "Entte
de page".

Les rubriques concernant la commande vont galement tre affiches dans le bloc "Entte
de page". En effet, ces informations ne doivent pas tre rptes pour chaque ligne de la
commande. Pour les rubriques IDCommande et Date, cliquez sur la ligne correspondant la
rubrique. Dans la colonne "Bloc", droulez la combo et slectionnez "Entte de page".
De plus, nous allons en profiter pour modifier le libell de la rubrique "IDCommande".
Slectionnez la ligne contenant la rubrique IDCommande.
Cliquez dans la colonne Libell et saisissez "N Commande".

Les rubriques concernant les lignes de commande vont rester dans le corps de ltat. Ces
rubriques seront affiches pour toutes les lignes de commandes de la commande.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 217
Les rubriques concernant les totaux de la commande seront affiches en pied de page. En
effet, ces informations ne doivent pas tre rptes pour chaque ligne de la commande.
Pour les rubriques TotalHT_Co et TotalTTC, cliquez sur la ligne correspondant la rubrique.
Dans la colonne "Bloc", droulez la combo et slectionnez "Pied de page".

Le tableau suivant fournit les diffrentes affectations des rubriques dans lordre prsent
dans lassistant:
Rubrique Bloc
NomComplet Entte de page
Adresse Entte de page
CodePostal Entte de page
Ville Entte de page
Pays Entte de page
IDCommande Entte de page
Date Entte de page
Rfrence Corps
Libell Corps
PrixHT Corps
Quantit Corps
TotalHT Corps
TotalHT_Co Pied de page
TotalTTC Pied de page

9.Passez ltape suivante.

218 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
10.Lassistant propose de crer un compteur, une somme ou une moyenne sur les rubriques
numriques prsentes dans ltat. Dans cet tat, les calculs sont faits par la requte. Cliquez
sur le bouton "Aucun calcul". Passez ltape suivante.
11.Cet cran permet de dfinir la mise en page de ltat.

Nous garderons les valeurs par dfaut avec lorientation "Portrait".

Marges dimpression
Lors du choix des marges dimpression, noubliez pas de tenir compte des
Notes

marges physiques des imprimantes. Les marges physiques sont les marges
rserves par limprimante dans lesquelles il nest pas possible dimprimer. De
plus, les marges physiques diffrent en fonction des modles dimprimante.

12.Passez ltape suivante.


13.Cet cran permet de slectionner le gabarit utilis pour ltat. Il est conseill dutiliser
le mme gabarit que pour les fentres. Dans notre cas, slectionnez par exemple le gabarit
"Gensteel" et passez ltape suivante.
14.Il ne reste plus qu donner un nom et un titre ltat.
Saisissez le titre "Bon de commande".
Le nom "ETAT_Bon_de_commande" est aussitt propos.
Remarque : En version Express, loption "Etat modifiable sous "Etats et Requtes" nest pas
disponible.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 219
15.Validez.
16.Ltat tant trop grand pour tre imprim en mode Portrait, lditeur dtats propose duti-
liser le mode paysage, de rduire le tableau ou dimprimer le tableau sur plusieurs pages.
Dans notre cas, acceptez le mode paysage.
17.Si ncessaire, acceptez ensuite de rduire le tableau.
18.Ltat apparat en dition sous lditeur dtats:

19.Les diffrentes lignes de la commande sont regroupes sous forme de tableau.


20.Enregistrez ltat en cliquant sur parmi les boutons daccs rapide. Validez si nces-
saire les informations de sauvegarde.

220 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Excutez cet tat en cliquant sur parmi les boutons daccs rapide.
1.Lditeur dtats demande la destination de limpression. La destination de limpression peut
tre au choix:

Choisissez "Aperu avant impression" et validez.


2.Lditeur dtats demande les paramtres de la requte utilise par ltat. Rappelez-vous,
nous avons, en effet, utilis un paramtre pour spcifier le numro de la commande impri-
mer. Pour lexemple, saisissez la valeur de test "1".

Validez.
3.Lexcution de ltat saffiche lcran.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 221
Vous pouvez:
Directement imprimer la page en cours ou la totalit du document en cliquant sur limpri-
mante.
Crer un duplicata.
Slectionner un niveau de zoom plus ou moins important.
Enregistrer ltat sous forme dun document Word (au format RTF).
Enregistrer ltat au format HTML.
Enregistrer ltat au format PDF.
Enregistrer ltat au format XML.
Crer un e-mail avec ltat au format HTML en corps du message.
Crer un e-mail avec ltat au format PDF en document li.
Annoter le document.
Effectuer une recherche dans le document.
Ajouter des filigranes.
Fermez laperu avant impression.

222 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Modifications de ltat "Bon de commande"
Nous allons effectuer quelques modifications de mise en page dans ltat que nous venons de
crer.
Supprimez le nombre de pages affich dans ltat:
1.Slectionnez le champ [NUMPAGE]/[NBPAGES].
2.Appuyez sur la touche [SUPPR] du clavier.
Nous allons maintenant positionner les informations concernant le client et la commande
dans lentte de page:
1.Supprimez le libell "Bon de commande" prsent dans lentte de page.
2.Supprimez les libells devant les informations client (Nom complet, ...).
3.Positionnez la rubrique contenant la ville ct du code postal.
4.Slectionnez les informations concernant le client et dplacez-les laide de la souris sur
la droite de ltat.
5.Remontez le numro de commande et la date de la commande (en haut du bloc "Entte de
page").
Nous allons positionner les totaux correctement dans le pied de page:
1.Slectionnez les champs (libells et rubriques) correspondant aux totaux prsents dans le
pied de page.
2.Positionnez ces champs laide de la souris en bas droite du tableau.
Modifiez les options dimpression du bloc "Pied de page":
1.Affichez la fentre de description du bloc "Pied de page":
Cliquez dans le bloc "Pied de page".
Affichez le menu contextuel (clic droit) et slectionnez "Description du bloc".
2.Dans longlet "Gnral", cochez les options suivantes:
Imprimer le bloc "Fin de document" APRES le bloc "Pied de page" sur la dernire page.
Le bloc "Pied de page" ne simprime pas en bas de la page, il se colle aux blocs prcdents.

3.Validez la fentre de description.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 223
4.Ltat est affich sous lditeur dtats:

5.Enregistrez ltat en cliquant sur parmi les boutons daccs rapide.

Notre tat bon de commande est termin.

224 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Affichage de ltat imprim depuis une option de menu
Dans notre application, ltat "ETAT_Bon_de_commande" va tre imprim depuis une option du
menu contextuel du champ Table listant les commandes recherches.
Par dfaut, nous lavons dj vu, le champ Table propose un menu automatique. Nous voulons
conserver les options de ce menu automatique et ajouter une option qui permettra dimprimer le
bon de commande slectionn.
Le principe utilis est le suivant:
1.Nous allons crer un nouveau menu contextuel. Ce menu contiendra le code WLangage per-
mettant de lancer limpression de ltat.
2.Nous allons lier ce menu contextuel au champ Table et indiquer que le menu contextuel par
dfaut viendra la suite du menu contextuel dfini pour le champ Table.

Cration du menu contextuel

Pour crer un menu contextuel dans la fentre "FEN_Menu":


1.Ouvrez si ncessaire la fentre "FEN_Menu" sous lditeur (double-cliquez sur son nom dans
lexplorateur de projet par exemple).
2.Sous le volet "Fentre", dans le groupe "Barres et menus", droulez "Menus contextuels" et
slectionnez "Nouveau menu contextuel".
3.Un nouveau menu contextuel apparat sous lditeur. Ce menu possde une seule option
"Option de menu".

4.Affichez la description du menu contextuel:


Slectionnez "Option de menu".
Affichez le menu contextuel (clic droit).
Slectionnez loption "Description du menu contextuel".
5.Donnez un nom au menu contextuel "MENU_Commande" et validez.

Menus contextuels et fentres


Notes

Un menu contextuel est associ une fentre. Si une fentre possde plusieurs
menus contextuels (menu contextuel de la fentre, menus contextuels des
champs, ...), tous ces menus sont enregistrs avec la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 225
Nous allons maintenant dfinir le libell de loption et son code.
1.Slectionnez loption "Option de menu".
2.Appuyez sur la touche [ESPACE] du clavier: le libell passe en dition. Saisissez le nouveau
libell "Imprimer le bon de commande" et validez.
3.Affichez le code associ loption:
Slectionnez loption.
Affichez le menu contextuel (clic droit) et slectionnez loption "Code".
4.Saisissez le code suivant:

// Aperu avant impression


iAperu()
// Initialise la requte de ltat
iInitRequteEtat(ETAT_Bon_de_commande, ...
TABLE_REQ_RechercheCommandes.COL_IDCommande)
// Lance limpression de ltat
iImprimeEtat(ETAT_Bon_de_commande)

Dans ce code:
La fonction iAperu permet dindiquer que limpression de ltat sera effectue dans
laperu avant impression.
La fonction iInitRequteEtat permet de spcifier les paramtres attendus par la requte as-
socie ltat. Dans notre cas, la requte attend en paramtre le numro de commande.
Ce numro de commande est prsent dans la colonne COL_IDCommande du champ Table
TABLE_REQ_RechercheCommandes pour la ligne en cours.
La fonction iImprimeEtat permet de lancer limpression de ltat spcifi (ici, ltat ETAT_
Bon_de_commande).
5.Fermez la fentre de code et la fentre contenant le menu contextuel.
6.Enregistrez la fentre "FEN_Menu".

Association du menu contextuel au champ Table

Dernire tape: nous allons lier le menu contextuel au champ Table.


1.Dans la fentre "FEN_Menu", affichez longlet "Recherche de commandes".
2.Slectionnez le champ Table et affichez sa description (option "Description de la table" du
menu contextuel du champ).
3.Dans longlet "IHM", droulez la combo "Menu Ctx.".
4.Cochez loption "Ajouter un menu contextuel", slectionnez le menu "MENU_Commande" et
slectionnez loption "Au dbut" pour indiquer que le menu est plac avant le menu systme.

5.Cliquez dans la fentre pour valider le menu contextuel.


6.Validez.

226 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Test de limpression

Il ne reste plus qu effectuer un test en rel:


1.Lancez le test de la fentre "FEN_Menu".
2.Slectionnez le volet donglet "Recherche de commandes".
3.Spcifiez les critres et lancez une recherche.
4.Slectionnez une des commandes affiche dans le champ Table.
5.Imprimez la commande via le menu contextuel.

6.Fermez laperu avant impression ainsi que la fentre de test.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 227
Leon 3.7. Imprimer une liste de
clients

Ce que vous allez apprendre dans cette leon...

Crer un tat avec ruptures


Lancer limpression dun tat

Dure estime: 20 mn

228 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Cette leon permet dimprimer une liste des clients, regroups par pays et par dpartement ou
province.
Pour cela, nous allons utiliser un tat de type tableau, qui permet de reprsenter clairement une
liste de donnes.

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
Corrig

complte (Avec fentres)".


Un projet corrig complet de lapplication est galement disponible: sous le vo-
let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)".

Cration de ltat

Pour crer un tat:


1.Cliquez sur le bouton parmi les boutons daccs rapide.
2.La fentre de cration dun nouvel lment saffiche : cliquez sur "Etat" puis sur "Etat". Las-
sistant de cration dtats se lance. Lassistant de cration dtats propose plusieurs types
dtats:

3.Slectionnez "Tableau". Passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 229
4.Slectionnez la source des donnes de ltat. Ltat va tre bas sur le fichier Client. Slec-
tionnez "Dun fichier de donnes ou dune requte existante". Passez ltape suivante.

5.Dans la liste des fichiers de donnes et des requtes, slectionnez le fichier "Client". Pas-
sez ltape suivante.
6.Dfinissez la cl de parcours du fichier. Dans notre cas, nous allons parcourir le fichier
client selon le nom complet du client. Slectionnez la cl de parcours "NomComplet". Passez
ltape suivante.

7.Nous allons maintenant dfinir les options de tri des donnes dans ltat. Par dfaut, las-
sistant propose la rubrique utilise comme cl de parcours du fichier de donnes. Comme
nous voulons faire un tat listant les clients par pays et par dpartement, nous allons ajouter
un tri sur ces deux rubriques.

230 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8.Pour ajouter un tri sur le pays:
Cliquez sur le bouton "+" pour ajouter une rubrique de tri.
Dans la fentre qui saffiche, slectionnez la rubrique Client.Pays.

Validez.
9.Pour ajouter un tri sur le dpartement:
Cliquez sur le bouton "+" pour ajouter une rubrique de tri.
Dans la fentre qui saffiche, slectionnez la rubrique Client.EtatProvinceRgion.
Validez.
10.Modifiez lordre des rubriques de tri. Les clients doivent tre tris par pays, rgion puis par
ordre alphabtique.
La rubrique "Client.Pays" apparat en seconde rubrique de tri. Slectionnez cette rubrique et
dplacez-la en premire rubrique de tri laide des boutons flchs.
La rubrique "Client.EtatProvinceRgion" apparat en troisime rubrique de tri. Slectionnez
cette rubrique et dplacez-la en seconde rubrique de tri laide des boutons flchs.

Passez ltape suivante.


11.Lassistant demande dindiquer sil y a une rupture.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 231
Quest-ce quune rupture?
Une Rupture est une opration qui consiste regrouper des enregistrements (ou
lignes) suivant un ou plusieurs critres. Attention, les enregistrements (ou lignes)
sont bien entendu imprims.
Une rupture est OBLIGATOIREMENT lie un tri.
Notez la prsence dun entte de rupture et dune fin de rupture.
Notes

Les informations communes aux diffrentes lignes sont prsentes dans lentte
de rupture.
Les totaux, compteurs, ... sont prsents dans la fin de rupture.
Cette rupture permet de regrouper une srie denregistrements par rapport
un mme critre. Dans notre exemple, la rupture concerne le pays et permet de
regrouper tous les clients dun mme pays.

12.Rpondez "Oui". Passez ltape suivante.


13.Indiquez sur quelle rubrique de tri la rupture doit seffectuer. Dans notre cas, nous allons
utiliser plusieurs ruptures:
la premire rupture seffectue sur le pays.
la seconde rupture seffectue la province.
Dcochez la rubrique "Client.NomComplet".

232 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
14.Passez ltape suivante.
15.Vous allez maintenant indiquer dans quel ordre sont imprimes les rubriques et leur rpar-
tition dans les diffrents blocs. Dans notre exemple:
seul le pays sera dans le bloc "Dbut de rupture 1". La rubrique "Pays" est automatiquement
associe au "Dbut de rupture 1".
seul ltat sera dans le bloc "Dbut de rupture 2". La rubrique "EtatProvinceRgion" est auto-
matiquement associe au "Dbut de rupture 2".
seules les rubriques NomComplet, Adresse, CodePostal, Ville, EtatProvinceRgion et Pays
seront affiches dans ltat.

Dcochez les rubriques IDClient, Complment, Tlphone, Mobile et Email. Passez ltape
suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 233
16.Cet cran permet de dfinir la mise en page de ltat.

Nous garderons les valeurs par dfaut avec lorientation "Portrait".

Marges dimpression
Lors du choix des marges dimpression, noubliez pas de tenir compte des
Notes

marges physiques des imprimantes. Les marges physiques sont les marges
rserves par limprimante dans lesquelles il nest pas possible dimprimer. De
plus, les marges physiques diffrent en fonction des modles dimprimante.

17.Passez ltape suivante.


18.Cet cran permet de slectionner le gabarit utilis pour ltat. Il est conseill dutiliser
le mme gabarit que pour les fentres. Dans notre cas, slectionnez par exemple le gabarit
"Gensteel" et passez ltape suivante.
19.Il ne reste plus qu donner un nom et un libell ltat et le sauvegarder.
Saisissez le titre "Liste des clients".
Conservez le nom propos par dfaut: "ETAT_Liste_des_clients".
20.Validez.
21.Acceptez de passer en mode paysage en validant.
22.Acceptez de rduire ltat en validant.

234 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
23.Ltat apparat sous lditeur dtats. Enregistrez ltat.
Ltat est termin. Nous allons immdiatement le tester pour voir le rsultat.
Excutez cet tat en cliquant sur parmi les boutons daccs rapide.
La destination de limpression peut tre au choix:

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 235
Choisissez "Aperu avant impression" et validez.
Lexcution de ltat saffiche lcran.

Vous pouvez imprimer directement la page en cours ou la totalit du document en cliquant sur
limprimante (volet "Imprimer").

Lancement de limpression dun tat par programmation


Notre tat tant termin, nous allons crer un menu dans notre fentre "FEN_Menu" pour lancer
directement limpression de cet tat.
Pour insrer un menu dans la fentre "FEN_Menu":
1.Affichez la fentre "FEN_Menu" sous lditeur (double-cliquez sur son nom dans le volet "Ex-
plorateur" par exemple).
2.Sous le volet "Fentre", dans le groupe "Barres et menus", droulez "Menu principal" et
slectionnez loption "Ajouter le menu principal".
3.Un menu sinsre dans la fentre sous la barre de titre. Ce menu contient par dfaut une
option qui se nomme "Menu".
4.Slectionnez loption "Menu":
Affichez le menu contextuel (clic droit).
Slectionnez loption "Ajouter aprs".

236 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Dans la zone de saisie, saisissez "Etats".

6.Slectionnez loption "Etats":


Affichez le menu contextuel (clic droit).
Slectionnez loption "Transformer pour drouler un sous-menu".
7.Dans la zone de saisie qui saffiche, saisissez "Liste des clients". Validez avec la touche
[ENTREE].

Pour saisir le code de loption "Liste des clients":


1.Slectionnez loption "Liste des clients" sous lditeur.
2.Affichez le menu contextuel (clic droit).
3.Slectionnez loption "Code". Lditeur de code apparat.
4.Dans le traitement "Slection du menu", saisissez le code suivant:
// Limpression se fait dans un aperu
iAperu()

// Imprime ltat
iImprimeEtat(ETAT_Liste_des_clients)

Examinons ce code:
La fonction iAperu (ou iDestination) permet de paramtrer la destination de limpression. Il
est par exemple possible dimprimer:
dans un fichier texte,
au format HTML,
au format PCL,
au format PDF, RTF, XLS, XML,
sur un fax.
Dans notre cas, limpression se fera dans la fentre daperu avant impression.
La fonction iImprimeEtat (comme son nom lindique) permet dimprimer un tat.
Testez la fentre et ses options de menu en cliquant sur parmi les boutons daccs

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 237
rapide.
Nous allons maintenant finir ce menu en ajoutant une option pour quitter lapplication.
1.Sous lditeur, slectionnez loption "Menu".
2.Dans le menu contextuel (clic droit), slectionnez loption "Transformer pour drouler un
sous-menu".
3.Dans la zone de saisie qui saffiche, saisissez "Quitter".
4.Nous allons associer cette option de menu au raccourci clavier "ALT + F4":
Slectionnez loption de menu "Quitter".
Dans le menu contextuel (clic droit), slectionnez loption "Description de loption".
Dans longlet "Gnral", dans la zone "Raccourci clavier", slectionnez "F4" et cochez "Alt".

Validez.
5.Affichez le code de loption et dans le traitement "Slection du menu", saisissez le code
suivant:

// Demande lutilisateur sil souhaite quitter lapplication


SI OuiNon(Non,Quitter lapplication ?) = Oui ALORS
// Fin de lapplication
FinProgramme()
FIN

Examinons ce code:
La fonction OuiNon permet de dialoguer avec lutilisateur en lui posant une question. Lutili-
sateur peut rpondre la question laide de 2 boutons: oui ou non.
La fonction FinProgramme (appele si lutilisateur clique sur "Oui") permet de terminer lap-
plication.
Testez la fentre en cliquant sur parmi les boutons daccs rapide.

238 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.8. Statistiques: champs
Graphe et Tableau Crois Dynamique

Ce que vous allez apprendre dans cette leon...

Afficher les donnes sous forme de graphe


Raliser des tableaux de synthse grce au Tableau Crois Dynamique

Dure estime: 30 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 239
Prsentation
Dans une application de gestion, la prsentation de statistiques ou de tableaux rcapitulatifs est
souvent ncessaire. Ce type de prsentation peut tre utilis par exemple pour suivre:
lvolution des commandes dans le temps,
lvolution du chiffre daffaires,
lvolution des stocks,
...
Tout dcideur demande ces informations.
Pour inclure rapidement et simplement ces informations dans vos applications, WINDEV propose
de nombreux champs. Dans cette leon, nous allons utiliser deux champs spcifiques:
le champ Graphe.
le champ Tableau crois dynamique.

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
Corrig

complte (Avec fentres)".


Un projet corrig complet de lapplication est galement disponible: sous le vo-
let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)".

Affichage de donnes dans un champ Graphe


Pour manipuler le champ Graphe en conditions relles, nous allons raliser dans lapplication
"WD Application Complte" un champ Graphe prsentant ltat des ventes.
Nous allons tout dabord raliser une requte pour slectionner les donnes afficher dans le
champ Graphe, puis nous crerons le champ Graphe.

Slection des donnes afficher dans le champ Graphe


Pour raliser notre graphe, nous voulons la somme des commandes effectues par date.
Nous allons crer une requte qui effectue une somme. En effet, nous allons faire le cumul du
montant total des commandes (rubrique TotalTTC dans le fichier de donnes Commande).
Nous allons calculer le total de toutes les commandes par date (le Chiffre dAffaires par date).
Crez une nouvelle requte:
1.Cliquez sur parmi les boutons daccs rapide.
2.La fentre de cration dun nouvel lment saffiche: cliquez sur "Requte".
3.Nous allons raliser une requte de slection. Slectionnez loption "Slection (SELECT)".
Passez ltape suivante.
4.La fentre de description de la requte apparat.

240 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Ajoutez les rubriques Commande.Date et Commande.TotalTTC la requte:
Sur la gauche, droulez le fichier "Commande".
Double-cliquez sur la rubrique Date puis sur la rubrique TotalTTC.
Les deux rubriques apparaissent au centre de lcran (dans la zone "Liste des lments de
votre requte").
Pour effectuer la somme des valeurs de "Commande.TotalTTC":
1.Slectionnez la rubrique "Commande.TotalTTC" au centre.
2.Dans les "Actions", sur la droite, cliquez sur "Somme".

3.Validez la description de la somme. La somme des "TotalTTC" a t ajoute dans la liste du


rsultat de la requte.

Au fur et mesure de la cration de la requte, lditeur de requtes de WINDEV


cre les requtes en langage naturel (et galement en SQL).
Notes

Vous pouvez ainsi vrifier que vous ne vous tes pas tromp par rapport lob-
jectif de votre requte.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 241
Nous allons maintenant regrouper les donnes par anne et les trier:
1.Slectionnez la rubrique "Commande.Date" au centre.
2.Dans les "Actions", sur la droite, cliquez sur "Anne, dpartement" et slectionnez "Anne".

3.Validez la fentre qui saffiche.


4.La rubrique "Anne" saffiche au centre de la description de la requte.
5.Slectionnez la rubrique "Anne" et dfinissez le tri:
Affichez le menu contextuel de la rubrique "Anne".
Slectionnez loption "Trier la rubrique .. Trier par ordre croissant".
Une flche indiquant le tri apparat dans la description de la requte. 
La requte est cre. Nous allons lui donner un nom et la sauvegarder.
1.En haut de lcran, saisissez le nom "REQ_EvolutionsVentes".
2.Saisissez le libell "Somme des commandes par date".
3.Validez.
4.La reprsentation graphique de la requte est la suivante:

242 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Cliquez sur pour sauvegarder la requte. Il ne reste plus qu tester la requte.
6.Cliquez sur pour tester la requte.

Cration du champ Graphe


Nous allons intgrer le champ Graphe dans un nouvel onglet de la fentre FEN_Menu.
Pour crer un nouvel onglet dans la fentre "FEN_Menu":
1.Affichez si ncessaire la fentre "FEN_Menu" sous lditeur de fentres.
2.Double-cliquez sur le champ Onglet: la fentre de description du champ saffiche.
3.Dans longlet "Gnral", slectionnez le volet donglet "Recherche de commandes" et cli-
quez sur le bouton "Nouveau". Un nouveau volet apparat.
4.Slectionnez le nouveau volet (nomm "Volet 4").
5.Dans la partie droite de lcran, saisissez le libell du volet donglet: "Graphe".
6.Dans la partie droite de lcran, slectionnez une image dans le catalogue dimage:
Cliquez sur le bouton "Catalogue".
Dans le champ de recherche saisissez "Graphe".
Slectionnez le thme "Flat Soft" et validez.
Slectionnez par exemple licne et validez les diffrents crans.
7.Validez la fentre de description du champ Onglet.
8.Le nouvel onglet apparat dans la fentre.
Pour crer le champ Graphe:
1.Dans la fentre "FEN_Menu", slectionnez longlet "Graphe" si ncessaire.
2.Sous le volet "Cration", dans le groupe "Champs graphiques", cliquez sur "Graphe". Le
champ apparat sous le curseur de la souris.
3.Cliquez dans longlet "Graphe". Lassistant de cration dun champ Graphe se lance.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 243
4.Dans lassistant, slectionnez un graphe de type "Histogramme". Passez ltape suivante
de lassistant.
5.Saisissez les paramtres du graphe:
le titre du graphe: "Evolution des ventes".
la lgende: le graphe est sans lgende.
les tiquettes doivent tre affiches.

Passez ltape suivante.


6.Saisissez les paramtres des axes:
Titre de laxe des X: Anne
Titre de laxe des Y: CA
Conservez les options par dfaut et passez ltape suivante.

244 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7.Nous allons maintenant dfinir la source des donnes.
Pour les tiquettes (valeurs affiches en bas du graphe, dans notre exemple, ce sont les
annes):
la source correspond : "Parcours dun fichier ou dune requte",
les donnes correspondent la rubrique Anne dans la requte REQ_EvolutionsVentes.

Pour les sries (valeurs affiches dans le champ Graphe): le champ graphe va afficher une
seule srie correspondant au total TTC calcul par la requte REQ_EvolutionsVentes.
Double-cliquez dans le tableau "Sources des sries".
Saisissez le libell "Srie 1".
la source correspond : Parcours dun fichier ou dune requte,
les donnes correspondent la rubrique "La_somme_TotalTTC" dans la requte REQ_Evolu-
tionsVentes.

Passez ltape suivante.


8.Nous nallons pas associer dimage de fond au champ Graphe. Passez ltape suivante.
9.Donnez un nom au champ Graphe: "GRF_EvolutionsVentes" et validez lassistant.
10.Le champ Graphe est automatiquement cr sous lditeur.
11.Cliquez sur pour sauvegarder la fentre puis sur pour tester la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 245
12.Cliquez sur longlet "Graphe" pour visualiser le graphe.

Fonctionnalits automatiques du champ Graphe (FAA)


Comme le champ Table, le champ Graphe propose plusieurs fonctionnalits au-
tomatiques accessibles via son menu contextuel.
Notes

Il est possible par exemple:


de changer le type du graphe,
denregistrer le graphe,
dimprimer le graphe, ...

13.Terminez le test et revenez sous lditeur.

246 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour matriser lutilisation dun champ Graphe, nhsitez pas tudier les
exemples fournis avec WINDEV:
Exemple Exemple unitaire: Champ Graphe
Exemple didactique: WD Graphe
Ces exemples sont disponibles depuis la fentre de bienvenue de WINDEV
(CTRL>).

Cration de tableaux de synthse grce au champ Tableau


Crois Dynamique
Pour manipuler le champ Tableau crois dynamique en conditions relles, nous allons raliser un
champ Tableau crois dynamique permettant de visualiser les ventes de produits par pays et par
an en quantit et en chiffre daffaires.

Comme pour le champ Graphe, nous allons crer le champ Tableau crois dynamique dans un
nouvel onglet de la fentre FEN_Menu.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 247
Pour crer un nouvel onglet dans la fentre "FEN_Menu":
1.Affichez si ncessaire la fentre "FEN_Menu" sous lditeur de fentres.
2.Double-cliquez sur le champ Onglet: la fentre de description du champ saffiche.
3.Dans longlet "Gnral", slectionnez le volet donglet "Graphe" et cliquez sur le bouton
"Nouveau". Un nouveau volet apparat.
4.Slectionnez le nouveau volet (nomm "Volet 5").
5.Dans la partie droite de lcran, saisissez le libell du volet donglet: "Tableau crois dyna-
mique".
6.Dans la partie droite de lcran, slectionnez une image dans le catalogue dimages:
Cliquez sur le bouton "Catalogue".
Dans le champ de recherche saisissez "Tableau".
Slectionnez le thme "Flat Soft" et validez.
Slectionnez la seconde icne propose et validez les diffrents crans.
7.Validez la fentre de description du champ Onglet.
8.Le nouvel onglet apparat dans la fentre.

Cration du champ Tableau Crois Dynamique

Pour crer un champ Tableau crois dynamique:


1.Dans la fentre "FEN_Menu", slectionnez longlet "Tableau crois dynamique" si ncessaire.
2.Sous le volet "Cration", dans le groupe "Donnes", droulez "Table et liste" et slectionnez
"Tableau crois dynamique (TCD)". Le champ apparat sous le curseur de la souris.
3.Cliquez dans longlet "Tableau crois dynamique". Lassistant de cration dun champ Ta-
bleau crois dynamique se lance.
4.Passez ltape suivante.
5.Dans les cellules, nous voulons afficher deux informations:
le total des ventes.
la quantit vendue.
Dans lassistant, nous allons tout dabord slectionner le fichier source: LigneCommande.
Pour la premire information, slectionnez:
Afficher: "La somme de".
Source: "TotalTTC".
Cliquez sur le bouton "Ajouter une valeur supplmentaire".
Pour la seconde information, slectionnez:
Afficher: "La somme de".
Source: "Quantit".

248 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Passez ltape suivante.
6.Dans les enttes des colonnes, nous voulons afficher les annes. Dans la partie gauche,
droulez le fichier Commande, et double-cliquez sur la rubrique Date.

Passez ltape suivante.


7.Lassistant propose une liaison pour atteindre le fichier Commande et propose dafficher en
entte trois niveaux dinformations: les annes, les trimestres et les mois.

8. Validez et passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 249
9.Dans les enttes des lignes, nous voulons afficher les produits regroups par pays. Dans la
partie gauche:
droulez le fichier Client et double-cliquez sur la rubrique Pays.
droulez le fichier Produit et double-cliquez sur la rubrique Libell.

Passez ltape suivante.


10.Lassistant propose une liaison pour chaque entte de ligne (Client.Pays et Produit.Li-
bell). Validez chaque liaison et passez ltape suivante.
11.Donnez un nom au champ Tableau Crois Dynamique: TCD_Ventes.
12.Validez lassistant.
13.Le champ Tableau Crois Dynamique est automatiquement cr dans la fentre, ainsi
quun bouton "Calculer". Ce bouton va permettre lutilisateur de lancer le calcul des don-
nes afficher dans le Tableau crois dynamique. Ce bouton peut tre plac nimporte quel
endroit dans la fentre.
14.Enregistrez la fentre ( parmi les boutons daccs rapide).

250 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Test du Tableau Crois dynamique

Testez la fentre ( parmi les boutons daccs rapide). Cliquez sur longlet "Tableau crois
dynamique" puis sur le bouton "Calculer".

ATTENTION: Selon la taille de la base de donnes et le nombre denttes de


Notes

lignes et de colonnes, les temps de calcul peuvent tre plus ou moins longs.
Vous pouvez sauvegarder le rsultat du tableau crois dynamique pour viter le
recalcul chaque interrogation.

Cliquez sur les "+" pour drouler les diffrentes colonnes et lignes.
Arrtez le test. Nous allons faire une petite amlioration dans ce tableau crois dynamique.
En effet, rien nindique quun des chiffres dans les cellules correspond une quantit. Nous
allons utiliser un masque daffichage spcifique pour cette valeur.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 251
Pour mettre un masque daffichage dans une cellule:
1.Affichez la description du champ Tableau crois dynamique (double-clic sur le champ).
2.Dans longlet "Contenu", cliquez sur "VAL_SansNom2". La description des valeurs affiches
dans les cellules apparat.
3.Dans la zone "Masque", ajoutez le prfixe "Qt: ".

4.Validez la fentre de description.


5.Relancez le test de la fentre.

252 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.9. Envoyer un email

Ce que vous allez apprendre dans cette leon...

Comment envoyer un email depuis une application WINDEV


Comment intgrer un superchamp une fentre
Comment dfinir lordre de navigation sur une fentre
Comment ouvrir une fentre non modale

Dure estime: 20 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 253
Prsentation
Le WLangage possde toutes les fonctions ncessaires pour grer lenvoi et la rception demails.
Vous pouvez galement accder toutes les caractristiques dun email:
expditeur, destinataires,
date denvoi, sujet, message,
pices jointes...
WINDEV permet de grer les emails grce plusieurs mthodes:
Gestion via Lotus Notes, Outlook ou MS Exchange:
Le logiciel de messagerie Lotus Notes ou Outlook: grce ces logiciels, il est possible
denvoyer et de recevoir des emails.
LAPI "Simple Mail API" (appel aussi SMAPI ou Simple MAPI): ce mode de gestion des em-
ails est utilis par la plupart des applications Microsoft et principalement Microsoft Ex-
change.
Gestion via les protocoles POP3, IMAP et SMTP:
Le protocole POP3 : ce protocole de rception des emails est reconnu par tous les fournis-
seurs de services. Il permet de dialoguer directement avec le serveur, disponible chez votre
fournisseur daccs. Ce protocole permet de lister les messages reus et de les lire.
Le protocole IMAP: ce protocole de rception demails permet de laisser les emails sur le
serveur dans le but de pouvoir les consulter depuis diffrents clients de messagerie ou web-
mails.
Le protocole SMTP: ce protocole denvoi demails est reconnu par tous les fournisseurs de
services.
Dans cette leon, nous allons crer une fentre permettant lutilisateur denvoyer un email de-
puis lapplication "WD Application Complte". Cette fentre est la suivante :

Nous allons pour cela, utiliser le protocole SMTP. En effet, cest le mode qui est actuellement le
plus utilis dans le monde.
Pour plus de dtails sur les autres mthodes, consultez laide en ligne.

254 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour suivre cette leon, il est ncessaire davoir effectu les leons de cette par-
Corrig tie jusqu la leon "Leon 3.7. Imprimer une liste de clients", page 228.
Un projet corrig complet de lapplication est galement disponible: sous le vo-
let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)".
Exemple

Pour plus de dtails sur la gestion des emails, consultez lexemple "WD Mail"
(exemple complet), livr en standard avec WINDEV. Cet exemple est accessible
depuis la fentre de bienvenue de WINDEV (CTRL >).

Une fentre pour envoyer des emails


La fentre que nous allons crer va contenir tous les champs permettant lutilisateur de saisir
les diffrents lments de lemail. Un bouton "Envoyer" regroupera tous les traitements permet-
tant denvoyer lemail.

Cration de la fentre

Crez une nouvelle fentre:


1.Ouvrez si ncessaire le projet "WD Application Complte".
2.Crez une nouvelle fentre vierge.
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Fentre" puis sur "Fe-
ntre".
Lassistant de cration de fentre se lance.
Dans longlet "Base sur un modle", slectionnez "Utiliser: FENMOD_Modle" et validez
lassistant.
3.Enregistrez la fentre ( ou CTRL S). Cette fentre a pour titre "Envoi dun email", son nom
"FEN_Envoi_d_un_email" est automatiquement propos. Validez les informations proposes.

Cration des champs de paramtrage de lenvoi


Nous allons dans un premier temps crer tous les champs permettant de paramtrer le serveur
SMTP utilis pour lenvoi des messages. Quatre champs de saisie sont ncessaires:
Serveur SMTP
Port du serveur SMTP
Nom de lutilisateur
Mot de passe de lutilisateur.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 255
Pour crer le champ de saisie correspondant au nom du serveur SMTP:
1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.La forme du champ apparat sous le curseur de la souris.
3.Cliquez en haut gauche de la fentre: le champ de saisie est automatiquement cr.
4.Slectionnez le champ et utilisez la touche [ENTREE] du clavier. Le libell passe en dition.
Saisissez "Serveur SMTP" et validez.
Pour crer le champ de saisie correspondant au port:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie".
2.Slectionnez un champ de saisie prdfini de type Entier.
3.La forme du champ apparat sous le curseur de la souris.
4.Cliquez sous le champ "Serveur SMTP": le champ de saisie est automatiquement cr.
5.Slectionnez le champ et utilisez la touche [ENTREE] du clavier. Le libell passe en dition.
Saisissez "Port" et validez.
Pour crer le champ de saisie correspondant au nom de lutilisateur:
1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.La forme du champ apparat sous le curseur de la souris.
3.Cliquez sous le champ "Port": le champ de saisie est automatiquement cr.
4.Slectionnez le champ et utilisez la touche [ENTREE] du clavier. Le libell passe en dition.
Saisissez "Utilisateur" et validez.
Pour crer le champ de saisie correspondant au mot de passe de lutilisateur:
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie".
2.Slectionnez un champ de saisie prdfini "Mot de passe".
3.La forme du champ apparat sous le curseur de la souris.
4.Cliquez sous le champ "Utilisateur": le champ de saisie est automatiquement cr.

Le champ de saisie "Mot de passe" apparat sous lditeur avec une puce et un
oeil.
En excution, lorsque lutilisateur saisira son mot de passe, les caractres seront
Astuce

remplacs par des puces. Un clic sur loeil permettra de voir le mot de passe
saisi en clair: lutilisateur pourra ainsi vrifier son mot de passe.
Si ncessaire cette fonctionnalit peut tre dsactive par programmation. pour
plus de dtails, consultez laide en ligne.

Alignez les champs que vous venez de crer:


1.Slectionnez les quatre champs.
2.Sous le volet "Alignement", dans le groupe "Interne et externe", cliquez sur "Justifier (Int. et
Ext.)".

256 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3.Enregistrez la fentre ( ou CTRL S).

Cration des champs permettant de saisir les caractristiques de lemail


Pour crire un email, lutilisateur doit avoir sa disposition:
Un champ permettant de saisir ladresse de lexpditeur.
Un champ permettant de saisir ou slectionner ladresse du destinataire.
Un champ permettant de saisir le sujet de lemail.
Un champ permettant de saisir le texte de lemail. Lutilisateur doit avoir la possibilit de mettre
en forme le texte de lemail.
Un champ permettant dajouter des pices jointes.
Nous allons ajouter tous ces champs en quelques clics dans notre fentre.

Pour crer le champ de saisie correspondant ladresse de lexpditeur:


1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie".
2.Slectionnez le champ de saisie prdfini "E-Mail".
3.La forme du champ apparat sous le curseur de la souris.
4.Cliquez sous le champ "mot de passe": le champ de saisie est automatiquement cr.
5.Slectionnez le champ et utilisez la touche [ENTREE] du clavier. Le libell passe en dition.
Saisissez "Expditeur" et validez.
Le champ permettant la saisie de ladresse du destinataire va tre un champ proposant les
adresses des clients prsents dans la base de donnes mais aussi permettant lutilisateur
de saisir une autre adresse. Pour cela, nous allons utiliser un champ de type "Combo avec
saisie" li au fichier de donnes Client.
1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur "Combo".
2.La forme du champ apparat sous le curseur de la souris.
3.Cliquez sous le champ "Expditeur": lassistant de cration du champ Combo se lance auto-
matiquement.
4.Slectionnez loption "Afficher des donnes dun fichier ou dune requte existante". Passez
ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 257
5.Slectionnez le fichier "Client". Passez ltape suivante.
6.Nous voulons afficher dans le champ les adresses email des clients:
Dcochez la rubrique "IDClient".
Cochez la rubrique "Email".
Passez ltape suivante.
7.La rubrique de tri est la rubrique "Email". Passez ltape suivante.
8.La valeur de retour est galement la rubrique "Email". Passez ltape suivante.
9.Conservez les options par dfaut. Passez ltape suivante.
10.Dans lcran "Paramtres supplmentaires", cochez loption "Autoriser la saisie". En effet,
lutilisateur doit pouvoir saisir une nouvelle adresse email. Passez ltape suivante.
11.Modifiez le nom et le libell du champ Combo:
Le nom du champ est "COMBO_Destinataire".
Le libell du champ devient "Destinataire".
12.Validez lassistant. Le champ est automatiquement cr dans la fentre.
Pour crer le champ de saisie correspondant au sujet de lemail:
1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.La forme du champ apparat sous le curseur de la souris.
3.Cliquez sous le champ "Destinataire": le champ de saisie est automatiquement cr.
4.Slectionnez le champ et utilisez la touche [ENTREE] du clavier. Le libell passe en dition.
Saisissez "Sujet" et validez.
Pour le corps du message, nous allons utiliser un champ de saisie HTML: lutilisateur pourra
ainsi mettre en forme facilement le texte de lemail grce une barre doutils spcifique.
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie".
2.Slectionnez un champ de saisie prdfini "Texte HTML".
3.La forme du champ apparat sous le curseur de la souris.
4.Cliquez sous le champ "Sujet": le champ de saisie est automatiquement cr.
5.Agrandissez le champ afin que plusieurs lignes soient visibles.
6.Affichez la fentre de description du champ (double-cliquez sur le champ).
Sous longlet "Gnral", modifiez le mode daffichage de la barre doutils du formatage.
Cette barre doutil doit tre toujours visible.
Validez la fentre de description du champ.
7.Si ncessaire, repositionnez le champ pour que la barre doutils soit correctement affiche.
Pour que lutilisateur puisse ajouter une pice jointe, nous allons lui proposer un slecteur de
fichiers. Mais au lieu de le crer de toutes pices, nous allons utiliser un champ de saisie
pr-dfini de type fichier. Grce au menu contextuel du champ (option "Parcourir"), lutilisa-
teur pourra slectionner le fichier joindre.
1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Saisie". La liste des
champs pr-dfinis disponibles par dfaut saffiche.
2.Slectionnez le champ "Fichier" et ralisez un "Drag and Drop" vers la fentre "FEN_
Envoi_d_un_email": lchez le champ en dessous du champ "Texte HTML". Le slecteur de
fichiers est immdiatement cr.
Alignez les diffrents champs prsents dans la fentre.

258 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons maintenant crer le bouton permettant denvoyer les emails.

Envoi de lemail

Pour crer le bouton denvoi:


1.Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
2.Cliquez lemplacement de cration du bouton (par exemple en bas de la fentre).
3.Slectionnez le bouton et modifiez son libell (par exemple en utilisant la touche [ENTREE]).
Le nouveau libell est "Envoyer".
4.Editez le code de ce bouton: dans le menu contextuel du bouton (clic droit), slectionnez
loption "Code".
5.Saisissez les diffrents codes suivants dans le traitement "Clic sur":
le code de connexion et douverture de la session SMTP:

MaSession est un EmailSessionSMTP


MaSession..Nom = SAI_Utilisateur
MaSession..MotDePasse = SAI_Mot_de_passe
MaSession..AdresseServeur = SAI_Serveur_SMTP
MaSession..Port = SAI_Port
// Ouvre la session SMTP
SI PAS EmailOuvreSession(MaSession) ALORS
Erreur(Impossible de se connecter au serveur SMTP., ...
ErreurInfo())
RETOUR
FIN

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 259
Ce code utilise une variable avance de type EmailSessionSMTP. Les diffrentes proprits
de cette variable permettent de dfinir les caractristiques de la session SMTP. La fonction
EmailOuvreSession utilise avec cette variable permet ensuite douvrir la session.
le code de prparation de lemail:

MonMessage est un Email

MonMessage..Expediteur = SAI_Expditeur
MonMessage..Sujet = SAI_Sujet
MonMessage..HTML = SAI_Texte_HTML
MonMessage..Message = HTMLVersTexte(SAI_Texte_HTML)

// Ajoute un destinataire
Ajoute(MonMessage..Destinataire,...
COMBO_Destinataire..ValeurAffiche)

// Ajoute la pice jointe si besoin


SI SAI_Fichier <> ALORS
EmailChargeFichierAttach(MonMessage, SAI_Fichier)
FIN

Ce code utilise une variable de type Email. Les diffrentes proprits de cette variable
permettent de dfinir les caractristiques de lemail envoyer. Ce code associe donc le
contenu des diffrents champs de la fentre aux proprits de la variable de type Email.
le code denvoi de lemail:
// Envoie lemail
SI EmailEnvoieMessage(MaSession, MonMessage) = Faux ALORS
Erreur(Message non envoy., ErreurInfo())
SINON
// Message envoy
ToastAffiche(Message envoy, toastCourt, ...
cvMilieu, chCentre)
FIN

Lenvoi de lemail est simplement ralis avec la fonction EmailEnvoieMessage. Il suffit de lui
passer en paramtre la variable contenant les caractristiques de la session SMTP et la
variable contenant les caractristiques de lemail envoyer.
Si lemail est envoy, un message de type Toast indiquant que lemail a t envoy est
affich. Un message Toast correspond un message furtif.
le code de fermeture de la session SMTP:
// Ferme la session SMTP
EmailFermeSession(MaSession)

Ce code ferme la session grce la fonction EmailFermeSession.


Enregistrez la fentre et son code ( ou CTRL S).

260 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Amliorations de la fentre
Nous allons apporter quelques amliorations notre fentre:
Ajouter un bouton de fermeture
Remettre en forme la fentre grce la gestion des ancrages et lordre de navigation.
Lancer la fentre depuis la fentre "FEN_Menu".

Fermeture de la fentre

Pour ajouter un bouton permettant de fermer la fentre:


1.Sous le volet "Cration", dans le groupe "Champs usuels", droulez "Bouton": la liste des bou-
tons prdfinis saffiche.
2.Cliquez sur le bouton "Fermer".
3.Cliquez dans la fentre la position o le bouton doit tre cr (par exemple, en bas,
droite du bouton Envoyer).

Mise en forme

Pour dfinir les ancrages:


Slectionnez les champs "Expditeur", "Destinataire" et "Sujet": ces champs doivent tre
ancrs en largeur.
Slectionnez le champ "Texte HTML": ce champ doit tre ancr en largeur et en hauteur.
Slectionnez les boutons: ces champs doivent tre ancrs droite et en bas.
Slectionnez le champ de slection de fichier: ce champ doit tre ancr en largeur et en
bas.
Pour dfinir lordre de navigation:
Lordre de navigation des champs est lordre dans lequel lutilisateur pourra sai-
sir les valeurs dans les diffrents champs de la fentre. Le passage dun champ
un autre sera effectu lors de lappui sur la touche [TAB] pendant lexcution.
Lordre de saisie par dfaut correspond lordre de cration des champs. Il peut
Note

tre modifi:
soit en donnant un ordre de saisie automatique: le premier champ en sai-
sie sera le champ situ le plus en haut gauche, le deuxime sera celui
qui est immdiatement situ droite ou immdiatement en dessous ...
soit en spcifiant un ordre de saisie par slection.

1.Affichez lordre de navigation grce la touche [F5].


2.Dfinissez lordre de navigation automatique: sous le volet "Fentre", dans le groupe
"Ordre", droulez "Navigation" et slectionnez "Dfinir en automatique".
3.Les numros sont modifis et apparaissent dsormais dans lordre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 261
4.Appuyez nouveau sur la touche [F5] pour faire disparatre les numros.
5.Enregistrez la fentre ( ou CTRL S).

Ouverture non modale de la fentre


La fentre de gestion des emails va tre ouverte directement depuis la fentre "FEN_Menu". Son
mode douverture va tre spcifique car cette fentre ne doit pas bloquer la consultation des dif-
frentes informations affiches dans la fentre "FEN_Menu".
Pour ouvrir la fentre "FEN_Envoi_d_un_email" depuis la fentre "FEN_Menu":
1.Affichez la fentre "FEN_Menu" sous lditeur (double-cliquez sur son nom dans le volet "Ex-
plorateur" par exemple).
2.Sous lditeur, droulez loption "Menu" et slectionnez loption "Quitter".
3.Affichez le menu contextuel de loption "Quitter" (clic droit) et slectionnez "Ajouter avant".
4.Saisissez le libell de loption "Envoyer un email" et validez.
5.Slectionnez nouveau loption "Quitter".
6.Affichez le menu contextuel de loption "Quitter" (clic droit) et slectionnez "Insrer un spa-
rateur".
7.Affichez le menu contextuel de loption "Envoyer un email" (clic droit) et slectionnez "Code".
8.Saisissez le code suivant:
// Ouvre la fentre denvoi demail
OuvreFille(FEN_Envoi_d_un_email)

Dans ce code, la fonction OuvreFille permet de raliser une ouverture "non modale" de la
fentre: lutilisateur pourra la fois crire un email et consulter les informations de la
fentre principale.

262 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Enregistrez la fentre et son code ( ou CTRL S).
Lancez le test du projet ( parmi les boutons daccs rapide) et louverture de la fentre
denvoi demails.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 263
Leon 3.10. Identifier lutilisateur : le
groupware utilisateur

Ce que vous allez apprendre dans cette leon...

Quest-ce le groupware utilisateur?


Intgrer le groupware utilisateur
Configurer le groupware utilisateur
Tester le groupware utilisateur

Dure estime: 20 mn

264 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Une application peut tre utilise par diffrents intervenants, ayant tous des profils diffrents. Il
est souvent ncessaire de prvoir des niveaux daccs selon les fonctions de lutilisateur.
Prenons un exemple simple: lors de la mise en place dune gestion commerciale, lapplication
propose les fonctionnalits suivantes:
Consultation du tarif
Modification du tarif
Saisie des commandes
Saisie des clients.
Selon lutilisateur, les accs possibles sont diffrents. Quelques exemples:
les secrtaires peuvent consulter le tarif et crer des commandes
les commerciaux peuvent consulter le tarif et tablir les commandes, grer de nouveaux clients.
les directeurs commerciaux ont accs toutes les options.
WINDEV permet de grer ces diffrents niveaux daccs en quelques clics dans vos applications
grce au groupware utilisateur.
Nous allons intgrer le groupware utilisateur dans notre application "WD Application Complte" et
le configurer.

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
Corrig

cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
complte (Corrig)".

Intgrer le groupware utilisateur

Pour intgrer le groupware utilisateur dans le projet "WD Application Complte":


1.Sous le volet "Projet", dans le groupe "Projet", cliquez sur "Groupware Utilisateur". La fentre
de paramtrage du groupware utilisateur saffiche.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 265
2.Dans longlet "Intgration", deux modes dintgration sont disponibles:
Groupware utilisateur automatique: tous les lments du groupware utilisateur sont int-
grs directement dans votre application. Vous profitez ainsi automatiquement de toutes les
volutions du groupware. De plus, il est possible dappliquer le gabarit du projet aux fe-
ntres de groupware.
Groupware utilisateur personnalis: tous les lments du groupware sont intgrs dans
votre application via un composant interne. Il est possible de personnaliser les diffrents
lments du groupware utilisateur. Cependant, les volutions ne seront pas prises en
compte.
3.Slectionnez loption "Groupware utilisateur automatique".
4.Slectionnez longlet "Excution". Deux modes de dmarrage sont disponibles:
Lancement automatique: le groupware est lanc ds le dmarrage de lapplication.
Lancement manuel: le groupware sera lanc par programmation.

5.Conservez loption "Lancement automatique".


6.Slectionnez longlet "Fichiers". Cet onglet permet de dfinir le format et lemplacement des
fichiers de donnes du groupware utilisateur. Dans notre cas, nous utiliserons des fichiers de
donnes HFSQL Classic, dans lemplacement spcifi par dfaut.
Si vous utilisez (ou si lutilisateur final utilise) Windows Vista (ou un systme
Note

dexploitation plus rcent), il est conseill dutiliser loption "Rpertoire des don-
nes".
7.Dans longlet "Fichiers", slectionnez loption "Activer lhistorique des connexions". Cette
option permet au superviseur de savoir qui sest connect, quand et quelle heure.

266 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8.Slectionnez longlet "Options". Cet onglet permet de dfinir le mode didentification de
lutilisateur:
gestion par le groupware utilisateur.
utilisation dun annuaire LDAP. Dans ce cas, lors de linstallation de lapplication, lutilisa-
teur pourra saisir les paramtres de son annuaire LDAP.
utilisation de lauthentification Windows.

9.Validez. Un message apparat indiquant que par dfaut, un utilisateur Superviseur est cr.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 267
Par dfaut, un seul utilisateur existe, le superviseur. Au premier lancement de
lapplication, connectez-vous en utilisant le nom: "superviseur". Vous pourrez
alors dfinir le mot de passe utilis par le superviseur.
Note

10.Validez ce message. Le groupware utilisateur est intgr dans lapplication.

Nous allons tout de suite tester notre application:


1.Lancez le test du projet ( parmi les boutons daccs rapide). Une fentre de login appa-
rat.
2.Connectez-vous en tant que superviseur.
3.Dfinissez le mot de passe et donnez sa confirmation. Validez.
4.Un nouveau menu apparat, permettant soit de tester lapplication, soit de configurer lap-
plication.

5.Choisissez loption "Configurer le groupware".

268 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Configurer le groupware utilisateur
La configuration du groupware utilisateur consiste dfinir les diffrents utilisateurs de lapplica-
tion et leurs droits sur les diffrentes fentres et champs de lapplication.

La configuration des utilisateurs peut tre ralise:


lors du dveloppement de lapplication. Les fichiers de donnes ncessaires
Note

(des utilisateurs et de leurs droits) pourront tre installs avec lapplication.


lorsque lapplication est installe, par ladministrateur de lapplication.

Cration des utilisateurs et des groupes

Pour configurer le groupware utilisateur, nous allons tout dabord crer un utilisateur "Test_1"
et lassocier au groupe "Tests". Nous allons ensuite configurer la gestion des droits du
groupe.

Pour crer un utilisateur:


1.Cliquez sur le bouton "Nouveau" en dessous de la zone "Utilisateurs". Lcran de saisie dun
nouvel utilisateur apparat.
2.Saisissez les informations suivantes:
Login: Test_1
Nom: Test_1
Mot de passe: Test_1

Par dfaut, le mot de passe apparat masqu lors de la saisie. Pour vri-
Note

fier le mot de passe saisi, cliquez sur licne en forme doeil: le mot de
passe apparat en clair tant que le bouton de la souris reste enfonc.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 269
3.Cliquez sur le bouton "Enregistrer". Lutilisateur "Test_1" apparat dans la liste des utilisa-
teurs dfinis pour le groupware utilisateur.
Pour crer un nouveau groupe dutilisateurs:
1.Cliquez sur le bouton "Nouveau" en dessous de la zone "Groupes". Lcran de saisie dun
nouveau groupe apparat.
2.Saisissez le nom du groupe "Tests".

3.Cliquez sur le bouton "Enregistrer". Le groupe "Tests" apparat dans la liste des groupes dfi-
nis pour le groupware utilisateur.

270 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour associer lutilisateur au groupe:
1.Slectionnez lutilisateur "Test_1" dans la fentre.
2.Ralisez un "Glisser - Dposer" (Drag and Drop) de lutilisateur "Test_1" vers le groupe
"Tests".

3.Lassociation est ralise.

Dfinition des droits


Nous allons maintenant dfinir les droits pour le groupe dutilisateurs "Tests". Ces droits seront
appliqus tous les utilisateurs du groupe. Dans notre exemple, les utilisateurs du groupe "Tests"
ne pourront pas:
Afficher la fentre denvoi demails.
Crer ou modifier un produit.
Pour dfinir les droits:
1.Cliquez sur loption "Gestion des droits" gauche de la fentre.
2.Slectionnez le groupe "Tests".
3.Cliquez sur "Suivant".
4.La fentre qui saffiche permet de slectionner chaque fentre ou tat de lapplication.
Pour chaque fentre ou tat, il est possible de spcifier si llment sera accessible ou non
par le groupe.
Pour chaque fentre, il est possible de dire si les champs de la fentre auront le comporte-
ment de lapplication (dfaut) ou seront inactifs, invisibles ou griss.
Pour interdire laccs la fentre "FEN_Envoi_d_un_email":
1.Slectionnez la fentre dans la liste.
2.Cliquez sur le bouton "Interdire laccs".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 271
3.La fentre devient interdite.
Dfinissez les droits sur la fentre "FEN_Menu". Cette fentre contient une option de menu
permettant dafficher la fentre de gestion des emails ainsi que les boutons "Nouveau" et
"Modifier".
1.Slectionnez la fentre "FEN_Menu".
2.Cliquez sur le bouton "Suivant".
3.La fentre de configuration des droits sur les champs de la fentre apparat.
4.Passez en "Gris" les champs "BTN_Modifier" et "BTN_Nouveau":

272 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Passez en invisible loption de menu "Envoyer un email":

6.Cliquez sur le bouton "Enregistrer".


7.Fermez la fentre de configuration.
8.Lditeur de WINDEV saffiche.

Test de lapplication

Nous allons maintenant tester lapplication en utilisant le login "Test_1".


1.Lancez le test du projet ( parmi les boutons daccs rapide). Une fentre de login appa-
rat.
2.Connectez-vous en tant que "Test_1" avec le mot de passe "Test_1". Validez.
3.Lapplication se lance. Vous pouvez observer que les boutons "Nouveau" et "Modifier" sont
griss et que loption de menu "Envoyer un email" est invisible.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 273
4.Quittez lapplication et revenez sous lditeur.

Dbrancher la gestion du groupware utilisateur


Dans la suite de ce cours, nous nutiliserons plus le groupware utilisateur. Vous pouvez directe-
ment le dbrancher.
1.Sous le volet "Projet", dans le groupe "Projet", cliquez sur "Groupware Utilisateur".
2.Dans la fentre qui saffiche, dans longlet "Intgration", slectionnez "Pas de groupware
utilisateur".
3.Validez.

Si vous effectuez des tests automatiques dans votre application, il est nces-
saire de configurer le groupware utilisateur pour ne pas utiliser la fentre de
Note

login. Il suffit de renseigner loption "Login automatique en mode test" dans lon-
glet "Excution" de la fentre de paramtrage du groupware.

274 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.11. Rutilisez du code grce
aux composants externes

Ce que vous allez apprendre dans cette leon ...

Quest-ce quun composant externe?


Etape par tape, la cration dun composant externe.
Diffusion dun composant externe.

Dure estime: 30 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 275
Prsentation

Un composant externe WINDEV


est une brique applicative qui peut
tre rutilise dans un nombre
illimit de projets (et donc dexcu-
tables).
Un composant externe permet
davoir un traitement identique
avec un code source unique pour
raliser une opration donne
mme si ce traitement doit tre
ralis par plusieurs projets.
Les projets qui utilisent un compo-
sant externe ont accs sous ldi-
teur WINDEV au nom des objets, procdures ou mthodes rendues visibles par le concepteur du
composant. Les projets ne peuvent pas voir ou modifier le code source. La confidentialit et la
stabilit du code sont garanties.
La ralisation dun composant externe est trs simple.
Comment faut-il faire? Faites comme dhabitude, crez vos fentres, procdures, classes. Puis
lorsque vous aurez termin, au lieu de choisir loption de cration de lexcutable, prenez loption
de cration dun composant, cest tout!
Un composant peut contenir du code, des fentres, une analyse, des fichiers de donnes, etc!

Pour partager du "code", il y a cinq mthodes principales avec WINDEV:


1.Les collections de procdures
Notes

2.Les classes
3.Les superchamps ( travers lutilisation dun dictionnaire)
4.Les composants externes
5.Les composants internes

Voici plusieurs cas dans lesquels les composants externes peuvent tre intressants.

Travail en quipe
Un dveloppeur cre et maintient un composant externe quil met la disposition des autres
dveloppeurs. Il ne risque pas dy avoir des modifications faites "par erreur"!

Les projets volumineux


Les composants externes permettent davoir plusieurs projets distincts de tailles rduites et
davoir un projet central dans lequel les lments des autres projets sont visibles. Lutilisabilit
des composants externes est bien meilleure que les bibliothques (fichiers WDL).

276 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les bases de donnes accdes par plusieurs projets
Lorsquune mme base de donnes est accde par plusieurs projets, il est frquent davoir des
incohrences dans la base de donnes dues des codes sources modifis ou trop vieux. En re-
groupant les oprations daccs (en criture au moins) la base de donnes dans un composant
externe, cela permet davoir un seul code source vrifier/maintenir et donc de limiter le risque
dincohrences dans la base de donnes.
De plus, lutilisation dun composant vite de recompiler lapplication lors dune modification de
lanalyse.

Les traitements utiliss dans plusieurs projets


Il est frquent davoir des traitements plus ou moins complexes utiliss dans plusieurs pro-
jets. Il est possible de rutiliser ces traitements par lintermdiaire de "collections de pro-
cdures" ou de "classes". Dans ce cas il existe un risque de modifications non reportes
entre les diffrents projets, qui rendent ensuite ces lments incompatibles entre eux.
Lutilisation des composants externes permet dviter des modifications intempestives et permet
de conserver des projets compatibles auxquels il est simple dapporter une modification com-
mune.
De plus avec lutilisation possible du mot-cl PRIVE, vous pourrez assurer la confidentialit de
votre code tous les niveaux du composant externe. Lors de la rutilisation de votre composant
externe dans un autre projet WINDEV, lappel dune procdure PRIVEE ne sera pas permis mais la
documentation concernant lutilisation de la procdure sera affiche!

La possibilit de diffuser une fonctionnalit ou un ensemble de fonctionnalits


Les composants externes permettent de raliser une fonctionnalit ou un ensemble de fonction-
nalits. Dautres dveloppeurs WINDEV pourront intgrer ces fonctionnalits dans leurs propres
projets. Les dveloppeurs qui utilisent un composant externe peuvent voir les lments du com-
posant rendus visibles. Cependant il ne sera pas possible de voir ou de modifier le code source.
Vous pouvez diffuser gratuitement ou mme commercialiser des composants externes!

Composant externe multiproduits


Un composant externe peut tre prvu pour fonctionner dans:
une application WINDEV,
une application WEBDEV,
une application WINDEV Mobile,
ou dans les trois types dapplications.
Dans ce dernier cas, WINDEV permet:
dintgrer les lments provenant des diffrents produits (WEBDEV et/ou WINDEV Mobile)
dans un mme composant externe.
dindiquer pour chaque plateforme dexcution le code WLangage correspondant (par
exemple, laffichage dune fentre se fait par la fonction Ouvre en WINDEV et laffichage
dune page se fait par la fonction PageAffiche en WEBDEV).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 277
Etape par tape

Etape 1: Cration dun composant externe


Nous allons crer un composant externe partir du projet "WD Application Complte". Ce projet
permet de grer des commandes, des produits et des clients. Le composant externe que nous al-
lons crer va nous permettre de connatre dans une autre application instantanment les clients
correspondant une ville donne.
Lors de lappel au composant externe, vous pourrez:
Passer une ville en paramtre.
Rcuprer une chane contenant le nom du client et le montant total de ses commandes.
Pour ne pas avoir dvelopper le code ncessaire au fonctionnement du composant, le projet
"WD Application Complte" contient tous les lments ncessaires.

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
Corrig

complte (Avec fentres)".


Un projet corrig complet de lapplication est galement disponible: sous le vo-
let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)".

Pour les besoins du composant, le projet contient:


une requte "REQ_CommandesParVille". Cette requte est une requte paramtre permet-
tant dobtenir pour une ville donne les clients correspondants ainsi que le montant total de
leurs commandes.
une collection de procdures "COL_Composant". Cette collection de procdures contient:
la procdure "DonneCommandesParVille" qui renvoie pour la ville passe en paramtre une
chane contenant le nom du client et le montant total de ses commandes.
la procdure "LocalisationDonnes" qui permet de localiser les donnes utilises par le
composant.
une analyse permettant de dcrire les fichiers de donnes stockant les informations.
Nous allons maintenant crer notre composant. Pour cela, nous devons crer une configura-
tion de projet.

Les configurations de projet permettent de crer partir dun mme projet plu-
sieurs "cibles" diffrentes:
Une application 32 bits,
Une application 64 bits,
Notes

Un composant,
...
tout moment, vous pouvez choisir la configuration sur laquelle vous travaillez
et gnrer en une seule opration tous les lments pour toutes les configura-
tions dun projet.

278 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour crer une configuration de projet de type "Composant":
1.Sous le volet "Projet", dans le groupe "Configuration de projet", droulez "Nouvelle configura-
tion" et slectionnez "Composant Externe (WDK)".
2.Lassistant de cration dune configuration de projet se lance. WINDEV propose de crer
une configuration de projet de type "Composant". Passez ltape suivante.
3.Donnez un nom votre configuration de projet: par exemple "CompoCommandesParVille".
Passez ltape suivante.
4.Conservez les options proposes par dfaut. Passez ltape suivante.
5.Slectionnez les lments qui constituent la configuration de projet. Dans cet exemple, ces
lments seront galement dans le composant.
Cliquez sur le bouton "Aucun".
Slectionnez les lments "REQ_CommandesParVille" et "COL_Composant".

6.Passez ltape suivante et validez la cration de la configuration.


7.La nouvelle configuration devient automatiquement la configuration en cours.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 279
Pour connatre et modifier la configuration en cours, utilisez le volet "Explorateur
de projet".
Notes

La configuration en gras correspond la configuration courante.


Pour changer la configuration courante, double-cliquez sur le nom de la configu-
ration activer.

Nous allons maintenant gnrer notre composant.


1.Sous le volet "Projet", dans le groupe "Gnration", cliquez sur "Gnrer".
2.Lassistant de gnration du composant se lance. Passez ltape suivante de lassistant.
WINDEV liste les lments intgrer dans le composant (lments spcifis dans la configu-
ration et analyse).

3.Slectionnez tous les lments (bouton "Tous") et passez ltape suivante.


4.Lassistant vous demande de slectionner les lments du composant qui seront acces-
sibles depuis lapplication cliente.

280 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans notre exemple, seule la collection de procdures "COL_Composant" sera utilise:

5.Passez ltape suivante.


6.WINDEV propose dautoriser la traduction du composant. Cette fonctionnalit est intres-
sante si votre composant doit tre utilis par des applications multilingues.

Si loption "Autoriser la traduction du composant" est coche, il sera possible de traduire


partir de lapplication utilisant le composant les lments spcifis du composant.
Cette traduction sera ralise laide de WDMSG, module indpendant permettant dextraire
et de rintgrer les messages traduire dun projet.
Dans cet exemple, ne cochez pas cette option. Passez ltape suivante.
7.Choisissez les langues du composant. Notre exemple contient uniquement le Franais.
Passez ltape suivante.
8.Lassistant propose ensuite de grer les diffrentes versions du composant. Dans notre
exemple, le composant vient dtre cr.
Conservez les options par dfaut. Passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 281
9.Saisissez les diffrentes informations concernant le composant:
Propritaire,
Libell, Copyright, ...
10.Passez ltape suivante.
11.Vous pouvez associer une image votre composant. Les utilisateurs du composant pour-
ront lidentifier rapidement dans le volet "Catalogue dexemples". Passez ltape suivante.
12.Spcifiez la prsentation gnrale du composant. Cette prsentation permettra lutilisa-
teur du composant de connatre sa finalit. Saisissez par exemple:

13.Passez ltape suivante. Lassistant va maintenant effectuer la gnration automatique


de la documentation sur le composant. Cette documentation peut tre base sur les commen-
taires que vous aurez insrs dans votre code source.
14.Passez ltape suivante. Vous avez la possibilit de modifier la documentation gnre.
Nous nallons pas y toucher. Passez ltape suivante.
15.Vous avez la possibilit de crer un fichier daide associ votre composant (format
CHM). Ce fichier daide sera livr avec le composant. Les clients pourront y accder en faisant
F1 partir du code du composant.
Nous nallons pas gnrer de fichier daide. Passez ltape suivante.
16.Nous nallons pas enregistrer le composant dans le GDS. Passez ltape suivante.
17.Il ne reste plus alors qu donner un nom physique notre composant.

282 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Validez. Voil, votre premier composant est maintenant cr, il est prt lemploi!
Etape 2: Utilisation du composant externe
Une fois cr, votre composant est alors utilisable dans nimporte quel autre projet WINDEV. Nous
allons maintenant voir comment rutiliser ce composant.
Pour cela, nous allons crer un nouveau projet et importer notre composant dans ce projet.
1.Fermez le projet en cours: sous le volet "Accueil", dans le groupe "Gnral", droulez "Fer-
mer" et slectionnez "Fermer le projet".
2.Validez la fermeture du projet et si ncessaire lenregistrement des modifications.
3.La fentre de bienvenue apparat.
4.Crez un nouveau projet: cliquez sur "Crer un projet" dans la fentre de bienvenue.
Ce projet est une application Windows.
Ce projet sappelle "CompoUtilisation" et na pas danalyse.
5.Sous le volet "Projet", dans le groupe "Projet", droulez "Importer" et slectionnez loption
"Un composant Externe ... partir dun fichier".
6.Dans le rpertoire du projet "WD Application Complte", slectionnez le sous-rpertoire
"EXE\CompoCommandesParVille", puis le fichier "CompoCommandesParVille.wdi". Le projet
"WD Application Complte" est disponible dans le sous-rpertoire "Autoformation\Exercices\
WD Application Complte".

Si vous avez cr le composant partir de lexemple "WD Application Complte


(avec fentres)", slectionnez le sous-rpertoire "EXE\CompoCommandesPar-
Notes

Ville", puis le fichier "CompoCommandesParVille.wdi". Le projet "WD Application


Complte (avec fentres)" est disponible dans le sous-rpertoire "Autoformation\
Exercices\WD Application Complte (Avec fentres)".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 283
7.Aprs avoir cliqu sur "Ouvrir", la description de notre composant sest affiche. Cette des-
cription contient:
Sur longlet "Gnral", les lments saisis lors de la cration du composant externe, ainsi
que son emplacement.

Sur longlet "Dtail", la description du composant, ainsi que laide gnre automatique-
ment. Il est ainsi possible de connatre les lments utilisables du composant.

Il est possible daccder tout moment la description du composant. Il suf-


Notes

fit de slectionner le composant dans lexplorateur de projet et de slectionner


loption "Description" du menu contextuel. Dans ce cas, il est galement possible
de dfinir le mode de chargement du composant.

8.Validez (bouton "Fermer"). Le composant est intgr dans votre projet.

Nous allons maintenant crer une nouvelle fentre vierge pour utiliser le composant.
1.Crez une fentre vierge.
2.Enregistrez la fentre.
La fentre a pour titre "Clients par ville".
Le nom de la fentre est "FEN_Clients_par_ville".
Validez.
3.Affichez le code associ la fentre (option "Code" du menu contextuel).

284 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Dans le traitement "Fin dinitialisation", nous allons appeler la fonction LocalisationDon-
nes du composant. Cette fonction attend en paramtre le chemin permettant daccder aux
fichiers de donnes manipuls par le composant. Saisissez le chemin daccs aux donnes de
lexemple "WD Application Complte".
COL_Composant.LocalisationDonnes(...
C:\WINDEV\Autoformation\Exercices\+ ...
WD Application Complte\Exe\Excutable Windows 32 bits\)
// Indiquez le chemin de VOS donnes
5.Fermez lditeur de code.
6.Dans la fentre, ajoutez les champs suivants:
Un champ de saisie avec pour libell "Ville" et pour nom "SAI_Ville".
Un champ Table "TABLE_Rsultat", rempli par programmation et compos de 2 colonnes:
- une colonne "Nom" de type Texte.
- une colonne "Total ventes" de type Numrique.
Un bouton avec pour libell "Rechercher" et pour nom "BTN_Rechercher".
Editez maintenant le code du bouton "BTN_Rechercher". Lors du clic sur ce bouton, nous
allons excuter la procdure de recherche prsente dans le composant. Cette procdure:
attend en paramtre le nom de la ville
renvoie une chane de la forme: Nom du client 1 + TAB + Total vente 1 + RC + Nom du client
2 + TAB + Total vente 2 + ...
Le code du bouton "BTN_Rechercher" doit donc:
appeler la procdure DonneCommandesParVille du composant en lui passant en para-
mtre le contenu du champ SAI_Ville.
traiter la chane obtenue pour lajouter dans la table.
Saisissez le code suivant:
sListeRsultat est une chane

// Rcupre la liste des clients et leurs commandes


// pour la ville saisie
sListeRsultat = COL_Composant.DonneCommandesParVille(...
SAI_Ville)
// Si la liste nest pas vide
SI sListeRsultat <> ALORS
// Vide la table
TableSupprimeTout(TABLE_Rsultat)
// Parcourt les rsultats
POUR TOUTE CHANE sUnClient DE sListeRsultat SEPAREE PAR RC
// Ajoute ce client la table
TableAjoute(TABLE_Rsultat, sUnClient)
FIN
SINON // Si la liste est vide
InfoConstruit(Aucun client trouv pour la ville %1,...
SAI_Ville)
FIN

Sauvegardez votre fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 285
Testez la fentre en cliquant sur le bouton "GO" parmi les boutons daccs rapide. Dans le
champ de saisie, saisissez "Paris" (en respectant la casse) puis cliquez sur le bouton
"Rechercher". La liste des clients saffiche.

 Et cest termin! Simple nest-ce pas?


Vous savez dsormais crer un composant et le rutiliser dans vos applications. Mais vous pour-
riez galement dcider de grer des procdures dinstallation de vos composants, pour, par
exemple, les redistribuer sparment de vos applications.

Distribution dun composant externe


Vous avez deux choix possibles pour distribuer un composant:
1.Fournir les fichiers ncessaires "manuellement", cest une distribution "simple".
2.Crer une distribution plus "professionnelle", grce lditeur dinstallation de WINDEV,
WDInst.

Distribution simple
Vous devez dans ce cas fournir tous les fichiers ncessaires au bon fonctionnement de votre com-
posant. Ces fichiers sont crs la gnration du composant (fichiers WDI, WDK, WDO, images,
autres documents,...). Ces fichiers seront copis manuellement de leur rpertoire dorigine vers
le rpertoire de destination. Les projets WINDEV qui utiliseront ce composant, iront chercher les
fichiers dpendants dans ce rpertoire de destination.
Liste des fichiers fournir pour une distribution simple:
les fichiers gnrs automatiquement par WINDEV (WDK, WDI, ...).
les fichiers de dpendances.
si le composant utilise des fichiers de dpendances, il faudra fournir le fichier WDO. Ce fi-
chier contient les rfrences aux diffrents fichiers externes utiliss dans le composant.

286 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Distribution professionnelle
La diffusion des composants laide dune procdure dinstallation consiste fournir aux uti-
lisateurs du composant WINDEV, un programme dinstallation. Ce programme installe tous les
fichiers ncessaires lutilisation du composant dans le rpertoire spcifi par lutilisateur.
Ce mode dinstallation permet de grer automatiquement:
le fichier WDO et linstallation des fichiers supplmentaires utiliss par le composant.
linstallation automatique doutils ncessaires (MDAC, driver ODBC pour HFSQL,...).
la mise jour automatique des fichiers de donnes utiliss par le composant (si nces-
saire).
la dsinstallation du composant.

Fermez le projet "CompoUtilisation": sous le volet "Accueil", dans le groupe "Gnral",


droulez "Fermer" et slectionnez "Fermer le projet".
Ouvrez le projet "WD Application Complte". Slectionnez si ncessaire la configuration de
projet correspondant au composant dans lexplorateur de projet.
Pour crer linstallation, sous le volet "Projet", cliquez sur "Procdure dinstallation".
Lassistant de cration dinstallation du composant se lance.
Nous ne dtaillerons pas les diffrents modes dinstallation dun composant. Suivez les instruc-
tions de lassistant. Si vous souhaitez obtenir plus de dtails concernant linstallation de compo-
sants, consultez laide en ligne (mot-cl: "Composant Externe, Distribuer un composant").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 287
Leon 3.12. Consommer un Webservice

Ce que vous allez apprendre dans cette leon...

Prsentation
Importation et consommation dun Webservice

Dure estime: 15 mn

288 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Un service Web est gnralement dfini comme une application accessible via des protocoles
Internet standard. Les services Web permettent notamment linteractivit entre plusieurs ordina-
teurs connects sur le rseau Internet.
Via les services Web, il est possible de faire excuter des procdures et des traitements sur un
serveur Web (.NET ou J2EE) distance depuis un poste client.

Avec WINDEV, ces services Web sont utilisables en tant que client, via le protocole SOAP sur HTTP
(le protocole standard dInternet pour le transfert des pages HTML), grce aux fonctions SOAPxx,
DotNetxx et J2EExx.

Quelle que soit la plateforme du serveur Web (.NET, J2EE ...), un service Web est accessible via
lutilisation de SOAP.
Notes

Avec WINDEV, il nest pas ncessaire de matriser ces informations. Un assistant


se charge de ("presque") tout !

Exemple pratique
Pour tester et manipuler un Webservice, nous mettons votre disposition un Webservice spci-
fique pour le Cours dauto-formation.
Intgr au projet "WD Application Complte", ce Webservice permet dinterroger une base fournis-
seur pour vrifier la disponibilit (stock) dun produit partir de sa rfrence.
Nous allons dans un premier temps, importer le Webservice dans le projet "WD Application Com-
plte", puis lutiliser dans lapplication pour vrifier partir dune fiche Produit, la disponibilit du
produit affich.

Importation dun Webservice

Fermez si ncessaire le projet en cours. La fentre de bienvenue apparat.


Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Application complte (Exercice)". Le projet se charge.
Astuce: si la fentre de bienvenue nest pas affiche, sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "Application
complte (Exercice)".

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
Corrig

complte (Avec fentres)".


Un projet corrig complet de lapplication est galement disponible: sous le vo-
let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)"

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 289
Si ncessaire, placez-vous sur la configuration de projet "Excutable Windows 32 bits": dans
lexplorateur de projet, dans le dossier "Configurations", double-cliquez sur "Excutable
Windows 32 bits".
Pour importer un Webservice dans le projet:
1.Sous le volet "Projet", dans le groupe "Projet", droulez "Importer" et slectionnez "Un Web-
service".
2.Lassistant dimportation se lance. Passez ltape suivante.
3.Indiquez ladresse laquelle la description WSDL du Webservice doit tre importe: http://
exemples.webdev.info/WSAUTOFORMATION_WEB/awws/WSAutoformation.awws?wsdl
Rappel: Ce Webservice permet dinterroger une base fournisseur pour vrifier la disponibilit
(stock) dun produit partir de sa rfrence.

4.Passez ltape suivante. Limportation du Webservice est ralise.

5.Validez la fentre dinformation. Le Webservice import est prsent dans le dossier "Web-
services" de lexplorateur de projet.

290 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Arrtons-nous un instant sur les informations affiches dans lexplorateur de projet:

La structure est constitue de:


le nom du Webservice (WSAutoformation dans cet exemple),
le nom de chaque fonction (ProduitEnStock dans cet exemple)
le nom dune structure contenant soit les paramtres dappel (ProduitEnStock dans cet
exemple), soit les valeurs de retour (ProduitEnStockResponse dans cet exemple).
le nom de chaque variable de la structure (sRfrenceProduit dans cet exemple).

Dans notre exemple, le Webservice import se nomme: WSAutoformation. Il contient une fonction
ProduitEnStock.
La fonction ProduitEnStock contient 2 structures:
ProduitEnStock
ProduitEnStockResponse

La structure ProduitEnStock contient une variable sRfrenceProduit correspondant la valeur


passer en paramtre pour lappel de la fonction ProduitEnStock.

La structure ProduitEnStockResponse contient une variable (ProduitEnStockResult) correspon-


dant la valeur de retour de la fonction.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 291
Consommation dun Webservice
Dans notre exemple "WD Application Complte", nous allons intgrer lappel au Webservice dans
longlet permettant de voir la liste des produits. Un bouton "En stock ?" permettra de vrifier la
disponibilit du produit affich via le Webservice.
Pour utiliser le Webservice:
1.Ouvrez sous lditeur la fentre "FEN_Menu" (double-cliquez sur son nom dans lexplorateur
de projet par exemple).
2.Dans le volet "Liste des produits", ajoutez un bouton:
Sous le volet "Cration", dans le groupe "Champs usuels", cliquez sur .
Cliquez dans la fentre sous le bouton "Modifier".
Le bouton est automatiquement cr.
3.Modifiez les caractristiques du bouton (option "Description" du menu contextuel). Ce
champ a pour nom "BTN_EnStock" et pour libell "En stock ?".

4.Affichez les traitements associs au bouton (option "Code" du menu contextuel).


5.Dans le traitement "Clic sur BTN_EnStock" saisissez le code suivant:
// Affiche la rponse du Webservice
InfoConstruit(...
Nombre de produits %1 en stock : %2,
COL_Rfrence, ProduitEnStock(COL_Rfrence))

Examinons ce code:
La fonction du WebService ProduitEnStock est appele.
La rponse est mise en forme et affiche.
6.Fermez lditeur de code et enregistrez la fentre ( ou CTRL S).

Nous allons maintenant tester le fonctionnement du Webservice:


1.Lancez le test du projet ( parmi les boutons daccs rapide).
2.Cliquez si ncessaire sur longlet "Liste des produits".
3.Slectionnez un produit au hasard dans le champ Table et cliquez sur le bouton "En stock?".

292 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Validez la fentre dinformation et fermez lapplication.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 293
Leon 3.13. Surveillez lvolution de
vos applications

Ce que vous allez apprendre dans cette leon...

Quest-ce que le tableau de bord?


Tests automatiques

Dure estime: 20 mn

294 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Le tableau de bord du projet est un lment indispensable la gestion de projets WINDEV. Le ta-
bleau de bord permet davoir une vision globale et synthtique de ltat davancement dun projet.
Le tableau de bord est constitu de diffrents lments (Widgets) permettant de voir dun seul
coup dil ltat dun projet.
Dans cette partie, nous nous limiterons la manipulation des diffrents lments du tableau de
bord, la gestion des tests automatiques et loptimisation des requtes.

Si vous navez pas cr les fentres des leons prcdentes, vous pouvez suivre
cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez "Application
Corrig

complte (Avec fentres)".


Un projet corrig complet de lapplication est galement disponible: sous le vo-
let "Accueil", dans le groupe "Aide en ligne", droulez "Guide dAuto-formation"
puis slectionnez "Application complte (Corrig)"

Pour afficher le tableau de bord du projet (si ce nest pas dj fait), sous le volet "Projet",
dans le groupe "Projet", cliquez sur licne .

Le tableau de bord

Le tableau de bord du projet est compos de diffrents Widgets. Chaque Widget affiche une ou
plusieurs informations concernant le projet.
Par exemple, le Widget "Performances" permet de lancer directement lanalyseur de performances
ou douvrir le dernier rapport de performances effectu.
Le Widget "Audit statique et Compilation" permet de voir rapidement si le projet contient des er-
reurs de compilation.
A tout moment, il est possible dactiver ou non un Widget, den ajouter ou den supprimer.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 295
Tests automatiques
Une des fonctionnalits intressantes du tableau de bord est de renseigner sur les tests qui ont
t raliss sur lapplication.
Nous avons dj fait de nombreux tests dutilisation, au fur et mesure de la conception de notre
application.
Les tests automatiques sont une catgorie de tests spcifiques. Les tests automatiques per-
mettent dautomatiser certaines manipulations de vos fentres. Ces tests sont enregistrs sous
forme de scnarios WLangage, facilement modifiables sous lditeur de code. Une fois enregistr,
le test automatique peut tre rexcut autant de fois que vous voulez, pour tester par exemple
limpact dune modification sur une fentre, une procdure, ...
Faisons immdiatement un essai! Nous allons crer un test automatique sur la fentre de saisie
que nous avons cre au dbut de cette leon.

Les tests automatiques peuvent tre raliss sur des fentres, des procdures,
Note

des classes.

Pour crer un test automatique sur une fentre, il suffit de tester la fentre:
1.Ouvrez la fentre "FEN_Menu" sous lditeur.
2.Sous le volet "Tests automatiques", dans le groupe "Tests", droulez "Nouveau" et slection-
nez "Enregistrer un nouveau test".
3.Dans la fentre qui saffiche, cliquez sur "Commencer lenregistrement".
4.Le test de la fentre se lance.
5.Cliquez sur longlet "Recherche de commandes".
6.Choisissez le mode de rglement "Carte bancaire".
7.Cliquez sur le bouton "Rechercher".
8.Fermez la fentre par le menu "Menu .. Quitter" et confirmez la fin de lapplication.

Si vous navez pas suivi le cours en entier, cette option peut ne pas exister. Dans
Note

ce cas, fermez la fentre en utilisant la croix.

9.Le test est termin.


10.Lditeur de tests propose denregistrer une description pour le test. Le test sappelle "Test
de recherche de commandes". Validez.
11.Le code du test en WLangage apparat sous lditeur de code. Fermez cette fentre de
code.

Les fonctions WLangage permettant de raliser des tests automatiques sont les
Note

fonctions PiloteXXX.

296 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
12.Lditeur de tests apparat:

Le test est actuellement disponible et nest pas pass.


13.Le test peut tre lanc tout moment. Lditeur de tests nous indique que le test nest
jamais pass. Cliquez sur le lien "Lancer le test".
14.Le test sexcute automatiquement et lditeur de tests affiche le rsultat (le test est
pass avec succs dans notre cas).
15.Fermez lditeur de tests et enregistrez le test si ncessaire.

Nous allons maintenant faire une modification dans notre fentre, puis repasser le test. La
modification porte sur le bouton "Rechercher". Nous allons le rendre gris.
1.Affichez si ncessaire la fentre "FEN_Menu".
2.Sous lditeur, cliquez sur longlet "Recherche de commandes" et slectionnez le bouton
"Rechercher".
3.Affichez la description du bouton "Rechercher" (option "Description" du menu contextuel).
4.Dans longlet "IHM", slectionnez loption "Gris".
5.Validez la fentre de description du champ.
6.Enregistrez la fentre.
7.Passez le test associ la fentre: sous le volet "Tests automatiques", droulez "Excuter"
et slectionnez loption "Lancer les tests".
8.Le test est dsormais en erreur.
9.Affichez la description du bouton "Rechercher" (option "Description" du menu contextuel).
10.Dans longlet "IHM", slectionnez loption "Actif".
11.Validez la fentre de description du champ.
12.Relancez le test. Le test passe maintenant correctement.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 297
Une autre possibilit de lditeur de tests est la possibilit de modifier ou dajouter du code WLan-
gage dans les scnarios de test. Nous allons par exemple ajouter quelques lignes de code afin de
vrifier que le champ Table contient au moins un enregistrement.
1.Affichez lditeur de tests (par exemple double-cliquez sur "TEST_Menu" dans lexplorateur
de projet).
2.Affichez le code du test (option "Code" du menu contextuel du "Test de recherche de com-
mandes").

3.Ajoutez le code suivant avant la ligne "PiloteMenu("_Menu","OPT_Quitter"):


// Si le champ table ne contient aucun enregistrement
SI FEN_Menu.TABLE_REQ_RechercheCommandes..Occurrence = 0 ALORS
// Il faut remonter une erreur
TestEcritRsultat(terErreur, ...
Le champ Table est vide aprs recherche)
FIN

4.Enregistrez le test et fermez lditeur de code.


5.Cliquez sur le lien "Lancer le test" (ou cliquez sur licne ). Le test passe avec succs.

298 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lditeur de tests propose de nombreuses fonctionnalits que nous ne pourrons pas aborder
dans ce cours:
la possibilit dutiliser un jeu de valeurs de test.
la dfinition de paramtres dentre et de sortie du test.
la possibilit de crer une bibliothque de tests pour tester un excutable par exemple sur
une machine diffrente du poste de dveloppement.
Pour plus de dtails sur les tests automatiques, nous vous conseillons de consulter laide en ligne
(mot-cl: "Test automatique").
Fermez lditeur de tests automatiques.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 299
Leon 3.14. Dployer lapplication

Ce que vous allez apprendre dans cette leon...

Cration de lexcutable
Aide des nouveauts
Cration de linstallation

Dure estime: 30 mn

300 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Nous avons cr une application complte en dcouvrant de nombreuses fonctionnalits de WIN-
DEV. Maintenant, il faut gnrer lexcutable et installer lapplication chez les utilisateurs. Cest
ce que nous allons faire pour conclure cette partie. Nous aurons ainsi vu la majorit des points
importants lors du dveloppement dune application WINDEV.

Si vous navez pas ralis les manipulations des leons prcdentes, vous pou-
Corrig

vez suivre cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Corrig)"

Cration de lexcutable
La cration de lexcutable est une opration trs simple: une option de menu et quelques clics
suffisent.
Nous vous proposons ici de dtailler toutes les tapes de la cration de lexcutable afin de
connatre toutes les possibilits de WINDEV. tout moment, vous pouvez cliquer sur le bouton
vert pour valider la totalit des crans de lassistant.

Pour crer lexcutable:


1.Dans la zone des boutons daccs rapide du ruban, droulez la roue et slectionnez loption
"Gnrer lexcutable Windows 32 bits (.exe)".

WINDEV permet galement de crer des excutables 64 bits, des excu-


Note

tables Linux, des services, des applications Java, ...

2.Lassistant de cration dexcutable se lance.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 301
3.Dcrivez les options gnrales de lexcutable:
le nom de lexcutable: nous conservons le nom par dfaut.
le nom de licne associe lexcutable: vous pouvez slectionner une icne dans le cata-
logue dimages.
limage dintroduction. Plusieurs types de splash screen sont disponibles. Par dfaut, un
splash screen avec texte anim est slectionn. Le bouton "Options" permet de le configu-
rer. Cette option nest pas disponible dans la version Express.

Choisissez "Pas de splash screen" et passez ltape suivante.


4.Pour le fonctionnement de lexcutable, nous garderons les options par dfaut. Passez
ltape suivante.
5.Vous pouvez personnaliser le message derreur de lapplication. Nous garderons le mes-
sage propos par dfaut. Passez ltape suivante.
6.Cette tape permet dactiver la tlmtrie pour lapplication. Nous garderons les options
proposes par dfaut. Passez ltape suivante. Cette tape nest pas disponible dans la
version Express.

302 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7.Lassistant propose dactiver la tlmtrie dans lapplication. Nous nutiliserons pas cette
fonctionnalit. Passez ltape suivante.

La tlmtrie permet dobtenir des statistiques dtailles sur lutilisation


de votre application par les utilisateurs finaux. Grce la tlmtrie, vous
connaissez tout de vos applications dployes et vous pouvez facilement les
Note

amliorer.
Pour plus dinformation sur la mise en place et la configuration de la tlm-
trie, consultez laide en ligne.

8.Cet cran permet dindiquer si lexcutable prendra en compte les patchs.

Lors dune modification de lapplication, pour viter de livrer la totalit de


lexcutable, il est possible de livrer des ressources complmentaires (fe-
ntres, tats,...) sous forme de patchs. Ces patchs sont en fait des biblio-
thques additives.
Note

Si lexcutable a t cr avec loption "Oui, lexcutable prendra en compte


ces mises jour par patch", lors du lancement de lapplication, les lments
prsents dans le patch se substitueront aux lments prsents dans la bi-
bliothque de lapplication.
Pour plus dinformations, consultez laide en ligne.

Nous garderons les options par dfaut. Passez ltape suivante.


9.Cet cran permet de grer les langues de lexcutable. Nous aborderons le sujet du mul-
tilingue dans une prochaine leon. Nous garderons les options par dfaut. Passez ltape
suivante.
10.Cet cran rcapitule tous les fichiers qui seront intgrs dans la bibliothque de lexcu-
table. Ce sont tous les lments de votre projet qui peuvent tre manipuls par lutilisateur
final. Nous garderons les options par dfaut. Passez ltape suivante.
11.Lcran suivant concerne le rpertoire des fichiers de donnes.
Loption "Rpertoire des donnes de lapplication" est coche par dfaut. En effet, sous Win-
dows Vista et suprieur, les fichiers de donnes doivent tre installs dans le rpertoire des
donnes de lapplication.

Ici, nous allons tester lexcutable aprs sa gnration. Pour que les don-
Note

nes soient affiches lors de ce test, il est ncessaire de cocher loption "R-
pertoire de lapplication ou rpertoire courant".

12.Slectionnez loption "Rpertoire de lapplication ou rpertoire courant". Passez ltape


suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 303
13.Nous allons maintenant saisir les informations de lexcutable. Ces informations sont affi-
ches sous lexplorateur Windows en slectionnant les proprits du fichier.
Saisissez par exemple les informations suivantes:

Cet cran permet galement de signer si ncessaire lexcutable.


Passez ltape suivante.
14.Lcran suivant concerne le numro de version de lexcutable. Il est possible dutiliser:
un format compatible avec les prcdentes versions de WINDEV,
un format standard Windows. Slectionnez cette option.
15.Lcran suivant concerne le framework WINDEV. Cet cran nest pas disponible en ver-
sion Express.

304 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le framework correspond aux diffrentes librairies ncessaires au fonction-

Note
nement de lexcutable.

Loption "Dll du framework ct de lexcutable" permet dutiliser uniquement les librairies


ncessaires. Ces Dll sont copies dans le rpertoire de lexcutable.
Loption "Framework intgr dans lexcutable" permet de diffuser uniquement lexcutable
(les DLL tant prsentes dans lexcutable).
Loption "Framework commun" permet dutiliser le framework commun toutes les applica-
tions WINDEV installes sur le poste. Avec cette option, le framework est install une seule
fois sur le poste (il est possible de le tlcharger par Internet) et il est utilis par toutes les
applications WINDEV. Slectionnez "Framework commun" puis choisissez "Framework WIN-
DEV commun".
Passez ltape suivante.
16.Un cran concernant Windows Vista (et suprieur) apparat. Cet cran permet dintgrer
un manifeste pour une utilisation sous Windows Vista (et suprieur).
Pour notre exemple, cochez loption "Ne pas intgrer de manifeste pour Windows Vista et
suprieur".
Passez ltape suivante.
17.WINDEV propose de raliser une sauvegarde du projet. Cette sauvegarde permet de
garder une version du projet chaque cration dexcutable. Dans notre cas, slectionnez
loption "Non: ne pas faire de sauvegarde du projet" et validez lassistant.
18.Lexcutable est cr. Il est possible de le lancer immdiatement, pour vrifier son fonc-
tionnement. Pour cela, cliquez sur le bouton "Lancer lexcutable".

Voil, la cration de lexcutable est termine. Beaucoup doptions renseigner, mais aprs une
premire configuration de vos choix, vous pourrez valider ds le dbut toutes les tapes de lassis-
tant.

Il est galement possible de cliquer directement sur les tapes indiques dans
Note

lassistant pour parvenir directement un cran de lassistant. Les options par


dfaut des autres crans seront automatiquement valides.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 305
Cration de linstallation
La cration de linstallation est une opration trs simple: un assistant vous permet de dfinir les
choix principaux. Si les options proposes par lassistant ne suffisent pas, il est possible dutiliser
lditeur dinstallation. Nous ne dtaillerons pas son utilisation dans cette leon. Pour plus de
dtails, consultez laide en ligne.
Nous vous proposons ici de dtailler toutes les tapes de la cration du programme dinstallation
afin de connatre toutes les possibilits de WINDEV. tout moment, vous pouvez cliquer sur le
bouton vert pour valider la totalit des crans de lassistant.

Pour crer le programme dinstallation:


1.Sous le volet "Projet", dans le groupe "Gnration", droulez "Procdure dinstallation" et s-
lectionnez loption "Crer la procdure dinstallation". Lassistant de cration dexcutable et
dinstallation se lance.
2.Nous avons dj cr lexcutable: les options choisies sont mmorises. Nous allons juste
modifier le rpertoire dinstallation des fichiers de donnes :
Dans la partie "Excutable" de lassistant (dans le menu gauche), cliquez sur "Donnes et
groupware".
Slectionnez loption "Rpertoire des donnes de lapplication". Cette option permet dutili-
ser la norme Windows pour linstallation des fichiers de lapplication.
3.Cliquez dans lassistant sur lintitul "Complments" de la partie "Excutable".
4.Lassistant propose de raliser une sauvegarde du projet. Slectionnez loption "Non: Ne
pas faire de sauvegarde du projet" et passez ltape suivante.
5.Lassistant propose de crer la page des nouveauts. Cet cran nest pas disponible en
version Express.

Cette option permet de crer un fichier daide pour prsenter lutilisateur final les nouveau-
ts de la version. Lors dune premire installation, ce fichier peut correspondre laide du lo-
306 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
giciel.
Slectionnez loption "Crer une documentation des nouveauts" et passez ltape sui-
vante.
6.Vous pouvez dfinir les lments qui seront automatiquement intgrs au fichier daide.
Conservez les options par dfaut et passez ltape suivante.

Si lapplication possde dj un systme daide, il est possible de lutiliser pour


Note

le complter avec une page de nouveauts.

7.Validez le message. Lexcutable est automatiquement cr (avec les options que nous
avons dfinies lors de la cration de lexcutable) et le systme daide est cr. Vous pouvez
saisir les informations spcifiques dans le systme daide. Pour lexemple, laissez les infor-
mations cres par dfaut. Pour reprendre la cration du programme dinstallation, cliquez
sur loption "Poursuivre la cration de la procdure dinstallation".

Laide est automatiquement compile.


8.Nous passons maintenant dans la partie "Installation" de lassistant. Dans ce premier
cran, choisissez le mode dinstallation:
Installation individuelle pour une application indpendante, installe et lance sur chaque
poste. Nous choisissons cette option.
Installation avec mise jour automatique, pour une installation sur un poste serveur. Les
applications seront installes partir du serveur. En cas de mise jour, seule une mise
jour du serveur est ncessaire. Les applications installes se mettront jour automatique-
ment.
Passez ltape suivante.
9.Choisissez une installation standard. Passez ltape suivante.
10.Nous ne changeons pas le rpertoire dinstallation par dfaut. Passez ltape suivante.
11.Dans la liste des fichiers installs, conservez les fichiers proposs. Par dfaut, WINDEV
propose le fichier Excutable et le fichier daide (cr par laide des nouveauts). Nous allons
ajouter les fichiers de donnes:
Cliquez sur le bouton "Ajouter". Lexplorateur Windows affiche le contenu du rpertoire de
gnration de lapplication.
Slectionnez les fichiers de donnes Client, Commande, LigneCommande, ModeRgle-
ment et Produit (fichiers dextension ".fic", ".ndx" et ".mmo").
Validez. Les fichiers sont automatiquement positionns dans le rpertoire commun des
donnes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 307
12.Passez ltape suivante.
13.Dans les paramtres de la base de donnes, dcochez toutes les options. Passez
ltape suivante.
14.Dans les modules complmentaires, conservez les options suivantes:

308 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons choisir les outils optionnels installer et inclure le dsinstallateur. Grce au
dsinstallateur, les utilisateurs pourront dsinstaller lapplication depuis le gestionnaire de
programmes de Windows. Passez ltape suivante.
Remarque : Dans la version Express, il nest pas possible de slectionner les outils option-
nels.
15.Nous allons slectionner WDOptimiseur. Cet outil permet doptimiser rgulirement les
fichiers de donnes de lapplication.
16.Cliquez sur loption "Support" gauche de lassistant. Nous allons gnrer linstallation
dans un rpertoire unique. Par dfaut, le programme dinstallation est cr dans le sous-r-
pertoire "Install" du projet. Il est possible de:
Spcifier un mot de passe pour linstallation. Seul lutilisateur connaissant le mot de passe
pourra lancer linstallation de lapplication.
Signer linstallation avec un certificat. Cette option permet de garantir lintgrit du pack
dinstallation.
17.Validez. Le programme dinstallation est automatiquement cr.
18.Un cran apparat permettant de tester linstallation ou douvrir le rpertoire de gnra-
tion.

Installation dune application


Dans la fentre de fin de cration de linstallation, cliquez sur le bouton "Tester". Si vous avez
ferm cette fentre, lancez directement le programme "Install.exe" prsent dans le rpertoire du
programme dinstallation. Linstallation de lapplication se lance.
Nous allons suivre les diffrentes tapes du programme dinstallation de lapplication "WD
Application Complte".
1.Si vous utilisez un systme dexploitation correspondant Windows Vista ou suprieur, une
fentre saffiche demandant lautorisation dexcuter le programme. Validez cette fentre.
2.Choisissez la langue du programme dinstallation et cliquez sur "OK".

3.Lassistant dinstallation se lance. Deux modes dinstallation sont disponibles :


Installation rapide : Linstallation est directement ralise avec les paramtres spcifis par
le fournisseur de lapplication.
Installation personnalise : Lassistant demande lutilisateur les paramtres dinstallation
de lapplication.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 309
4.Choisissez "Installation personnalise". Lassistant demande le rpertoire dinstallation de
lapplication.

5.Validez le rpertoire dinstallation de lapplication.


6.Passez ltape suivante et terminez linstallation de lapplication.
7.Linstallation de lapplication se lance.

Les diffrents types de dploiement


Nous venons de raliser le dploiement dune application simple. Dans lassistant de cration de
linstallation, WINDEV propose galement des installations avec mise jour automatique.

Prsentation
WINDEV propose par dfaut plusieurs modes dinstallation pour une application WINDEV:
Installation autonome:
Ce type dinstallation permet de crer un programme dinstallation unique. Ce programme
dinstallation sera excut par lutilisateur final, directement sur son poste.
Pour mettre jour lapplication, il suffira de recrer une installation de lapplication. Lutilisa-
teur final devra installer ce nouveau programme.
Cest le type dinstallation que nous venons de raliser.
Installation avec mise jour automatique:
Ce type dinstallation permet de dtecter automatiquement les mises jour lors du lancement
de lapplication. Si une mise jour est disponible, lutilisateur peut immdiatement se mettre
jour.
Ce type dinstallation est disponible aussi bien via rseau ou via le Web. Il est galement pos-
sible de raliser une installation multi-site.
Dtaillons un peu plus le fonctionnement dune installation avec mise jour.

310 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Installation avec mise jour rseau
La cration du programme dinstallation est ralise grce lassistant de cration de programme
dinstallation (option "Procdure dinstallation" sous le volet "Projet").
Le programme dinstallation obtenu la fin de lassistant est en fait compos de deux installa-
tions:
linstallation de lapplication de rfrence. Lapplication de rfrence doit tre installe sur le
rseau (par exemple dans un rpertoire partag ou sur un serveur), accessible par tous les utili-
sateurs finaux de lapplication.
linstallation de lapplication elle-mme. Cette installation est englobe dans lapplication de
rfrence. Elle nest accessible quune fois lapplication de rfrence installe.

Le schma suivant prsente le mode dinstallation dune application utilisant une base HFSQL
Classic en local, avec une mise jour rseau.

A chaque lancement de lapplication par lutilisateur final, la vrification de la version de lappli-


cation de rfrence est automatiquement ralise. Si cette version a t modifie (par exemple si
une mise jour de la version de rfrence a t effectue), une mise jour de lapplication finale
est automatiquement propose.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 311
312
ADMINISTRATEUR SERVEUR(S) UTILISATEURS

Poste de Serveur de Postes

RSEAU LOCAL
ladministrateur rfrence1 utilisateurs
rseau

Version de

Partie 3 : Application complte avec donnes


rfrence
Demande
dinstallation3
Application
Excutable de WINDEV
linstallation
utilisateur
Base de donnes
Support Excution de Excution de HFSQL Classic
linstallation Centre de contrle
dinstallation des applications linstallation utilisateur (Optionnel)4
(CD,DVD,USB...) rseau (optionnel)2

1 Le serveur de rfrence peut correspondre un rpertoire partag.


2 Lors de linstallation, ladministrateur rseau choisit dinstaller ou non le Centre de Contrle des applications rseau.
3 La demande dinstallation se fait par le Centre de Contrle Utilisateur ou le chemin dinstallation fourni par ladministrateur rseau.
4 La base de donnes HFSQL Classic peut tre installe ou cre par programmation.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Installation avec mise jour Internet
Linstallation avec mise jour par Internet utilise le mme principe.
La cration du programme dinstallation est ralise grce lassistant de cration de programme
dinstallation (option "Procdure dinstallation" sous le volet "Projet").
Le programme dinstallation obtenu la fin de lassistant est en fait compos de:
linstallation de lapplication de rfrence et la page Web permettant de tlcharger linstalla-
tion cliente. Ces lments doivent tre installs sur un serveur HTTP.
linstallation de lapplication elle-mme. Cette installation est englobe dans lapplication de
rfrence. Elle nest accessible quune fois lapplication de rfrence installe, par la page Web
de tlchargement.

Le schma suivant prsente le mode dinstallation dune application utilisant une base HFSQL
Client/Serveur, avec une mise jour par Internet.

Remarque : Ce type dinstallation peut galement tre effectue via le CLOUD pour applications
PC SOFT (si vous disposez dun compte).

Installation multisite
Linstallation multi-site est la combinaison de :
une installation rseau de rfrence dploye sur un rseau local.
une installation HTTP utilise pour la mise jour de linstallation de rfrence sur le rseau
local.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 313
314
ADMINISTRATEUR SERVEUR(S) INTERNET UTILISATEURS

Poste de Serveur Postes


ladministrateur HTTP Page de
utilisateurs n
rseau tlchargement

Version de
rfrence
Demande Lutilisateur
dinstallation affiche la page Application
Excutable de de tlchargement WINDEV
linstallation
utilisateur

Support Excution de
dinstallation linstallation Page de
(CD,DVD,USB...) tlchargement Tlchargement
et installation
de lapplication

Partie 3 : Application complte avec donnes


Serveur HFSQL
Client/Serveur

Serveur Manta

Manta Manager

Le serveur HTTP et le serveur HFSQL Client/Serveur


peuvent tre sur une seule et mme machine.
Base de donnes
HFSQL Client/Serveur La base de donnes HFSQL Client/Serveur peuvent
(Optionnel) tre installe ou cre par programmation.
Lors de linstallation, ladministrateur rseau choisit
dinstaller ou non le Centre de Contrle HFSQL.
Centre de Contrle
La page de tlchargement est accessible par :
HFSQL - Le Centre de Contrle utilisateur
(Optionnel) - Ladresse fournie par ladministrateur rseau

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite


Leon 3.15. Diffusez "Etats et Re-
qutes" avec vos applications

Ce que vous allez apprendre dans cette leon ...

A quoi sert le logiciel "Etats et Requtes".


Comment diffuser le logiciel "Etats et Requtes".
Comment utiliser le logiciel "Etats et Requtes".

Dure estime: 10 mn

WINDEV 21 version "Express" :


Le logiciel "Etats et Requtes" nest pas disponible dans cette version dvaluation

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 315
Prsentation du logiciel "Etats et Requtes"
Le logiciel "Etats et Requtes" permet aux utilisateurs de modifier et de crer leur convenance
les tats et les requtes de vos applications.
Un utilisateur trouve quil manque une information sur ltat fourni en standard? Avec le logi-
ciel "Etat et Requtes", il peut ajouter linformation directement depuis laperu avant impression.
Cette modification peut tre intressante pour dautres utilisateurs? Ltat peut tre mis dispo-
sition de tous les utilisateurs utilisant lapplication en rseau. De mme pour les requtes.

Le logiciel "Etats et Requtes" est gratuit et librement redistribuable avec vos


Notes

applications cres avec WINDEV. Consultez la licence pour plus de dtails sur
les conditions de redistribution.

Lancement du logiciel "Etats et Requtes"


Pour que les utilisateurs finaux personnalisent les tats de votre application ou crent leurs
propres tats et leurs propres requtes, il suffit de lancer le logiciel "Etats et Requtes".
Pour permettre vos utilisateurs finaux de lancer le logiciel "Etats et Requtes":
soit affichez vos tats sous la fentre daperu avant impression. Les utilisateurs finaux
pourront lancer le logiciel "Etats et Requtes" en cliquant sur licne .
soit ajoutez le menu daide automatique ? dans la fentre principale de votre application:
sous le volet "Fentre", dans le groupe "Barres et menus", droulez "Menu principal" et
slectionnez loption "Ajouter le menu ?".
Dans lassistant de cration de ce menu, cochez les options "Crer, modifier un tat" et
"Crer, modifier une requte".
soit utilisez la fonction LanceEtatsEtRequtes dans votre application.

Diffuser le logiciel "Etats et Requtes" avec votre application


Pour diffuser le logiciel "Etats et Requtes" avec votre propre application WINDEV, il est nces-
saire de:
indiquer au niveau du projet que lapplication autorise le lancement du logiciel "Etats et Re-
qutes".
dfinir si ncessaire au niveau de lanalyse les fichiers et rubriques qui seront utilisables
avec le logiciel "Etats et Requtes".
dfinir les tats et les requtes modifiables sous le logiciel "Etats et Requtes".
crer lexcutable et le programme dinstallation intgrant le logiciel "Etats et Requtes".
Nous allons dtailler ces diffrentes tapes en manipulant le projet "WD Application Complte".

Si vous navez pas ralis les manipulations des leons prcdentes, vous pou-
Corrig

vez suivre cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Corrig)".

316 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Paramtrage du projet

Pour utiliser le logiciel "Etats et Requtes" partir de votre application, il est ncessaire de
configurer le projet associ votre application.
1.Si ncessaire, ouvrez le projet exemple "WD Application Complte": sous le volet "Accueil",
dans le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "WD
Application Complte (Exercice)". Le projet se charge.

Si vous navez pas ralis les tats dans le projet "WD Application Complte",
Notes

ouvrez le projet corrig de lapplication: sous le volet "Accueil", dans le groupe


"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "WD
Application Complte (Corrig)".

2.Affichez la description du projet.


Rappel: Pour afficher la description du projet, sous le volet "Projet", dans le groupe "Projet",
cliquez sur "Description".
3.Dans longlet "Avanc", cochez loption "Autoriser le lancement de "Etats et Requtes"".

4.Validez.

Paramtrage de lanalyse
Nous allons maintenant ouvrir lanalyse pour paramtrer les fichiers et rubriques utilisables sous
le logiciel "Etats et Requtes".
Ouvrez lanalyse de votre projet: cliquez sur parmi les boutons daccs rapide du menu
de WINDEV.
Par dfaut, tous les fichiers de donnes et toutes leurs rubriques sont visibles et manipu-
lables avec le logiciel "Etats et Requtes". Si votre application contient des informations
sensibles (mots de passe, ...) vous pouvez rendre ces fichiers de donnes ou ces rubriques
invisibles sous le logiciel "Etats et Requtes".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 317
A partir du logiciel "Etats et Requtes", lutilisateur ne peut pas ajouter, modi-
fier ou supprimer des enregistrements (les fonctions HAjoute, HModifie et HSup-
Notes
prime sont interdites). Il nest galement pas possible de crer ou de re-crer
des fichiers de donnes (les fonctions HCration et HCrationSiInexistant sont
interdites).

Pour dfinir un fichier invisible sous le logiciel "Etats et Requtes":


1.Sous lditeur danalyses, slectionnez le fichier de donnes voulu.
2.Affichez la fentre de description du fichier (option "Description du fichier de donnes" du
menu contextuel).
3.Dans longlet "Etats et Requtes", dcochez loption "Visible par lutilisateur final, dans le
logiciel "Etats et Requtes"".
4.Validez.
Pour dfinir une rubrique invisible sous le logiciel "Etats et Requtes":
1.Sous lditeur danalyses, slectionnez le fichier de donnes voulu.
2.Affichez la fentre de description du fichier (option "Description des rubriques" du menu
contextuel).
3.Slectionnez dans la table, la rubrique voulue.
4.Dans longlet "Etats et Requtes", dcochez loption "Visible par lutilisateur final, dans le
logiciel "Etats et Requtes"".
5.Validez.
Pour prendre en compte les modifications effectues dans lanalyse, il est ncessaire de
rgnrer lanalyse (option "Gnration" dans le volet "Analyse"). Une modification automa-
tique des fichiers de donnes est propose pour prendre en compte les modifications
effectues.

Paramtrage des tats


Lors de la cration dun tat, il est possible de spcifier si cet tat est modifiable sous le logiciel
"Etats et Requtes".
Pour rendre ltat "ETAT_Table_REQ_RechercheCommandes" prsent dans le projet "WD
Application Complte" modifiable sous le logiciel "Etats & Requtes":
1.Ouvrez ltat "ETAT_Table_REQ_RechercheCommandes" sous lditeur dtats.
2.Affichez la description de ltat (option "Description de ltat" du menu contextuel).
3.Dans longlet "Options", cochez "Etat modifiable sous Etats et Requtes".
4.Cochez:
loption "Interface modifiable uniquement" pour que linterface de ltat uniquement soit
modifiable sous Etats et Requtes.
loption "Tout modifiable (interface et code)" pour que ltat soit entirement modifiable
sous Etats et Requtes.

318 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Validez et enregistrez ltat.

Paramtrage des requtes


Par dfaut, une requte est modifiable sous le logiciel "Etats et Requtes".
Pour rendre une requte de votre application modifiable sous le logiciel "Etats et Requtes":
1.Ouvrez la requte sous lditeur de requtes.
2.Affichez la description de la requte (option "Description de la requte" du menu contextuel
du graphe de la requte).
3.Cliquez sur le bouton "Avanc" (prsent parmi les "Actions").
4.Dans longlet "Etats et Requtes", cochez "Visible sous Etats et Requtes".
5.Validez et enregistrez la requte.

Cration de lexcutable et diffusion de lapplication


La cration et la diffusion dune application utilisant le logiciel "Etats et Requtes" se fait de la
mme faon que pour une application classique. Vous pourrez indiquer les paramtres spci-
fiques au logiciel "Etats et Requtes" lors de la cration de la procdure dinstallation.
Pour crer le programme dinstallation de votre application WD Application Complte:
1.Sous le volet "Projet", dans le groupe "Gnration", cliquez sur "Procdure dinstallation".
Lassistant de cration dinstallation se lance. Cliquez sur le lien "Installation" gauche de las-
sistant.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 319
2.Slectionnez "Crer lexcutable maintenant". La cration de lexcutable est ralise.
Notes
Si lassistant propose la cration du fichier daide, validez les diffrents mes-
sages.

3.Lassistant de cration dinstallation se lance.


4.Choisissez une "Installation individuelle". Passez ltape suivante.
5.Choisissez une "Installation standard". Passez ltape suivante.
6.Validez le rpertoire dinstallation propos et passez ltape suivante.
7.Dans lcran "Fichiers installs", slectionnez si ncessaire les fichiers de donnes (.fic,
.mmo et .ndx) prsents dans le rpertoire de lexcutable. Pour cela, cliquez sur "Ajouter" et
slectionnez ces fichiers.

Si lapplication ralise doit sinstaller sous Windows Vista ou suprieur avec


lUAC active, il est ncessaire de configurer lapplication et son installation pour
installer et utiliser les fichiers de donnes dans le rpertoire des donnes de
lapplication. Dans ce cas:
Notes

lors de la cration de lexcutable, dans ltape "Rpertoire des fichiers de don-


nes", slectionnez loption "Rpertoire des donnes de lapplication".
lors de la cration de linstallation, dans ltape "Fichiers installs", spcifiez le
rpertoire dinstallation dans les proprits de chaque fichier (rpertoire com-
mun des donnes).

8.Cliquez gauche sur le lien "Complments".


9.Dans lcran "Modules complmentaires", vrifiez que loption "Intgrer linstallation de
Etats et Requtes" est coche.
10.Dans lcran intitul "Etats et Requtes":
Spcifiez si vous voulez incorporer linstallation de "Etats et Requtes" dans votre pro-
gramme dinstallation.
Dans ce cas, le package dinstallation du logiciel "Etats et Requtes" est recherch. Par d-
faut, ce pack dinstallation est prsent dans le sous-rpertoire "Etats et Requtes" du rper-
toire dinstallation de WINDEV.
Attention: Incorporer le logiciel "Etats et Requtes" augmente la taille de votre installation
de faon non ngligeable (environ 250 Mo).

320 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Spcifiez si ncessaire les rpertoires correspondant aux tats et requtes modifis ou
crs par lutilisateur final.
Le rpertoire des tats et requtes personnels correspond au rpertoire des tats et re-
qutes visibles uniquement par lutilisateur qui les a crs.
Le rpertoire des tats et requtes partags correspond au rpertoire des tats et requtes
visibles par tous les utilisateurs de lapplication.
Ces rpertoires peuvent tre modifis lors de linstallation de lapplication: il suffit de co-
cher loption "Autoriser la modification de ces rpertoires lors de linstallation".
11.Cliquez sur loption "Support" gauche de lassistant.
12.Validez lassistant. Le programme dinstallation est gnr. Ne fermez pas la fentre indi-
quant la fin de la cration de linstallation.

Installer et utiliser le logiciel "Etats et Requtes"

Installation de lapplication
Pour tester linstallation et lutilisation du logiciel "Etats et Requtes", nous allons installer lappli-
cation "WD Application Complte".
En suivant les tapes du paragraphe prcdent, vous avez gnr le programme dinstallation de
cette application. Le programme dinstallation a t cr dans le sous-rpertoire "Install" du projet
en cours.
Dans la fentre de fin de cration de linstallation, cliquez sur le bouton "Tester". Si vous avez
ferm cette fentre, lancez directement le programme "Install.exe" prsent dans le rpertoire
du programme dinstallation. Linstallation de lapplication se lance.
Nous allons suivre les diffrentes tapes du programme dinstallation de lapplication "WD
Application Complte".
1.Si vous utilisez un systme dexploitation correspondant Windows Vista ou suprieur, une
fentre saffiche demandant lautorisation dexcuter le programme. Validez cette fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 321
2.Choisissez la langue du programme dinstallation et cliquez sur "OK".
3.Lassistant dinstallation se lance. Deux modes dinstallation sont disponibles :
Installation rapide : Linstallation est directement ralise avec les paramtres spcifis par
le fournisseur de lapplication.
Installation personnalise : Lassistant demande lutilisateur les paramtres dinstallation
de lapplication.
4.Choisissez "Installation personnalise". Lassistant demande le rpertoire dinstallation de
lapplication.
5.Validez le rpertoire dinstallation de lapplication.
6.Lcran "Etats et Requtes" permet dinstaller le logiciel "Etats et Requtes" (uniquement si
ce programme nest pas dj install sur le poste en cours).

7.Passez ltape suivante.


8.Lcran suivant permet de dfinir les rpertoires utiliss pour lenregistrement des tats et
des requtes.

9.Passez ltape suivante et terminez linstallation de lapplication.


10.Linstallation de lapplication, puis linstallation du logiciel "Etats et Requtes" se lancent.

322 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Test de lapplication
Nous allons maintenant nous placer dans la peau de lutilisateur final de votre application.
Pour tester lapplication:
1.Lancez lapplication "WD Application Complte".
2.Slectionnez loption "Etats .. Liste des clients". Ltat apparat en mode "Aperu avant im-
pression".

3.Dans cet cran, deux nouvelles icnes font leur apparition:


Permet de modifier ltat en cours dans laperu avant impression.

Permet de crer un nouvel tat.

Nous allons modifier cet tat:


1.Cliquez sur licne .
2.Ltat apparat en dition sous le logiciel "Etats et Requtes".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 323
3.Lutilisateur peut alors faire les modifications quil souhaite:
sur le style des informations affiches (par exemple changer la couleur dun champ).
sur le contenu de ltat (par exemple ajouter un champ, ...). Si ltat est li une requte,
lutilisateur peut modifier cette requte.
Si ltat est li une requte intgre, la modification est effectue directement dans ltat.
Si ltat est li une requte indpendante, la requte est galement modifie. La
modification sera prise en compte uniquement dans le cadre de lexcution de ltat (si une
fentre utilise galement cette requte, la modification ne sera pas prise en compte par la
fentre).
Dans cet exemple, nous allons mettre la date en rouge. Pour cela:
1.Slectionnez le champ date dans le dbut de document.
2.Sous le volet "Modification", dans le groupe "Edition rapide", cliquez sur licne "Couleur" et
slectionnez la couleur rouge.
3.Enregistrez votre tat. Par dfaut, le rpertoire propos est le rpertoire dinstallation de
votre application.
4.Fermez le logiciel "Etats et Requtes".
5.Slectionnez loption "Etats .. Liste des clients" dans lapplication. Ltat apparat en mode
"Aperu avant impression" et la modification ralise est effective.
Dans cet exemple, ltat que vous avez modifi est disponible pour vous seul. Dans le cas dune
application rseau, lutilisateur a la possibilit de mettre disposition de tous les utilisateurs un
tat modifi.
Nous avons fini notre dcouverte du logiciel "Etats & Requtes". Pour plus de dtails, consultez
laide en ligne (mot-cl: Etats et Requtes).

324 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Conclusion
Toute la phase de dveloppement de notre application est termine. Les deux prochaines leons
vont vous permettre de dcouvrir:
comment transformer votre application en une application multilingue,
comment intgrer votre application dans le Gestionnaire de sources (GDS).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 325
Leon 3.16. Grer le multilingue

Ce que vous allez apprendre dans cette leon...

Quest-ce quune application multilingue?


Etape par tape, cration dune application multilingue.

Dure estime: 20 mn

326 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quest-ce quune application multilingue?
Une application multilingue est une application qui peut sexcuter en anglais, en franais, en
allemand ou dans une autre langue.
Une seule et mme application peut donc tre utilise dans plusieurs langues. Mais comment
est-ce possible?
Cest ce que nous allons voir dans cette leon.
Nous allons manipuler un projet qui pourra sexcuter en franais ou en anglais, selon le choix de
lutilisateur.
Les principales tapes dune application multilingue sont:
Le choix des langues du projet.
Linternationalisation de lanalyse.
Linternationalisation des lments du projet (fentres, tats, champs, aide, ...).
Linternationalisation des messages prsents dans le code.
La programmation du changement de langue dans lapplication.
Nous allons appliquer ces diffrentes tapes au projet "WD Application Complte". Ce projet, dis-
ponible en Franais, va tre traduit en Anglais.

Si vous navez pas ralis les manipulations des leons prcdentes, vous pou-
Corrig

vez suivre cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Corrig)"

Choix des langues du projet

La premire opration consiste choisir les langues du projet.


1.Affichez la description du projet: sous le volet "Projet", dans le groupe "Projet", cliquez sur
"Description".
2.Cliquez sur longlet "Langues". Notre application va grer le Franais et lAnglais.
3.Cliquez sur le bouton "Ajouter". La fentre de slection des langues apparat.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 327
4.Cliquez sur "Anglais". Une coche apparat droite de la langue.
5.Validez. La langue "Anglais" apparat dans la liste des langues du projet.
Longlet "Langues" permet galement de paramtrer les options linguistiques concernant les
nombres, les montaires, les dates, ... pour la langue slectionne. Voyons un exemple:
1.Cliquez sur la langue "Anglais".
2.Slectionnez longlet "Date".
3.Par dfaut, les options linguistiques de Windows sont utilises. Si vous slectionnez lop-
tion "Utiliser les paramtres suivants", il est possible de dfinir le format de date utilis ainsi
que la traduction des jours et des mois.
4.Conservez loption "Utiliser les paramtres dfinis dans les options linguistiques du sys-
tme dexploitation".

328 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans les options linguistiques, il est possible de choisir le sens dcriture de la
Notes
langue (onglet "Divers", option "Sens dcriture"). Il est ainsi possible de crer des
interfaces avec une langue scrivant de droite gauche.

Validez. Un message propose de synchroniser les diffrents lments du projet. Rpondez


"Oui". Tous les lments du projet ouverts sous lditeur (fentres, tats, ...) sont ferms et la
ou les langues supplmentaires sont ajoutes ces lments.

Internationalisation de lanalyse
Par dfaut, une analyse est cre dans une langue et ne peut pas tre traduite.
Cependant, certaines informations peuvent tre saisies dans plusieurs langues (notes du dossier,
informations partages, ...).
Si votre application utilise le module Etats et Requtes, il est galement possible de traduire les
noms de fichiers et les noms de rubriques. Cette traduction peut tre ralise dans longlet "Etats
et Requtes" (de la description de fichiers ou de rubriques).
Les champs crs partir des rubriques de lanalyse ont par dfaut le libell de la rubrique sp-
cifi dans lanalyse. Si un libell a t spcifi dans les informations partages de la rubrique, ce
libell sera utilis lors de la cration du champ.
Lors du changement de la langue du projet li lanalyse, ce changement nest pas automati-
quement report dans lanalyse. En effet, une analyse peut tre partage entre plusieurs projets.

Pour grer plusieurs langues dans une analyse:


1.Affichez lditeur danalyses: cliquez sur parmi les boutons daccs rapide du menu de
WINDEV.
2.Dans la description de lanalyse (option "Description de lanalyse" du menu contextuel),
slectionnez longlet "International".
3.La liste des diffrentes langues gres par lanalyse saffiche. Langlais ntant pas gr:
Cliquez sur le bouton "Ajouter".
Slectionnez "Anglais".
Validez la fentre dajout des langues.

4.Validez la fentre de description de lanalyse.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 329
Note Pour prendre en compte toutes les langues du projet li lanalyse en cours, il
est galement possible de cliquer sur le bouton "Synchroniser avec le projet".

Pour saisir les informations partages dans plusieurs langues, examinons un cas simple: la
saisie de libell du champ li la rubrique "Adresse" du fichier "Client":
1.Slectionnez le fichier Client.
2.Affichez la description des rubriques dun fichier de donnes (option "Description des ru-
briques" du menu contextuel du fichier).
3.Slectionnez la rubrique "Adresse" et affichez les paramtres du champ reli la rubrique
slectionne (informations partages). Pour cela, cliquez sur la double flche en bas de
lcran .

4.Dans la zone "Libell, saisissez le libell pour la langue anglaise "Address".


5.Validez.

La traduction des informations partages de lanalyse peut tre faite:


en mme temps que la cration de lanalyse.
Note

tout moment via lditeur.


tout moment grce aux outils WDMSG et WDTRAD, deux outils permettant
dextraire, de traduire et de rintgrer les lments traduire.

330 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour prendre en compte les modifications ralises dans lanalyse, il est ncessaire de
gnrer lanalyse: sous le volet "Analyse", dans le groupe "Analyse", cliquez sur "Gnration".

Internationalisation des lments du projet


Tous les lments du projet peuvent devenir multilingues: fentres, tats, aide, ...
Nous allons modifier quelques lments de la fentre FEN_Menu pour voir les diffrentes m-
thodes utiliser.
Nous allons ainsi modifier:
limage du bandeau utilise dans la fentre FEN_Menu.
les libells des champs de la fentre FEN_Menu.
les options du menu.
le message affich par le code WLangage lors de la fermeture de lapplication.
Ouvrez la fentre "FEN_Menu" sous lditeur (double-cliquez sur son nom dans le volet
"Explorateur de projet", par exemple).
Vrifions tout dabord que la fentre FEN_Menu est bien associe aux diffrentes langues
dfinies dans le projet:
1.Affichez la description de la fentre (option "Description" du menu contextuel de la fentre).
2.Slectionnez longlet "Langue": les deux langues slectionnes dans le projet apparaissent.
3.Slectionnez longlet "Gnral": il faut traduire le titre de la fentre.

4.Saisissez "Menu" dans la zone anglaise.


5.Validez la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 331
Internationalisation dune image

Pour changer limage du bandeau utilis dans la fentre FEN_Menu selon la langue dexcu-
tion:
1.Ouvrez la fentre "FEN_Menu.WDW".
2.Limage du bandeau est contenue dans le modle associ la fentre. Il est donc nces-
saire douvrir le modle de fentres associ:
Cliquez sur le champ "WD ApplicationComplte" et affichez le menu contextuel.
Slectionnez loption "Ouvrir le modle".

Le modle de fentres apparat, entour dun cadre orange.


3.Affichez la fentre de description du bandeau:
Slectionnez le champ "WD ApplicationComplte" et affichez le menu contextuel.
Slectionnez loption "Description".
4.Dans la zone "Image", cliquez sur le bouton .

5.La fentre de gestion des images multilingues saffiche. Il est possible dutiliser une image
diffrente pour chaque langue. Cette fonctionnalit est trs utile si vous utilisez des images
contenant du texte.

6.Pour notre exemple, dans la zone "Anglais", slectionnez le fichier "header-us.png".


7.Validez. Le libell "<Valeurs multi-langues" apparat dsormais dans la zone "Image" de la
fentre de description.

332 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8.Validez la fentre de description du champ.
9.Enregistrez le modle de fentres ( ou CTRL S).
10.Mettez jour les fentres utilisant le modle de fentres en cliquant sur licne dans
le bandeau orange. Validez la fentre de mise jour.
11.Fermez le modle de fentres affich sous lditeur.

Internationalisation des champs


Un champ peut afficher de nombreuses informations lutilisateur:
un libell,
un message daide,
une image, ...
Toutes ces informations doivent tre traduites. Ces informations sont accessibles dans les diff-
rents onglets de la fentre de description du champ.
Pour notre exemple, nous allons traduire le premier volet du champ Onglet.
1.Double-cliquez sur le champ Onglet pour afficher sa fentre de description.
2.Dans longlet "Gnral" de la fentre de description, slectionnez le premier onglet "Liste
des produits".
3.Dans la partie "Description dun volet statique", il est possible de:
saisir la traduction du libell du volet: "List of products".
dfinir une image spcifique pour le volet donglet par langue (comme nous lavons fait pr-
cdemment).
dfinir une bulle daide par langue.
4.Fermez la fentre de description du champ.

Internationalisation dun message de programmation


Tous les messages de votre programme peuvent galement tre saisis dans plusieurs langues.
Dans notre exemple, la slection du menu "Quitter" affiche le message "Quitter lapplication".
Nous allons traduire ce message.
Pour traduire le message de loption de menu:
1.Affichez le code de loption de menu:
Sous lditeur droulez le menu.
Slectionnez loption "Quitter".
Affichez le menu contextuel (clic droit) et slectionnez loption "Code".

2.Pour traduire ce type de message, positionnez le curseur dans la chane "Quitter lapplica-
tion ?" et utilisez la combinaison de touche [CTRL T]. Il est galement possible, sous le volet
"Code", dans le groupe "Langues", de drouler "Traduire les chanes" et slectionner "Traduc-
tion des messages".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 333
3.La fentre suivante apparat:

4.Cette fentre permet de saisir tous les messages de votre programme dans toutes les lan-
gues du projet.
5.Dans la zone "Anglais", saisissez "Exit from the application?" et validez.
6.Licne ainsi quun chiffre apparat sous lditeur de code.

Ces icnes indiquent que le message multilingue existe en 2 langues.


7.Fermez lditeur de code.

Internationalisation des menus


La traduction des options dun menu peut tre ralise comme pour les autres champs via la
fentre de description de loption, ou directement partir de lditeur de fentres.
Pour traduire le menu de la fentre "FEN_Menu":
1.Sous le volet "Affichage", dans le groupe "Options", droulez "Langue affiche" et slection-
nez la langue visualiser sous lditeur (anglais dans notre cas).
2.Les options de menu saffichent dans la langue slectionne. Si aucune traduction ne cor-
respond la langue slectionne, les options de menu saffichent en franais.
3.Droulez loption "Menu".
4.Slectionnez loption "Envoyer un email".
5.Tapez sur la touche [ESPACE] du clavier: le libell passe en dition.
6.Saisissez le libell en anglais: "Send an email" et validez.
7.Repassez la langue affiche en franais: sous le volet "Affichage", dans le groupe "Options",
droulez "Langue affiche" et slectionnez "Franais".

334 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les outils de traduction
Nous venons de traduire manuellement quelques lments de notre application.
Pour traduire ces informations, WINDEV met plusieurs moyens votre disposition:
une traduction directe des messages dans les diffrents diteurs. Cette traduction peut tre
ralise via un outil de traduction, Google Trad (sous rserve de possder une licence), ...
une traduction ralise grce un outil externe (WDMSG et WDTRAD).

Saisie directe des traductions


Les traductions sont directement saisies dans linterface du produit. Par exemple, le libell du
bouton "Nouveau" devient "New" en anglais. Il suffit douvrir la fentre de description du champ et
de saisir dans la langue voulue la traduction correspondante.
Si vous disposez dun logiciel de traduction ou dun site de traduction, vous pouvez configurer
WINDEV pour utiliser ce logiciel:
1.Sous le volet "Accueil", dans le groupe "Environnement", droulez "Options" et slectionnez
"Options gnrales de WINDEV".
2.Affichez longlet "Traduction".

3.Spcifiez:
Si les paramtres rgionaux doivent tre automatiquement activs selon la langue en cours
de saisie. Dans ce cas, si la langue ncessite un alphabet spcifique, cet alphabet sera au-
tomatiquement slectionn.
Le logiciel ou le site utiliser pour la traduction. Il est possible dutiliser WDDixio, diction-
naire de traduction livr avec WDMSG (voir page suivante), un logiciel ou un site de traduc-
tion spcifique, ou Google Traduction (pour plus de dtails, consultez laide en ligne).
Les langues gres.
4.Lorsque les paramtres de traductions sont dfinis, il est possible dutiliser le bouton
prsent dans les diffrentes fentres de description des lments du projet: ce bouton
permettra dutiliser le logiciel dfini pour la traduction.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 335
Traduction avec WDMSG et WDTRAD
Il existe galement un outil nomm WDMSG (non fourni en standard avec WINDEV) qui permet:
dextraire tous les messages dun projet (libell des champs, message de code, titre des fe-
ntres,...) pour les traduire,
de rintgrer les messages traduits.
Les messages traduire sont extraits:
dans un format texte pouvant tre configur pour tre utilis avec la majorit des logiciels de
traduction.
au format HFSQL.
WDMSG est galement fourni avec un outil daide la traduction, WDTRAD. WDTRAD permet de
saisir simplement toutes les traductions des informations multilingues dun projet.
Pour obtenir plus dinformations sur WDMSG et WDTRAD, contactez le Service Commercial de
PCSOFT.

Autres lments traduire: les messages du framework


De nombreuses informations et messages sont prsents dans le framework WINDEV. Par exemple,
les noms des jours et des mois utiliss par les fonctions de gestion des dates proviennent du
framework WINDEV. Pour traduire une ou plusieurs librairies de ce framework, il est ncessaire
dutiliser WDINT (non fourni en standard avec WINDEV).
Ce logiciel permet dobtenir un fichier dextension WDM. Pour utiliser ce fichier dans votre appli-
cation:
vous pouvez utiliser la fonction ChargeErreur.
vous pouvez intgrer le fichier la description du projet dans longlet "Langues". Il suffit de
slectionner la langue voulue et de slectionner longlet "Divers".

Pour obtenir plus dinformations sur WDINT, contactez le Service Commercial de PC SOFT.

336 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Programmation du changement de langue
Par dfaut, le projet sexcute dans la langue dexcution dfinie pour le projet, dans longlet "Lan-
gues" de la description du projet (option "Description" sous le volet "Projet").
Dans une application, le choix de la langue peut seffectuer via une option de menu. La fonction
Nation utilise dans le traitement associ loption de menu permet de changer la langue de
lapplication en cours dexcution.

Ajout dune option de menu

Pour ajouter une option de menu:


1.Ouvrez si ncessaire la fentre "FEN_Menu" sous lditeur (double-cliquez sur son nom dans
lexplorateur de projet).
2.Cliquez sur loption "Menu" de la fentre. Le menu se droule.
3.Slectionnez loption "Envoyer un email".
4.Affichez le menu contextuel (clic droit). Slectionnez loption "Ajouter aprs". Saisissez le
libell "Langues" et validez.
5.Slectionnez loption "Langues" que vous venez de crer.
6.Affichez le menu contextuel (clic droit) et slectionnez loption "Transformer pour drouler
un sous-menu".
7.Saisissez le libell de la premire sous-option "Franais".
8.Appuyez sur la touche [ENTREE] deux fois et saisissez le libell de la seconde option "An-
glais".
Nous allons maintenant saisir le code WLangage ncessaire au changement de langue.

Programmation

Pour saisir le code de gestion des langues:


1.Slectionnez loption "Menu .. Langues .. Francais" sous lditeur.
2.Affichez le menu contextuel (clic droit). Slectionnez loption "Code".
3.Saisissez le code suivant:
Nation(nationFranais)

4.Slectionnez loption "Menu .. Langues .. Anglais" sous lditeur.


5.Affichez le menu contextuel (clic droit). Slectionnez loption "Code".
6.Saisissez le code suivant:
Nation(nationAnglais)

La fonction Nation permet de changer la langue dexcution de lapplication. Les constantes pas-
ses en paramtre permettent de spcifier la langue utiliser.
Le changement de langue effectu par la fonction Nation est immdiatement effectif.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 337
Test du projet
Nous avons traduit quelques lments de lapplication, nous allons maintenant tester le change-
ment de langue.
Pour tester lapplication:
1.Lancez le test du projet ( parmi les boutons daccs rapide). La fentre apparat en mode
test en franais.
2.Slectionnez loption "Menu .. Langues .. Anglais".
3.Les diffrents lments que nous avons traduits apparaissent en anglais:

4.Terminez le test et revenez sous lditeur.

338 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.17. GDS

Ce que vous allez apprendre dans cette leon ...

Prsentation
Le gestionnaire de sources
Utilisation du gestionnaire de sources

Dure estime: 30 mn

WINDEV 21 version "Express" :


Cette fonctionnalit nest pas disponible dans cette version dvaluation

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 339
Introduction
Un dveloppement informatique important ncessite la participation de plusieurs dveloppeurs.
Ces dveloppeurs doivent travailler sur un projet WINDEV unique, en partageant les diffrentes
ressources (fentres, classes,...) manipules.
WINDEV propose en standard un gestionnaire de sources nomm "GDS" permettant de parta-
ger les sources de diffrents projets entre dveloppeurs et de connatre lhistorique complet des
modifications ralises (dans le code, linterface, ...).

GDS (Gestionnaire de Sources)

Principe du GDS
Le gestionnaire de sources permet de stocker et de partager des projets et tous leurs lments.
Le principe est le suivant:
Une version de rfrence de chacun de vos projets est prsente sur un serveur. Lensemble
de ces versions est appel "Base de sources".
Chaque dveloppeur a sur son poste une copie locale des diffrents projets sur laquelle il
travaille.

COPIE LOCALE
Serveur GDS
Projet Dveloppeur
local Rseau local
COPIE LOCALE

Projet de Projet Dveloppeur


local ADSL (Internet)
rfrence
COPIE LOCALE
Projet Dveloppeur
local Dconnect

Lorsquun dveloppeur veut modifier un lment dun projet (une fentre, un tat, une re-
qute,...), il indique au GDS quil sapproprie temporairement cet lment. Pour cela, le d-
veloppeur va extraire cet lment de la base de sources.
Ce dveloppeur obtient alors les droits exclusifs sur cet lment: il peut faire toutes les
modifications voulues sur cet lment.
Les autres dveloppeurs continuent de travailler avec la copie de la version de rfrence de
cet lment (prsente dans la base de sources).
Ds que le dveloppeur a termin ses modifications, il rintgre llment extrait dans la
base de sources.

340 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les autres dveloppeurs sont automatiquement avertis de cette rintgration. Ils peuvent
alors mettre jour leur copie locale.

Serveur GDS Dveloppeur


1 EXTRACTION
Rseau local
DUN LMENT

Projet
local
Projet de 3 RINTGRATION 2 MODIFICATION
rfrence
Dveloppeur
SYNCHRONISATION ADSL (Internet)
4
SY

Projet
N

4 local
CH
RO
N
IS

Dveloppeur
AT
I O

Dconnect
N

Projet
local

Le GDS gre donc le travail collaboratif et permet de connatre lhistorique de toutes les modifica-
tions ralises.
Le GDS permet galement dadministrer et de rglementer les lments partags entre plusieurs
projets.

Cration de la base de sources


Pour partager un projet grce au gestionnaire de sources, il est ncessaire de crer une base de
sources. Cette base de sources doit tre cre une seule fois sur un poste serveur.
Cette base de sources peut tre cre diffrents moments:
lors de linstallation de WINDEV.
lors de la cration dun projet utilisant le GDS.
lors de limportation dun projet dans le GDS.
quand vous le souhaitez, directement depuis WINDEV ou depuis ladministrateur du GDS.
La base de sources peut tre installe en mode:
HFSQL Classic,
HFSQL Client/Serveur,
Cloud. Le mode Cloud permet davoir accs aux sources des projets depuis nimporte o,
nimporte quand. Pour plus de dtails, consultez le site www.pcscloud.net

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 341
Nous allons crer notre base de sources lors de limportation dun projet dans le GDS, la
prochaine tape.

Il est conseill de faire rgulirement des sauvegardes de la base de sources du


GDS. Pour cela, il suffit de :
Notes

se connecter en tant quadministrateur loutil dadministration du GDS.


sous le volet "Administration", dans le groupe "Sauvegardes", slectionner lop-
tion "Sauvegarde complte de la base".

Intgration dun projet dans le GDS

Ajouter le projet dans le GDS


Pour utiliser un projet existant avec le gestionnaire de sources, il suffit dintgrer ce projet dans la
base de sources du GDS.

Si vous navez pas ralis les manipulations des leons prcdentes, vous pou-
Corrig

vez suivre cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Corrig)"

Nous allons intgrer le projet "WD Application Complte.WDP" dans la base de sources du
GDS:
1.Sous le volet "GDS", dans le groupe "Projet", cliquez sur "Ajouter le projet". Lassistant dajout
de projet dans le GDS se lance:

Nous navons pas prcdemment cr de base de sources. Nous allons donc en crer une.
Remarque: Nous allons crer une base de sources "locale" (sur le poste de dveloppement). Le
fonctionnement serait similaire pour une base de sources rseau.

342 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2.Cliquez sur le bouton "Crer une base".
3.Lcran permettant de crer la base saffiche.

La base de sources peut tre au format HFSQL Classic (local ou rseau) ou au format HFSQL
Client/Serveur. Nous allons crer une base de sources au format HFSQL Classic.
Notes

Lutilisation dune base de sources au format HFSQL Client/Serveur permet


dutiliser cette base de sources distance.

4.Slectionnez loption "Cration dune base en mode partage rseau" et indiquez le rper-
toire de cette base de sources ("C:\Mes Projets\GDS Base de sources locale" par exemple).
5.Validez la cration de la base de sources (bouton "Crer la base").
6.La base de sources est prsent cre. Nous allons pouvoir intgrer notre projet dans
cette base de sources.
7.Passez ltape suivante.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 343
8.Lassistant nous propose de placer le projet dans le sous-rpertoire "Projets WinDev" de la
base de sources.

Nous allons accepter cet emplacement. Passez ltape suivante.


9.Lassistant nous demande de slectionner les diffrents lments du projet ajouter
dans la base de sources.

Nous voulons que tous les lments du projet soient ajouts. Passez ltape suivante.
10.Lassistant nous demande de slectionner les diffrentes dpendances du projet ajou-
ter dans la base de sources. Ces dpendances correspondent tous les lments externes
ncessaires au projet (images, feuilles de styles, ...).
Nous voulons que toutes les dpendances du projet soient ajoutes. Passez ltape sui-
vante.

344 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
11.Validez lintgration du projet dans le GDS. Notre projet et tous ses lments sont dsor-
mais ajouts dans notre base de sources.
Une fentre daide sur la barre doutils dutilisation du GDS saffiche. Lisez et validez cette
fentre.
Partage dlments du projet
Lors de lintgration dans le GDS de projets partageant les mmes ressources
Notes

(la mme analyse, les mmes fentres, ...), les lments concerns peuvent tre
partags entre les diffrents projets. Ainsi, le mme lment nest intgr quune
seule fois dans le GDS et les modifications sont automatiquement reportes
dans les autres projets.

Ouverture du projet depuis le GDS


Dans notre exemple, le projet est intgr au GDS et vous pouvez le manipuler directement.

Dans un cas rel, pour que dautres dveloppeurs travaillent sur un projet prsent dans le ges-
tionnaire de sources, ils doivent rcuprer, en local, une copie de ce projet.
Pour cela, les manipulations faire sont les suivantes:
1.Ouvrir le projet depuis le gestionnaire de sources: sous le volet "Accueil", dans le groupe "G-
nral", drouler "Ouvrir" et slectionner "Ouvrir un projet depuis le GDS".
2.Indiquer les paramtres de localisation de la base de sources et valider (cette tape est
ncessaire uniquement si le projet en cours sous lditeur nappartient pas au GDS):

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 345
3.Dans lcran qui saffiche, indiquer si ncessaire la connexion et le rpertoire local:

Remarque : Si vous avez dj ouvert le projet depuis le GDS, le GDS vous propose douvrir le pro-
jet normalement ou dcraser le contenu (pour rcuprer le projet complet).
Cette opration doit tre effectue une seule fois par chaque dveloppeur utilisant le projet.
Le dveloppeur qui a ajout le projet dans le gestionnaire de sources (dans ce cas, cest vous!)
na aucune manipulation effectuer.

Les prochaines ouvertures dun projet gr par le GDS sont identiques aux ouver-
Notes

tures dun projet non gr par le GDS: il suffit douvrir le projet (fichier ".WDP")
correspondant la copie locale.

Configuration du GDS
Avant de commencer travailler sur les lments du projet prsent dans le GDS, il est important
de configurer le mode dextraction des lments du projet.
Lors du travail sur des lments dun projet prsent dans le GDS, il est ncessaire dextraire ll-
ment de la base de source avant de commencer le modifier, puis de le rintgrer une fois les
modifications effectues. Llment modifi est ainsi disponible pour tous les utilisateurs du GDS.
WINDEV propose deux modes dextraction des lments du projet:
le mode classique: si vous affichez un lment du GDS non extrait, un panneau indique que
cet lment doit tre extrait pour tre modifi. Vous pouvez extraire immdiatement llment
(bouton dextraction prsent dans le panneau).
le mode automatique: si vous tentez de modifier un lment du GDS non extrait, le GDS pro-
pose automatiquement dextraire cet lment. Aprs la validation de lextraction, llment peut
tre modifi.
Remarque: ce mode est dconseill lors dune utilisation du GDS avec une connexion Internet
lente.

346 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans ce cours, nous allons utiliser lextraction automatique.
Pour vrifier que lextraction automatique est bien active, sous le volet "Accueil", dans le
groupe "Environnement", droulez "Options" et slectionnez loption "Options gnrales de
WINDEV". Dans longlet "Gnral", cochez si ncessaire loption "Extraction des lments la
premire modification".

Manipulation du projet via le GDS


Nous allons maintenant commencer travailler avec le GDS en conditions relles en ralisant les
manipulations suivantes:
Modifier un paramtre du projet.
Modifier une fentre du projet.

Modification dun paramtre du projet

Nous allons modifier le projet en demandant afficher le gabarit sur les fentres systme:
1.Affichez la description du projet: sous le volet "Projet", dans le groupe "Projet", cliquez sur
"Description".
2.Cliquez sur longlet "Style".
3.Cochez loption "Appliquer le thme de gabarit sur les fentres systme".
4.Validez la fentre de description du projet.
Plusieurs fentres du GDS apparaissent:
1.Tout dabord la fentre dextraction automatique du projet saffiche. En effet, nous modifions
une caractristique du projet, il est ncessaire dextraire le projet.

2.Loption "Rintgrer automatiquement le projet la fin de lopration" permet de rintgrer


automatiquement le projet la fin de sa modification. Conservez cette option.
3.Validez cette fentre.
4.WINDEV propose de recompiler le projet. Acceptez la recompilation complte du projet.
5.La fentre de description du projet se ferme et le projet est automatiquement rintgr
dans la base de sources.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 347
Modification dune fentre du projet
Nous allons maintenant modifier la fentre "FEN_Fiche_du_produit": le clic sur limage doit per-
mettre de modifier limage (comme le bouton "Modifier").

La modification dun lment extrait (IHM, code, ...) seffectue comme sur un projet non gr par
le GDS.
Cependant, toutes les modifications effectues sur un lment extrait ne sont pas visibles par les
autres dveloppeurs.
Si un autre dveloppeur excute llment extrait, llment qui est actuellement dans la base de
sources sera utilis.
Il est ainsi possible de faire voluer une application tout en gardant une version stable dans la
base de sources.

Pour modifier la fentre "FEN_Fiche_du_produit":


1.Slectionnez la fentre "FEN_Fiche_du_produit" dans lexplorateur du projet et double-cli-
quez sur llment pour louvrir sous lditeur de fentres.

2.Lextraction automatique est active la premire modification: il suffit de dplacer un


champ pour extraire llment. Il est galement possible dutiliser licne "Extraire" prsente
dans le ruban ( ).

348 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3.La fentre dextraction apparat:

4.Le GDS propose trois modes dextraction:


Exclusif (mode conseill): personne ne pourra extraire cet lment jusqu sa rintgration.
Llment pourra uniquement tre extrait pour test.
Pour test: llment pourra tre modifi mais les modifications ne pourront pas tre rint-
gres.
Multiple: llment pourra galement tre extrait par dautres utilisateurs. Dans ce cas, lors
de la rintgration, il sera possible de visualiser les diffrences entre les diffrentes ver-
sions de llment. Ce mode est rserv des cas dutilisations spcifiques et des dve-
loppeurs avancs.
5.Nous allons extraire la fentre en mode exclusif. Conservez loption "Exclusif" coche.
6.Saisissez un commentaire ("Modification de limage" par exemple). Ce commentaire sera
utile pour les autres dveloppeurs.
7.Validez lextraction. La fentre est extraite.
8.Affichez la fentre de description du champ Image (option "Description" du menu contex-
tuel).
9.Dans longlet "IHM", modifiez le curseur utilis: slectionnez le curseur "Main systme".
10.Validez la fentre de description du champ.
11.Affichez le code du champ Image: slectionnez le champ Image et utilisez par exemple la
touche [F2].
12.Saisissez le code suivant dans le traitement "Clic sur ..." :

// Excute le code de clic du bouton qui modifie limage


ExcuteTraitement(BTN_Modifier, trtClic)

13.Fermez la fentre de code.


14.Enregistrez votre fentre (CTRL + S).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 349
Testez vos modifications.
1.Lancez le test du projet ( parmi les boutons daccs rapide).
2.Slectionnez un produit et cliquez sur "Modifier".
3.Dans la fiche qui apparat, cliquez sur limage du produit: le slecteur de fichier souvre
pour modifier limage du produit. Cest bien le fonctionnement attendu.
4.Fermez la fentre de test.

Rintgration de llment extrait


Maintenant que les modifications sont termines et testes, nous allons rintgrer la fentre dans
la base de sources. Vos modifications seront alors accessibles aux autres dveloppeurs.
Sous le volet "GDS", dans le groupe "Elment en cours", cliquez sur le bouton "Rintgrer".
Lcran suivant saffiche:

Cet cran permet de:


connatre les modifications effectues en comparant llment de la base de sources avec
llment extrait (bouton "Mes Modifs").

Fusion de code
Notes

Vous pouvez comparer un lment avec une de ses versions prc-


dentes. Il est alors possible de comparer le code pour rcuprer un code
"perdu" ou supprim par erreur par un autre dveloppeur par exemple.

accder lhistorique de llment dans la base de sources (bouton "Proprits").


saisir un commentaire sur les modifications ralises. Par dfaut, WINDEV propose le com-
mentaire saisi lors de lextraction.
envoyer un message aux autres dveloppeurs.
rintgrer les modifications effectues dans llment, tout en conservant llment extrait
(option "Garder llment extrait").

350 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Si vous utilisez les Centres de Contrle, il est galement possible de terminer
Notes
la tche en cours lors de la rintgration de llment dans le Gestionnaire
de sources. Cette fonctionnalit est utile notamment pour assurer le suivi des
tches, des corrections de bugs, ...

5.Validez la rintgration.
6.La fentre apparat alors sous lditeur.

Synchronisation du projet
Plusieurs options permettent de configurer un projet manipul avec le GDS. Ces options sont re-
groupes dans longlet "GDS" de la description du projet (affiche par un clic sur "Description"
sous le volet "Projet").

Ces options sont les suivantes:


Proposer la rcupration de la dernire version des lments louverture du projet.
Cette option permet lors de louverture dun projet prsent dans le GDS, de proposer la
rcupration de la dernire version des diffrents lments du projet.
Proposer la rintgration des lments la fermeture du projet.
Cette option permet dafficher lors de la fermeture du projet la liste de tous les lments
actuellement extraits, afin de rintgrer certains ou tous ces lments.
Par dfaut, la fermeture du projet, les lments extraits ne sont pas rintgrs.
Extraire/Rintgrer automatiquement le projet.
Cette option permet dextraire ou de rintgrer automatiquement le projet lors de la
manipulation dun lment.
Par dfaut, cette option est slectionne.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 351
Mode dconnect (ou nomade)
Le GDS permet trs simplement de travailler en mode dconnect ou nomade.
Ce mode permet par exemple un dveloppeur utilisant un portable de continuer travailler sur
un projet prsent dans la base de sources tout en tant dconnect.
Le principe est simple:
avant la dconnexion, sous le volet "GDS", dans le groupe "Autres actions", droulez "Travail
distance" et slectionnez loption "Se dconnecter pour une utilisation nomade".
la reconnexion, sous le volet "GDS", dans le groupe "Autres actions", droulez "Travail
distance" et slectionnez loption "Se reconnecter et synchroniser". Il suffit alors de rint-
grer les lments modifis.
En mode nomade, deux solutions soffrent vous concernant lextraction dlments:
Vous ne faites aucune extraction dlment du GDS. Ainsi, pendant toute votre priode no-
made, dautres dveloppeurs pourront travailler sur le ou les mmes lments que vous.
votre retour et votre reconnexion au GDS, il sera ncessaire de faire des fusions entre vos
propres modifications sur llment et celles effectues par dautres dveloppeurs.
Vous faites une extraction exclusive sur le ou les lments que vous allez modifier. Vous
vous rservez ainsi llment pendant toute votre priode nomade.

Administrateur du GDS
Ladministrateur du GDS permet de manipuler directement les diffrents projets inclus dans le
gestionnaire de sources.
Il permet par exemple de:
grer les bases de sources (cration, connexion une base de sources).
grer les fichiers et les rpertoires prsents dans un projet de la base de sources (ajouter,
supprimer, renommer, des fichiers et des rpertoires).
grer les diffrents fichiers de la base de sources (extraction, rintgration, partage, ).
lancer certains outils (options, maintenances, ).
visualiser lhistorique dun lment.
visualiser ltat des lments.
raliser des sauvegardes.
donner des droits aux diffrents utilisateurs du GDS.
lister les projets auxquels on participe afin de pouvoir sen dissocier (si besoin).

352 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lancez ladministrateur du GDS: sous le volet "GDS", dans le groupe "Base GDS", cliquez sur
le bouton "Grer". Tous les lments du projet sont lists dans ladministrateur.

Pour plus de renseignements sur le GDS, consultez laide en ligne de WINDEV (mot-cl: "GDS").

Dconnexion du GDS
Dans la suite de ce cours, nous allons nouveau manipuler lapplication "WD Application Com-
plte". Pour simplifier les manipulations, nous vous conseillons de vous dconnecter du GDS:
1.Affichez la fentre de description du projet: Sous le volet "Projet", dans le groupe "Projet", cli-
quez sur "Description".
2.Dans longlet "GDS", slectionnez loption "Pas de groupware dveloppeur ni de GDS".
3.Validez la fentre de description du projet.

Conclusion
Nous avons vu toutes les principales phases du dveloppement dune application.
WINDEV propose galement diffrents outils pour optimiser vos applications. Pour plus de dtails,
consultez la leon "Audits du projet", page 383.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 3 : Application complte avec donnes 353
354 Partie 3 : Application complte avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 4

Administrer
une base HFSQL
Client/Serveur
356 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 4.1. Introduction

Ce que vous allez apprendre dans cette leon...

Principe du Client/Serveur
Pourquoi passer une application en HFSQL Client/Serveur?

Dure estime: 5 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 357
Prsentation
WINDEV permet de crer des applications accdant des bases de donnes HFSQL Client/Ser-
veur.
Une base de donnes en mode Client/Serveur permet de dporter la ou les bases de donnes sur
un poste serveur.
Ce mode de fonctionnement :
accrot la scurit de vos donnes,
permet de grer trs facilement le mode multi-utilisateurs,
facilite la maintenance, ...

Poste Client 1

Application WINDEV

Poste Client 2 Serveur HFSQL


Windows ou Linux

Serveur Manta

Application WINDEV

Bases de donnes
Poste Client n HFSQL
Client/Serveur

Application WINDEV

WINDEV permet de:


crer entirement une application utilisant une base de donnes HFSQL Client/Serveur.
modifier une application utilisant une base de donnes HFSQL Classic pour quelle utilise une
base de donnes HFSQL Client/Serveur.

358 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pourquoi passer une application en mode HFSQL Client/
Serveur?
Les principaux avantages dune application en mode HFSQL Client/Serveur par rapport une
application en mode HFSQL Classic sont les suivants:
Lutilisation de HFSQL Client/Serveur est plus scurise (utilisation dun login, dun mot de
passe et dfinitions de droits associs aux utilisateurs).
Pas de gestion de rpertoires: tous les fichiers de la base de donnes sont regroups au mme
endroit.
Les clients finaux ne voient pas les fichiers de donnes dans leur explorateur et ne peuvent pas
y accder directement.
Les bases de donnes en mode Client/Serveur peuvent tre utilises par une connexion Inter-
net.
Une gestion du mode multi-utilisateur native: les performances en mode multi-utilisateur sont
optimises.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 359
Leon 4.2. Mise en place dune
base de donnes Client/Serveur

Ce que vous allez apprendre dans cette leon...

Installation dun serveur HFSQL local


Cration dune application utilisant une base de donnes HFSQL Client/Serveur
Adaptation dune application pour grer une base de donnes HFSQL Client/Serveur
Fonctionnalits disponibles en mode Client/Serveur

Dure estime: 10 mn

360 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Dans cette leon, nous allons effectuer toutes les oprations ncessaires au dveloppement et
au dploiement dune application utilisant une base de donnes HFSQL Client/Serveur.

Installation dun serveur HFSQL local


La premire opration faire avant de commencer dvelopper consiste installer un serveur
HFSQL.
Sur le poste de dveloppement, ce serveur peut tre install en local (cest ce que nous allons
faire). En dploiement, ce serveur peut tre install sur un poste spcifique.
Le programme dinstallation du serveur HFSQL est disponible sur le CD de WINDEV. Si vous ne
possdez pas ce CD, linstallation du serveur HFSQL est galement disponible sur le site de PC
SOFT (www.pcsoft.fr).
Pour installer le serveur HFSQL en local:
1.Lancez le programme dinstallation de WINDEV.
2.Choisissez loption "Installation du Serveur HFSQL C/S".
3.Slectionnez ensuite loption "Installer un serveur HFSQL Client/Serveur".
4.Acceptez la licence.
5.Choisissez la plateforme (option "Pour Windows sur cette machine").
6.Si des serveurs HFSQL sont dj installs sur le poste en cours, choisissez loption "Instal-
ler un nouveau serveur".
7.Slectionnez le rpertoire dinstallation et indiquez le nom du serveur et le port. Par dfaut,
le port utilis est 4900.

Pensez ouvrir ce port sur le firewall pour se connecter au serveur HFSQL de-
puis une autre machine.
Notes

Si ce port est dj utilis (par un autre serveur HFSQL par exemple), pensez le
modifier.

8.Installez le Centre de Contrle HFSQL si celui-ci nest pas prsent ou accessible depuis
votre poste.
Attention!

Le Centre de Contrle HFSQL est ncessaire la gestion de la base HFSQL


Client/Serveur.

9.Linstallation est effectue. Par dfaut, pour se connecter au serveur en mode administra-
teur, il faut utiliser lutilisateur "admin" sans mot de passe.
Notes

Pour des raisons videntes de scurit, pensez changer le mot de passe de


ladministrateur.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 361
Cration dune application utilisant une base de donnes
HFSQL Client/Serveur
La cration dune application WINDEV utilisant une base de donnes HFSQL Client/Serveur se fait
trs simplement. Il est ncessaire de:
1.Crer le projet en demandant crer une nouvelle base de donnes.
2.Crer lanalyse en spcifiant que les bases de donnes utilises par le projet seront de type
"HFSQL Client/Serveur".
3.Indiquer les caractristiques de la connexion au serveur HFSQL Client/Serveur utiliser.
4.Lors de la cration dun fichier sous lanalyse, indiquer que ce fichier est en mode Client/
Serveur et prciser la connexion utilise.
Notes

Vous pouvez aussi dcrire la connexion au serveur HFSQL par programmation.


Pour plus de dtails, consultez laide en ligne: HDcritConnexion.

Adaptation dune application pour utiliser une base de


donnes HFSQL Client/Serveur

Prsentation
Le passage dune base de donnes HFSQL Classic en mode Client/Serveur est une opration
courante.
WINDEV propose plusieurs solutions pour raliser ce passage:
raliser cette adaptation dans lditeur danalyses.
raliser cette adaptation depuis le Centre de Contrle HFSQL.
Pour mieux se rendre compte des diffrentes tapes, nous allons passer en mode Client/Ser-
veur lapplication que nous avons ralise dans la partie 3 de ce livre, en utilisant la premire
mthode, lditeur danalyses.

Adaptation de lexemple

Si vous navez pas ralis les manipulations des leons prcdentes, vous pou-
Corrig

vez suivre cette leon en ouvrant un projet corrig: sous le volet "Accueil", dans
le groupe "Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez
"Application complte (Corrig)".

362 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour adapter le projet:
1.Ouvrez si ncessaire le projet "WD Application Complte".
2.Dans lexplorateur de projet, slectionnez si ncessaire, la configuration de projet "Excu-
table Windows 32 bits".
3.Chargez lanalyse de votre projet sous lditeur danalyses: cliquez sur parmi les bou-
tons daccs rapide. Lditeur danalyses saffiche.
4.Sous le volet "Analyse", dans le groupe "Connexion", cliquez sur "Nouvelle connexion". Un
assistant souvre, permettant de crer une connexion.
5.Slectionnez le type de connexion crer: "HFSQL Client/Serveur".

6.Passez ltape suivante.


7.Indiquez dans les plans suivants:

le nom du serveur (nom de votre machine par exemple) et le numro de port. Passez
lcran suivant.
le nom de lutilisateur et son mot de passe (laissez ces informations vides pour utiliser lad-
ministrateur). Passez lcran suivant.
le nom de la base de donnes ("WD Application Complte" dans notre exemple). Passez
lcran suivant.
8.Saisissez le nom de la connexion (conservez le nom propos).

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 363
9.Passez ltape suivante et validez. La connexion la base est automatiquement cre.
Lassistant propose dassocier les diffrents fichiers de donnes prsents dans lanalyse la
connexion qui vient dtre cre.

10.Cliquez sur "Oui".


11.Dans lcran suivant, slectionnez tous les fichiers proposs:

Passez ltape suivante.


12.Lassistant propose ensuite de copier les fichiers de donnes sur le serveur. Validez (op-
tion "Copier maintenant").

13.Slectionnez les fichiers de donnes de lanalyse copier sur le serveur: dans notre cas,
ce sont tous les fichiers de donnes du rpertoire EXE.

364 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
14.Passez ltape suivante et validez.
15.Les fichiers de donnes de lanalyse sont automatiquement transforms en fichiers de
donnes HFSQL Client/Serveur et associs la connexion choisie.

16.Gnrez lanalyse: sous le volet "Analyse", dans le groupe "Analyse", cliquez sur "Gnra-
tion". Une modification automatique des fichiers de donnes est automatiquement effectue.
Si tous les fichiers de donnes sont jour, vous pouvez annuler la modification automatique
des fichiers de donnes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 365
Passage en mode Client/Serveur: quelques conseils
Vrifiez le code de votre projet: en mode HFSQL Client/Serveur, les instruc-
tions HSubstRep, ... sont inutiles
Selon les paramtres indiqus lors de la cration de la connexion, il est pos-
Notes

sible de modifier la connexion dfinie dans lanalyse grce aux fonctions


HOuvreConnexion et HChangeConnexion.
La fonction HOuvreConnexion permet toujours de repasser en mode HFSQL
Classic: il suffit de lui prciser le chemin du rpertoire contenant les fichiers
de donnes HFSQL Classic.

17.Vous avez adapt le projet de dveloppement. Il peut tre galement ncessaire dadapter
lapplication dploye (par exemple si lapplication dploye utilise des fichiers HFSQL Clas-
sic). Cette opration se paramtre lors de la cration du programme dinstallation de lappli-
cation.

Fonctionnalits disponibles en mode HFSQL Client/Serveur


HFSQL Client/Serveur propose de nombreuses fonctionnalits:
Transactions,
Journaux,
Procdures stockes,
Triggers,
Modification automatique des donnes chaud,
Rindexation chaud,
Sauvegardes planifies,
Sauvegardes incrmentielles,
Rplication multi-sites.
Nous ne dtaillerons pas ici ces fonctionnalits (certaines ont t abordes dans ce cours en
mode HFSQL Classic). Nous vous conseillons de consulter laide en ligne pour plus de dtails sur
ces sujets.

366 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 4.3. Administrer une base de
donnes Client/Serveur

Ce que vous allez apprendre dans cette leon...

Le Centre de Contrle HFSQL


Crer un utilisateur dans le Centre de Contrle HFSQL
Sauvegarder la base de donnes

Dure estime: 20 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 367
Prsentation
Maintenant que nous savons crer/adapter une application pour quelle fonctionne en mode
HFSQL Client/Serveur, nous allons voir comment administrer la base de donnes associe.
En effet, une base de donnes Client/Serveur ncessite:
une configuration spcifique des postes (installation dun serveur HFSQL, ...).
une administration ralise grce au Centre de Contrle HFSQL.

Configuration des postes


Pour utiliser une base HFSQL Client/Serveur, il est ncessaire dinstaller un serveur HFSQL sur le
poste serveur. Il est possible dutiliser plusieurs serveurs HFSQL sur le mme poste, utilisant des
ports diffrents. Sur chaque serveur, une ou plusieurs bases de donnes peuvent tre installes.
Par exemple, il est possible dinstaller sur le mme poste un serveur HFSQL de tests, avec une
base de donnes de tests et un serveur HFSQL de production, utilisant un port diffrent.

Le Centre de Contrle HFSQL


Le Centre de Contrle HFSQL permet de raliser toutes les oprations dadministration des ser-
veurs et des bases de donnes HFSQL Client/Serveur.
Nous allons voir les fonctionnalits les plus importantes.
Nous allons tout dabord lancer le Centre de Contrle HFSQL depuis le projet WINDEV.
Pour lancer le Centre de Contrle HFSQL et accder aux donnes:
1.Dans le menu de WINDEV, sous le volet "Outils", dans le groupe "Base de donnes", cliquez
sur "HFSQL". Le Centre de Contrle HFSQL apparat.
2.La fentre de bienvenue dans le Centre de Contrle HFSQL saffiche. Lanalyse du projet en
cours est automatiquement slectionne.

3.Validez lcran. Le Centre de contrle HFSQL apparat. Ce mode de lancement permet de


voir les diffrents fichiers lis lanalyse du projet en cours.

368 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Cliquez si ncessaire sur longlet vertical "HFSQL C/S". La liste des fichiers de donnes au
format HFSQL Client/Serveur saffiche.

Le Centre de Contrle liste ici les fichiers de donnes Client/Serveur trouvs dans lanalyse
lie au projet en cours. Aucune connexion nest ralise: les fichiers apparaissent griss.
5.Pour visualiser les donnes des fichiers, double-cliquez sur un des fichiers de donnes
dans la liste gauche (par exemple "Commande"). Si le Centre de Contrle HFSQL ne connat
pas tous les paramtres de la connexion, une fentre de connexion permet de raliser la
connexion effective au serveur HFSQL Client/Serveur utilis. Si cette fentre saffiche, indi-
quez le mot de passe et validez.
6.Le contenu du fichier de donnes est affich dans un nouvel onglet ("Commande" dans
notre exemple). En cliquant sur longlet "Description", vous pouvez visualiser les diffrentes
informations sur le fichier de donnes slectionn:

Longlet "Description" prsente les informations sur les fichiers de donnes (rubriques du fi-
chier, ...).
Longlet "Contenu" affiche les enregistrements contenus dans les fichiers de donnes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 369
Depuis le Centre de Contrle HFSQL, il est possible dadministrer toute la base de donnes
HFSQL Client/Serveur.

Crer un compte utilisateur dans le Centre de Contrle HFSQL


Nous avons vu que lors de linstallation dun serveur HFSQL et lors de la cration dune base de
donnes, un seul compte utilisateur est cr: le compte de ladministrateur (login "Admin" sans
mot de passe).
Lutilisation de compte utilisateur permet de scuriser laccs aux donnes. En effet, tous les
utilisateurs de lapplication ne sont pas des administrateurs. A chaque utilisateur (ou groupe duti-
lisateurs), il est possible dassocier des droits.

Les droits des utilisateurs spcifis dans le Centre de Contrle HFSQL sont des
Attention!

droits de base de donnes et pas des droits dapplication.


Il ne faut pas confondre la gestion des droits des bases de donnes Client/Ser-
veur avec le groupware utilisateur.

Certains utilisateurs peuvent par exemple ne pas avoir le droit dcrire dans certains fichiers.
Pour faire un test simple, nous allons crer un utilisateur et lui permettre de consulter les enregis-
trements du fichier Client.
Pour se connecter directement la base de donnes prsente sur le serveur:
1.Droulez le menu situ en haut gauche du Centre de Contrle HFSQL et slection-
nez loption "Se connecter un serveur HFSQL".
2.La fentre de bienvenue dans le Centre de Contrle HFSQL saffiche.

3.Loption "Se connecter un serveur HFSQL" est slectionne par dfaut. Indiquez les carac-
tristiques du serveur install dans la leon prcdente puis validez.
4.Les caractristiques du serveur HFSQL sont affiches:
dans le panneau de gauche, le nom du serveur HFSQL ainsi que la liste des bases prsentes
sur ce serveur apparaissent.
dans la partie droite de lcran, un nouvel onglet est affich permettant de voir les caract-
ristiques du serveur HFSQL.

370 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5.Dans la partie droite de lcran, slectionnez longlet "Utilisateurs". Cet onglet permet de
grer les utilisateurs du serveur.
6.Pour le moment, seul lutilisateur "Admin" est prsent.

7.Pour crer un nouvel utilisateur, dans le ruban, dans le groupe "Utilisateurs", cliquez sur le
bouton "Nouveau". Lcran permettant de dfinir les caractristiques de lutilisateur apparat.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 371
8.Saisissez par exemple les informations suivantes:

(utilisez par exemple "Test" galement comme mot de passe).

Plusieurs caractristiques peuvent tre notes:


Super Utilisateur: Les utilisateurs dsigns comme "Super utilisateur" sont
autoriss effectuer toutes les actions sur le serveur, les bases de donnes et
sur tous les fichiers.
Notes

Compte actif: Si cette option nest pas coche, lutilisateur existe mais nest
pas actif (cas des utilisateurs en congs par exemple).
Expiration du mot de passe: Il est possible davoir un mot de passe valide uni-
quement pour un nombre de jours donns. (paramtrable).

9.Validez la cration de lutilisateur. Par dfaut, cet utilisateur na aucun droit.


Nous allons maintenant attribuer des droits lutilisateur: lutilisateur "Test" peut se connecter
la base de donnes et consulter le fichier Client.

372 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour donner le droit de connexion la base de donnes:
1.Dans le Centre de Contrle HFSQL, double-cliquez sur la base de donnes "WD Application
Complte".
2.Sous le volet "WD Application Complte", dans le groupe "Droits", cliquez sur "Gestion des
droits".
3.Slectionnez lutilisateur "Test" dans la liste des utilisateurs.
4.Dans la liste des droits, pour laction "Droit de se connecter au serveur (connexion crypte
et non crypte)", cliquez dans la colonne "Droit dfini" et slectionnez la coche verte.

5.Cliquez sur le bouton "Appliquer" (flche bleue en bas de la fentre). Le droit devient effec-
tif.
6.Fermez la fentre de gestion des droits.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 373
Pour donner le droit de lire le fichier Client:
1.Dans le Centre de Contrle HFSQL, droulez la base de donnes "WD Application Complte",
puis double-cliquez sur le fichier Client ( gauche de lcran).
2.Sous le volet "Client", dans le groupe "Droits", cliquez sur "Gestion des droits".
3.Slectionnez lutilisateur "Test" dans la liste des utilisateurs.
4.Dans la liste des droits, pour laction "Droit de lire les enregistrements dun fichier", cliquez
dans la colonne "Droit dfini" et slectionnez la coche verte.

5.Cliquez sur le bouton "Appliquer" prsent en bas de la fentre (Flche bleue). Le droit de-
vient effectif.
6.Fermez la fentre de gestion des droits.

De cette faon, il est possible de dfinir des droits:


sur le serveur HFSQL
sur la base de donnes
sur les fichiers de la base de donnes.
Dans notre exemple, lutilisateur "Test" pourra uniquement parcourir les enregistrements du fi-
chier Client. Si cet utilisateur tente une autre action, un message saffichera: "Lutilisateur Test
na pas les droits suffisants pour XXXX" (o XXXX correspond laction effectue).
Une fois le compte cr, il peut tre utilis lors de la connexion de lapplication au serveur (quand
la fonction HOuvreConnexion est utilise).

La gestion des utilisateurs et de leurs droits peut galement tre effectue par
Notes

programmation grce aux fonctions WLangage. Pour plus de dtails, consultez


laide en ligne.

374 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Sauvegarder la base de donnes
Pour sauvegarder la base de donnes :
1.Positionnez-vous sur longlet correspondant la base "WD Application Complte".
2.Slectionnez longlet vertical "Sauvegardes".
3.Dans le menu, dans le groupe "Sauvegardes", droulez "Nouvelle sauvegarde" et slection-
nez "Nouvelle sauvegarde chaud".
Remarque : Ce bouton est accessible dans le groupe "Sauvegardes":
sur longlet correspondant au serveur HFSQL,
sur longlet correspondant la base de donnes.

Remarque : Lassistant permet galement de raliser une sauvegarde dune slection de fichiers.

Conclusion
Le Centre de Contrle HFSQL est un outil complet dadministration de base de donnes, permet-
tant entre autres:
darrter ou de redmarrer un serveur en cas de problme,
de grer les utilisateurs et leurs droits,
de rindexer les fichiers de donnes si ncessaire,
de faire des sauvegardes de la base.
Le Centre de Contrle HFSQL est un outil redistribuable qui peut tre install chez les clients
possdant des bases de donnes HFSQL Client/Serveur. Le Centre de Contrle HFSQL doit tre
utilis par la personne administrant la base de donnes.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 375
Leon 4.4. Installation en clientle

Ce que vous allez apprendre dans cette leon ...

Comment installer une application Client/Serveur en clientle?

Dure estime: 5 mn

376 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Linstallation dune application Client/Serveur ncessite plusieurs options spcifiques. Ces op-
tions sont prises en charge par lassistant de cration dinstallation de WINDEV.
Nous allons crer la procdure dinstallation de notre application "WD Application Complte".

Lancement de lassistant de cration dinstallation


Pour lancer la procdure dinstallation dune application HFSQL Client/Serveur:
1.Sous le volet "Projet", dans le groupe "Gnration", cliquez sur "Procdure dinstallation".
2.Crez lexcutable et validez la cration de laide.
3.Allez jusqu lcran "Paramtres des bases de donnes". Dans ce plan, il est possible de:
Intgrer linstallation dun serveur HFSQL,
Paramtrer les connexions HFSQL Client/Serveur,
Dployer les fichiers HFSQL Client/Serveur.

Si ces options sont coches, les crans suivants permettent de paramtrer les diffrents
lments prendre en compte pour linstallation en clientle.
Pour plus de dtails, consultez laide en ligne.
Remarque : Certaines options ne sont pas disponibles dans la version Express.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 4 : Administrer une base HFSQL Client/Serveur 377
378 Partie 4 : Administrer une base HFSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 5

Optimiser et
dboguer un
projet
380 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 5.1. Prsentation

Ce que vous allez apprendre dans cette leon ...

Pourquoi optimiser une application


Projet exemple

Dure estime: 5 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 381
Prsentation
Votre application est termine. Elle fonctionne, vous avez cr diffrents tests automatiques pour
viter les rgressions. Vous voulez la dployer chez vos clients.
Avez-vous pens utiliser les outils de WINDEV pour optimiser votre application ? WINDEV pro-
pose une srie doutils et de fonctionnalits permettant doptimiser rapidement votre application
et dviter simplement des "bugs" grossiers.
Cette partie prsente en dtail ces outils et leur utilisation.

Pour mieux manipuler ces fonctionnalits, nous avons prpar un projet optimiser !

Ouverture du projet

Lancez WINDEV 21 (si ce nest dj fait). Si ncessaire, fermez le projet en cours pour faire
apparatre la fentre de bienvenue.
Ouvrez le projet "WD Optimisation".
Pour cela, dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez
"Optimiser un projet".
Astuce: si la fentre de bienvenue nest pas affiche, sous le volet "Accueil", dans le groupe
"Aide en ligne", droulez "Guide dAuto-formation" puis slectionnez loption "Optimiser un
projet".

382 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 5.2. Audits du projet

Ce que vous allez apprendre dans cette leon ...

Quest-ce quun audit et quoi a sert ?


Lancer et analyser laudit statique
Lancer et analyser laudit dynamique

Dure estime: 15 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 383
Quest-ce quun audit ?
Les audits apportent une srie de fonctionnalits permettant damliorer automatiquement la
qualit et les performances dun projet et de suivre plus prcisment ses conditions de mise en
exploitation.

Deux types daudits sont disponibles:


Laudit statique. Laudit statique consiste en une analyse dtaille dun projet et de ses l-
ments. Cet audit est effectu directement depuis lditeur de projet.
Laudit dynamique. Laudit dynamique est une analyse du comportement dun projet pendant
son excution. Cet audit peut tre ralis en mode test ou directement dans lenvironnement de
production.

Nous allons tout de suite tester ces audits sur le projet "WD Optimisation".

Audit statique
Laudit statique est une fonctionnalit de lenvironnement permettant danalyser les sources dun
projet pour dtecter diffrents problmes et proposer des amliorations.
Pour lancer laudit statique sur le projet "WD Optimisation":
1.Sous le volet "Projet", dans le groupe "Audit et performances", droulez "Audit ddition" et
slectionnez "Dclencher laudit ddition".

Laudit statique du projet peut galement tre lanc depuis le Tableau de bord
du projet, via le Widget "Audit statique et Compilation".
Il suffit de:
activer le Widget si ncessaire (cliquez sur le lien "Cliquez ici pour ractiver").
cliquer sur la flche.
Notes

384 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2.Lassistant se lance. Nous allons dfinir la cible de laudit statique.

3.Slectionnez loption "Lancer laudit statique sur le projet complet".


4.Validez lassistant.
5.Le rapport daudit est affich:

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 385
Laudit statique se compose de:
Laudit statique du projet.
Laudit du contenu de la bibliothque de lapplication.
Laudit du contenu de linstallation.
Examinons avec attention les points prsents par ce rapport.
Procdure non excute
Dans notre projet, laudit nous indique quune procdure nest jamais excute.
Il arrive frquemment dans des projets importants, de crer une ou plusieurs procdures pour
raliser un traitement, puis suite une rorganisation du code, la procdure nest plus utilise
mais reste dans le projet.
La prsence de procdures non utilises alourdit inutilement les ressources distribues aux utili-
sateurs finaux.
Pour traiter ce problme:
1.Cliquez sur le bouton [...] pour obtenir plus de renseignements. La fentre listant les codes
morts apparat.

2.La procdure "ProcdureObsolte" nest jamais appele. Cette fentre permet de:
spcifier que la procdure est tout de mme utilise (bouton "Marquer comme utilis").
Dans ce cas, la procdure ne sera plus prise en compte lors de laudit.
supprimer la procdure si elle est rellement inutilise (bouton "Supprimer").
voir la procdure (bouton "Voir").
rechercher les cas dutilisation dans les chanes par exemple (bouton "Rechercher").
3.Dans notre cas, cette procdure est rellement inutilise, cliquez sur "Supprimer".
4.Une fentre saffiche demandant la confirmation de la suppression. Confirmez la suppres-
sion en cliquant sur le bouton "Supprimer".
5.Fermez la fentre du code mort (utilisez la croix en haut droite).

386 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans la fentre de laudit statique, cliquez sur le bouton "Rafrachir" pour mettre jour le
rapport daudit.

Elment orphelin
Laudit nous indique que notre projet contient un lment orphelin.
Comme pour les procdures excutes, il arrive frquemment de crer des fentres, des tats
afin deffectuer un test rapide, de les enregistrer et de les oublier. La prsence dlments orphe-
lins dans lexcutable alourdit inutilement les ressources distribues aux utilisateurs finaux.
Pour traiter ce problme:
1.Cliquez sur le bouton [...] pour obtenir plus de renseignements. La fentre listant les l-
ments orphelins apparat.

2.La fentre "FEN_FentreInutilise" nest jamais appele. La fentre listant les lments or-
phelins permet de:
spcifier que llment est tout de mme utilis (bouton "Marquer comme utilis"). Dans ce
cas, la fentre de notre exemple ne sera plus prise en compte lors de laudit. Cette option
peut tre intressante par exemple dans le cas dune fentre de test spcifique au dvelop-
pement.
supprimer llment si il est rellement inutilis (bouton "Supprimer").
voir llment (bouton "Voir").
rechercher les cas dutilisation dans les chanes par exemple (bouton "Rechercher").
3.Dans notre cas, cette fentre "FEN_FentreInutilise" est rellement inutilise, cliquez sur
"Supprimer".
4.Fermez la fentre des lments orphelins (utilisez la croix en haut droite).
Dans la fentre de laudit statique, cliquez sur le bouton "Rafrachir" pour mettre jour le
rapport daudit.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 387
Requte optimiser
Laudit nous indique que notre projet contient une requte optimiser.
Cette optimisation permet damliorer la vitesse dexcution de la requte. Loptimisation dune
requte repose sur le principe suivant: un assistant dtermine les cls composes modifier et/
ou ajouter dans lanalyse associe au projet.
Pour optimiser la requte:
1.Cliquez sur le bouton [...] pour obtenir plus de renseignements. La fentre listant les modifica-
tions raliser dans lanalyse apparat.

2.Lassistant propose de modifier une rubrique de lanalyse en la transformant en une cl


avec doublons.
3.Nous allons appliquer le changement propos: cliquez sur le bouton "Appliquer ces modifi-
cations dans lanalyse".
4.Une fentre saffiche demandant la confirmation de la modification de lanalyse. Validez
cette fentre.
5.Lditeur danalyses est ouvert et la modification est effectue. Un message indique que la
gnration de lanalyse est ncessaire. Confirmez la gnration de lanalyse en cliquant sur
"Oui".
6.Lapplication utilisant des donnes, une modification automatique des fichiers de donnes
est ncessaire. Validez les diffrents crans de lassistant de modification des donnes (en
conservant les options par dfaut).
7.La fentre de laudit statique est automatiquement rafrachie.

388 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nettoyage du projet
Notre projet contient plusieurs fichiers inutiliss. Il est possible de nettoyer le projet pour ne
conserver que les lments ncessaires. Lexcutable et linstallation client ne sont pas alourdis
avec des images, fichiers externes, ... non utiliss
Pour traiter ce problme:
1.Cliquez sur le bouton [...] pour obtenir plus de renseignements.
2.Lassistant de nettoyage de projet se lance. Cet assistant indique les fichiers inutiliss qui
peuvent tre supprims.
3.Passez ltape suivante.
4.Indiquez le type de nettoyage raliser. Il est possible de:
crer un fichier zip avec les fichiers inutiles.
dplacer les fichiers inutiles dans un rpertoire spcifique.
5.Validez loption propose par dfaut et passez au plan suivant.
6.Terminez lassistant.
Nous avons optimis notre projet en suivant tous les conseils de laudit statique.
Laudit statique permet davoir un tat gnral sur les sources de votre projet. Notre conseil: lan-
cez-le rgulirement !

Maintenant, voyons ce quil se passe en excution en lanant laudit dynamique.

Audit dynamique
Laudit dynamique permet danalyser lexcution de lapplication. Laudit permettra de dceler
des problmes tels que:
Consommation excessive de mmoire,
Lenteurs des algorithmes utiliss,
Erreurs "masques" lors de lexcution,
...
Un audit dynamique peut tre effectu dans un environnement de test ou sur une application en
production.
Le projet "WD Optimisation" contient une fentre spcifique provoquant des erreurs pouvant tre
dtectes par laudit dynamique.
Nous allons lancer laudit dynamique en mme temps que le test du projet.
Pour lancer laudit dynamique sur le projet "WD Optimisation":
1.Sous le volet "Projet", dans le groupe "Mode test", droulez "Mode test" et slectionnez "Dbo-
guer le projet avec laudit activ". Le test du projet se lance.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 389
Laudit dynamique du projet peut galement tre lanc depuis le Tableau de
bord du projet, via le Widget "Excution". Il suffit de:
activer le Widget si ncessaire (cliquez sur le lien "Cliquez ici pour ractiver").
drouler la flche et de slectionner "Go minutieux du projet".
Notes

Remarque : A chaque lancement de lapplication par un GO du projet, laudit dy-


namique est automatiquement excut. Un compte-rendu est automatiquement
affich dans le Tableau de bord:

2.Cliquez sur le bouton "Fentre de test de laudit dynamique".


3.Cliquez sur les diffrents boutons prsents dans la fentre. A la fin de chaque traitement,
un message sous forme de toast est affich pour indiquer que le traitement est termin. Pour
loption "Assertion et Exception", une assertion est affiche: cliquez "Continuer" pour voir ap-
paratre le message sous forme de toast.
4.Arrtez le test de lapplication.
5.La fentre de compte-rendu de laudit dynamique saffiche.

390 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Examinons cette fentre:
La partie haute de cette fentre permet de choisir le mode daffichage des donnes. Il est
possible de:
choisir un affichage chronologique (respectant lordre darrive des vnements) ou un affi-
chage synthtique, permettant de regrouper les diffrents types de problmes. Dans ce cas,
la frise chronologique permet de voir la position et limportance des problmes.
choisir le type de problme afficher (erreur, assertion, ...). Il est ainsi par exemple possible
de se concentrer uniquement sur les erreurs graves, ...
La partie basse de cette fentre affiche les diffrents vnements survenus pouvant poser
problme dans lapplication.
Dans cet exemple, laudit dynamique dtecte plusieurs problmes:
Un libell trop long affect par programmation,
Une boucle de type SELON dont aucun CAS nest excut,
Une assertion dclenche au lieu dune exception,
Louverture dun fichier qui nexiste pas,
Laffectation dun fichier image qui nexiste pas un champ Image.
Pour chaque problme, un bouton "..." permet daccder au dtail de lvnement enregistr.
Si lvnement est reli une ligne de code particulire, le bouton permet douvrir
directement lditeur de code lemplacement correspondant afin de corriger le problme.
Fermez la fentre de laudit dynamique.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 391
Laudit dynamique dun projet peut galement tre effectu lorsquune applica-
tion est dploye sur les postes clients.
Il est possible:
soit de modifier lapplication, et dutiliser dbgActiveAudit pour lancer laudit.
soit dutiliser un fichier texte dans le rpertoire de lapplication. Cette solution
Notes

permet de ne pas modifier lexcutable. Il suffit de crer dans le mme rper-


toire que lexcutable un fichier portant le mme nom que lexcutable et dex-
tension ".WX".
Laudit gnre un fichier ".wdaudit", ce fichier doit tre charg dans lenvironne-
ment de dveloppement pour analyser le rsultat.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Audit dynamique").

392 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 5.3. Analyseur de performances

Ce que vous allez apprendre dans cette leon ...

Prsentation
Lancer lanalyseur de performances
Analyser le rsultat

Dure estime: 15 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 393
Prsentation
Lanalyseur de performances (appel galement Profiler) est un outil permettant de vrifier et
doptimiser le temps dexcution des traitements de votre application.

Son principe est simple:


Vous testez votre application.
Pendant ce test, lanalyseur de performances rpertorie toutes les actions effectues et sauve-
garde les temps dexcution de chacun des traitements excuts.
A la fin du test, lanalyseur de performances vous prsente:
les 10 manipulations qui ont pris le plus de temps,
la dure et le nombre dappels de tous les traitements excuts.
Le projet "WD Optimisation" contient une fentre spcifique permettant de visualiser des rsultats
intressants avec lanalyseur de performances.

Lancer lanalyseur de performances


Lanalyseur de performances peut tre lanc:
directement depuis lditeur de WINDEV:
Dans ce cas, le projet est alors automatiquement excut en mode test. Vous pouvez manipu-
ler votre application et lancer les traitements de votre choix.
Pour revenir sous lditeur WINDEV, il suffit de quitter votre application.
Lanalyseur de performances affiche alors le rsultat de lanalyse. Ce rsultat est enregistr
sous forme dun fichier WPF.
depuis un de vos traitements en WLangage, grce aux fonctions suivantes:
AnalyseurDbut Lance la "collecte dinformations" pour lanalyseur de performances.

AnalyseurFin Arrte la "collecte dinformations" pour lanalyseur de performances.

Dans ce cas, seul le code prsent entre les fonctions AnalyseurDbut et AnalyseurFin est ana-
lys. Le rsultat est enregistr sous forme dun fichier WPF.

394 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans notre exemple, nous allons utiliser la premire mthode. Pour lancer lanalyseur de
performances sur le projet "WD Optimisation":
1.Sous le volet "Projet", dans le groupe "Audit et performances", droulez "Analyser les perfor-
mances" et slectionnez "Analyser les performances".

Lanalyseur de performances peut galement tre lanc depuis le Tableau de


bord du projet, via le Widget "Performances". Il suffit de:
activer le Widget si ncessaire (cliquez sur le lien "Cliquez ici pour ractiver").
drouler le bouton flch et slectionner "Analyser les performances".
Notes

2.Le test du projet se lance.


3.Cliquez sur le bouton "Fentre de test de lanalyseur de performances".
4.Cliquez sur le bouton "Traitement analyser".
5.Validez la fentre dinformation et arrtez le test du projet. La fentre du compte-rendu de
lanalyseur de performances apparat.

Analyse du rsultat

Examinons la fentre du compte-rendu de lanalyseur de performances. Les rsultats sont


affichs dans plusieurs onglets:
longlet "Synthse" prsente les dix traitements qui ont pris le plus de temps.
longlet "Cartographie" prsente une vision graphique des traitements les plus importants.
longlet "Dtail" prsente tous les traitements lancs lors du test de lapplication (classs du
plus long au plus rapide).
longlet "Appels" permet de visualiser le dtail des oprations ralises dans un traitement.
Dtaillons ces diffrents onglets dans le cas de notre exemple.
Longlet "Synthse" prsente les dix traitements les plus consommateurs de temps. Dans
notre exemple, nous pouvons voir que la procdure locale "MetAJourStockProduit" prend
plus de 3 secondes sexcuter.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 395
Longlet "Cartographie" permet didentifier de manire visuelle ce qui a pris le plus de
temps. Dans notre cas, cest un appel la fonction Ping:

396 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Longlet "Dtail" prsente tous les traitements appels du plus long au plus rapide.

Pour chaque traitement, les informations suivantes sont affiches:


Fonction: Fonction, traitement ou procdure excute.
Temps total: Temps dexcution de la fonction.
Temps interne: Temps dexcution d au moteur.
Nb appels: Nombre dappels effectus la fonction (procdure ou traitement).
Temps 1 appel: Temps dexcution dun appel la fonction (procdure ou traitement).
% Code: Pourcentage du temps pass dans le traitement de la fonction ou de la procdure
(code du dveloppeur pouvant tre optimis).
Parent: Elment qui contient le traitement.
Dans notre cas, longlet "Dtail" permet de retrouver lappel la fonction "Ping" dans les
lments prenant le plus de temps.
Slectionnez cette ligne. Nous allons voir dans le code si un problme peut expliquer ce
ralentissement.

En cliquant sur le bouton "Appels", le dtail des appels de la procdure MetAjourStockPro-


duit apparat. En slectionnant la ligne "Ping" et en cliquant sur le bouton "Code", la ligne de
code correspondante est affiche sous lditeur de code.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 397
Fermez lanalyseur de performances.
La ligne de code excute est la suivante:
// Vrifie laccessibilit du serveur fournisseur
Ping(adr-fournisseur)

Le ralentissement vient du fait que ladresse spcifie pour la fonction Ping est inaccessible.
Testons rapidement le fonctionnement de lapplication en optimisant ce code:
1.Remplacez la ligne de code contenant la fonction Ping par la ligne de code suivante:
// Vrifie laccessibilit du serveur fournisseur
Ping(www.google.fr)

2.Enregistrez le code (CTRL + S).

398 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons maintenant relancer lanalyseur de performances:
1.Sous le volet "Projet", dans le groupe "Audit et performances", droulez "Analyser les perfor-
mances" et slectionnez "Analyser les performances".
2.Le test du projet se lance.
3.Cliquez sur le bouton "Fentre de test de lanalyseur de performances".
4.Cliquez sur le bouton "Traitement analyser".
5.Validez la fentre dinformation et arrtez le test du projet. La fentre du compte-rendu de
lanalyseur de performances apparat.
6.Sous longlet "Cartographie", la fonction Ping napparat plus avec la mme importance.

Fermez la fentre de rapport de lanalyseur de performances.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 399
Leon 5.4. Dbogage dun projet

Ce que vous allez apprendre dans cette leon ...

Prsentation
Utiliser le dbogueur

Dure estime: 15 mn

400 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Arrtons-nous un instant sur le dbogueur livr en standard avec WINDEV.
Quest-ce que le dbogueur ?
Le dbogueur est un outil puissant permettant de suivre pas pas le droulement dun code ou
dune application. Mettre au point un traitement ou mme une application devient un jeu den-
fant.
Nous allons utiliser le dbogueur sur le traitement long prsent dans la fentre FEN_Analyseur-
Performances.

Utiliser le dbogueur

Pour dboguer la fentre FEN_AnalyseurPerformances:


1.Ouvrez la fentre "FEN_AnalyseurPerformances" sous lditeur de fentres (double-cliquez
sur son nom dans lexplorateur de projet).
2.Lancez le test de la fentre "FEN_AnalyseurPerformances" ( parmi les boutons daccs
rapide).
3.Lancez le dbogueur en utilisant une des mthodes suivantes:
Utilisez la combinaison de touches [CTRL] + [Pause]: le dbogueur sera automatiquement
lanc lors de la prochaine action utilisateur dans la fentre teste.
Retournez sous lditeur de WINDEV et placez un point darrt dans le code du bouton "Trai-
tement analyser" (cliquez devant la premire ligne de code du traitement de clic ou utilisez
le raccourci [CTRL] + B, un point rouge apparat). Lorsque la ligne de code prcde du point
darrt sera excute, le dbogueur se lancera.

De nombreuses mthodes permettent de lancer le dbogueur. Pour plus de d-


Note

tails, consultez laide en ligne (mot-cl: "Dbogueur, Lancer un test").

4.Appuyez sur le bouton "Traitement analyser". Le dbogueur se lance. La ligne en cours est
prcde dune petite flche.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 401
Dans la partie basse de lcran, apparat le volet "Dbogueur". Ce volet affiche deux zones dis-
tinctes:
la pile des appels: Cette zone permet de connatre la hirarchie des traitements affichs dans
le dbogueur. Dans notre exemple, pour le moment, nous sommes en train de dboguer le trai-
tement de clic sur le bouton BTN_TraitementLong.
la liste des expressions valuer. Par dfaut, dans cette zone les principales variables utilises
dans le code sont affiches. Il est possible dajouter des variables pour suivre leur volution
(nous verrons cette fonctionnalit plus tard).
Nous allons effectuer quelques manipulations sous le dbogueur afin de dcouvrir ses possibili-
ts.

402 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Tout dabord nous allons excuter pas pas les diffrentes instructions et voir le contenu des
variables:
1.Appuyez sur la touche [F8] (ou sur le bouton "Pas pas" prsent dans le ruban). La ligne sui-
vant la ligne en cours est automatiquement excute. Si ncessaire, les valeurs des variables
sont modifies dans le volet "Dbogueur" (affich par dfaut en bas de lcran).
2.Lorsque le curseur en forme de flche arrive sur la ligne "JAUGE_Progression..BorneMax =
...", survolez avec la souris "JAUGE_Progression". Une bulle daide saffiche avec la valeur de
lexpression:

3.La valeur de "JAUGE_Progression..BorneMax" est affiche dans une bulle daide. Cette va-
leur correspond 100 car la ligne de code na pas t excute.
4.Utilisez la touche [F8] pour excuter la ligne.
5.Survolez nouveau "JAUGE_Progression..BorneMax". La valeur de "JAUGE_Progression..
BorneMax" affiche dans la bulle daide correspond dsormais au rsultat de la fonction
HNbEnr(Produit).

Continuons nos manipulations sous le dbogueur. Nous allons maintenant excuter pas
pas la procdure MetAJourStockProduits sous le dbogueur.
1.Pour excuter cette procdure pas pas, utilisez la touche [F7] (ou cliquez sur le bouton "Pas
pas dtaill" dans le ruban).
2.Le code de la procdure saffiche sous le dbogueur.
Nous allons maintenant ajouter une expression pour surveiller lvolution de sa valeur dans
le volet "Dbogueur". Cette expression peut tre de tout type: variable, fonction, opration
sur variables, ... Le rsultat de lexpression est calcul et affich.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 403
Cette expression permet deffectuer un dbogage personnalis. Par exemple, il est possible
de connatre le contenu dune variable au fur et mesure de son utilisation dans lapplica-
tion.
1.Utilisez la touche [F7] pour excuter les diffrentes lignes de la procdure MetAJourStock-
Produits jusqu la ligne:

JAUGE_Progression++
2.Survolez "JAUGE_Progression". La valeur affiche dans la bulle est 0.
3.Slectionnez "JAUGE_Progession" dans lditeur de code sous le dbogueur et affichez le
menu contextuel (clic droit). Slectionnez loption "Ajouter lexpression dans le dbogueur".
4.Lexpression est automatiquement ajoute dans le volet du dbogueur en bas de lcran.

Le dbogueur permet galement dexcuter un ensemble de lignes de code:


1.Avancez avec la touche [F8] jusqu la ligne:

HModifie(Produit)

Lutilisation de la touche [F8] permet dexcuter le code de la procdure InterrogeBaseFour-


nisseur sans le drouler pas pas sous le dbogueur.
2.Cliquez avec la souris sur la ligne suivante(attention: cliquez dans la ligne et non devant
la ligne):

SI HExcuteRequte(REQ_QuantitCommande) ALORS
3.Utilisez la touche [F6] (ou le bouton "Excuter jusquau curseur" prsent dans le ruban).
4.La flche indiquant la ligne en cours dexcution se dplace jusqu la ligne de code o le
curseur est positionn. Les lignes de code prsentes jusquau curseur sont automatiquement
excutes.
Nous allons maintenant mettre un point darrt et excuter le code jusquau prochain
passage sur le point darrt:
1.Cliquez avec la souris dans la zone hachure, devant la fonction HModifie. Un point darrt
(puce rouge) apparat.

404 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2.Utilisez la touche [F5] (ou cliquez sur le bouton "Continuer" prsent dans le ruban). Le code
est excut jusquau point darrt. La flche permettant didentifier la ligne en cours se d-
place jusquau point darrt.
3.Enlevez le point darrt en cliquant directement sur le point darrt.
Pour finir ce test, nous allons utiliser une expression "Autostop". Une expression "Autostop"
permet de lancer le dbogueur ds quune condition est vrifie ou ds que la valeur dune
variable est modifie. Dans notre exemple, nous allons lancer le dbogueur ds que la valeur
de la jauge est 50% :
1.Dans le volet du "Dbogueur", slectionnez lexpression "JAUGE_Progression" que nous
avons ajoute prcdemment.
2.Cliquez sur le rond vert.
3.Appuyez sur la touche [F5] pour continuer le test.
4.Un message saffiche indiquant que la valeur de lexpression "JAUGE_Progression" a
chang.

5.Validez.
6.Dans le volet du "Dbogueur", slectionnez lexpression "JAUGE_Progression". Cliquez une
seconde fois sur lexpression: la colonne "Expression" passe en dition. Dans la zone "Expres-
sion", ajoutez "=50". Vous obtenez "JAUGE_Progression = 50".

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 5 : Optimiser et dboguer un projet 405
7.Appuyez sur la touche [F5]. Lexcution du programme continue. Le dbogueur est nou-
veau lanc lorsque la jauge a pour valeur 50.
Voil, nous avons termin notre tour dhorizon du dbogueur. Pour arrter le test sous le
dbogueur, cliquez sur "Terminer le test" prsent dans le ruban.

406 Partie 5 : Optimiser et dboguer un projet (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 6

Programmation
avance
408 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 6.1. Prsentation

Ce que vous allez apprendre dans cette leon ...

Prsentation
Comment ouvrir un exemple didactique
Comment ouvrir un exemple unitaire

Dure estime: 5 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 409
Prsentation
Cette partie prsente plusieurs fonctionnalits avances. Sa lecture nest pas indispensable la
connaissance de WINDEV, mais elle vous permet de dcouvrir quelques-unes des possibilits de
WINDEV.
Les diffrentes leons de cette partie sappuient sur des exemples livrs en standard avec WIN-
DEV.

WINDEV propose diffrents exemples:


exemples complets: ces exemples correspondent une application complte utilisant une ou
plusieurs fonctionnalits.
exemples didactiques: ces exemples correspondent une petite application permettant de
dcouvrir une fonctionnalit.
exemples unitaires: ces exemples correspondent une fentre permettant de tester rapide-
ment lutilisation dune fonction.

Exemple pratique
Pour simplifier la prsentation des diffrentes fonctionnalits, vous allez manipuler des exemples
unitaires ou des exemples didactiques, livrs en standard avec WINDEV.
Pour ouvrir un exemple complet, didactique ou unitaire depuis la fentre de bienvenue:
1.Affichez la fentre de bienvenue (CTRL + >).
2.Dans la fentre de bienvenue, cliquez sur "Ouvrir un exemple". La liste des exemples com-
plets, didactiques et unitaires fournis avec WINDEV apparat. Ces exemples sont regroups
par type dexemple (complet, didactiques, ...).
3.Dans la zone de recherche, vous pouvez saisir un mot-cl (par exemple saisissez "Erreur").
Seuls les exemples contenant ce mot sont alors lists.

410 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4.Pour ouvrir un exemple, il suffit de double-cliquer sur le nom de lexemple.
5.Pour les exemples complets et didactiques, le projet en cours est automatiquement ferm
puis le projet exemple est ouvert.
6.Pour les exemples unitaires, la fentre associe est ouverte dans le projet en cours.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 411
Leon 6.2. Gestion automatique
des erreurs

Ce que vous allez apprendre dans cette leon ...

Quest-ce que la gestion automatique des erreurs?


Utilisation de la gestion automatique des erreurs.

Dure estime: 10 mn

412 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WINDEV peut grer automatiquement les erreurs. Cette fonctionnalit permet la fois de rduire
sensiblement le code dun projet tout en uniformisant et en centralisant la gestion des erreurs.
Lutilisation de cette fonctionnalit rend galement le code plus lisible.

Fonctionnement
Lorsquune fonction du WLangage rencontre une erreur, deux oprations sont ralises:
une valeur de retour derreur est renvoye par la fonction (par exemple, la fonction fOuvre
renvoie la valeur "-1" si le fichier spcifi na pu tre ouvert).
lerreur est dtecte par le WLangage (la variable ErreurDtecte correspond Vrai) et il est
possible de rcuprer des informations sur cette erreur grce la fonction ErreurInfo.
Cest cette seconde opration qui peut tre gre en automatique grce la gestion des erreurs
de WINDEV.

Mise en place
Le paramtrage de la gestion automatique des erreurs peut seffectuer:
soit directement dans lditeur de code: il suffit de cliquer sur le lien "Si erreur: Par pro-
gramme" dans lditeur de code:

soit par programmation, avec la fonction ErreurChangeParamtre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 413
Types derreurs concernes
Le WLangage peut rencontrer deux types derreurs:
les erreurs "non fatales" (appeles galement erreurs dexcution): ces erreurs sont gn-
ralement gres dans le code et ne provoquent pas larrt de lapplication. Par exemple,
ouverture dun fichier inaccessible ou dune archive inexistante.
les erreurs "fatales" (appeles galement erreurs de programmation): ces erreurs sont g-
nralement lies un dfaut de conception (accs un fichier non dclar, utilisation de
champs inexistants...). Une erreur "fatale" peut galement survenir suite une erreur "non
fatale" mal gre. Dans ce cas, lapplication va sarrter.
Le mcanisme de gestion des erreurs permet de grer de faon bien distincte ces deux types
derreurs afin de pouvoir spcifier des comportements adapts aux erreurs rencontres.

Gestion automatique des erreurs : un exemple didactique

Pour comprendre les diffrents cas derreurs et leur gestion, nous vous proposons de
manipuler un exemple didactique livr en standard avec WINDEV.
1.Fermez si ncessaire le projet en cours. La fentre de bienvenue apparat.
2.Dans la fentre de bienvenue, cliquez sur "Ouvrir un exemple". La liste des exemples com-
plets, didactiques et unitaires fournis avec WINDEV apparat.
3.Dans la zone de recherche, saisissez "Erreur". Seuls les exemples contenant ce mot sont
alors lists.

4.Double-cliquez sur lexemple "WD Gestion Auto Erreurs". Le projet se charge.

414 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ce projet prsente la gestion:
dune erreur non fatale (ouverture dune archive inexistante).
dune erreur fatale (division dun entier par 0).
dune erreur sur plusieurs niveaux.
Testez le projet en cliquant sur (parmi les boutons daccs rapide).
1.Cliquez sur le choix "Gestion dune erreur non fatale".
2.La fentre suivante saffiche.

3.Cliquez sur le bouton "Tester cette gestion derreur".


4.Lors de lexcution de la ligne de code gnrant lerreur, un message derreur saffiche et
propose lutilisateur de ressayer lopration, dannuler lopration ou darrter lapplication.
Loption "Dboguer" est utiliser :
en mode test, pour dboguer directement lapplication.
en mode excutable, pour raliser le dboguage dun excutable directement depuis WIN-
DEV.
5.Cliquez sur loption "Annuler lopration" et fermez la fentre.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 415
Cliquez sur le choix "Gestion dune erreur fatale".
1.La fentre suivante saffiche. Cette fentre permet de tester lerreur dans le cas de la division
dun entier par 0.

2.Cliquez sur le bouton "Tester cette gestion derreur".


3.Lors de lexcution de la ligne de code gnrant lerreur, une procdure est automatique-
ment appele. Cette procdure permet dafficher le message derreur et darrter le traite-
ment en cours.
4.Cliquez sur "OK" et fermez la fentre.

416 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cliquez sur le choix "Gestion dune erreur sur plusieurs niveaux".
1.La fentre suivante saffiche. Cette fentre permet de tester une erreur sur plusieurs niveaux
(traitement appelant une procdure qui ouvre une archive inexistante).

2.Cliquez sur le bouton "Tester cette gestion derreur".


3.Lors de lexcution de la ligne de code gnrant lerreur:
- la procdure retourne "Faux" au traitement appelant.
- le traitement appelant affiche un message derreur et arrte le traitement.
4.Cliquez sur le bouton "Annuler lopration".

Arrtez le test de lapplication.

WINDEV propose galement une gestion automatique des erreurs HFSQL. Pour
Exemple

plus de dtails, consultez lexemple "WD Detection erreurs HFSQL" (exemple di-
dactique), livr en standard avec WINDEV. Cet exemple est accessible depuis la
fentre de bienvenue de WINDEV.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 417
Leon 6.3. Manipuler des fichiers
externes

Ce que vous allez apprendre dans cette leon...

Manipuler des fichiers texte (CSV , ...)


Manipuler des rpertoires
Manipuler des fichiers XML
Manipuler des fichiers XLS

Dure estime: 20 mn

418 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WINDEV permet de manipuler simplement les formats les plus courants de donnes:
fichiers texte (fichiers INI, CSV, ...),
fichiers XML,
fichiers XLS, ...
De nombreuses familles de fonctions WLangage permettent aussi bien de lire ces fichiers que de
crer ces fichiers. Vous pouvez ainsi lire facilement dans vos applications WINDEV des donnes
gnres par dautres logiciels ou encore crer des fichiers ncessitant un formatage particulier.
De plus, le WLangage propose galement une famille de fonctions permettant de manipuler les
rpertoires o sont prsents les fichiers.
Dans ce chapitre, nous nous consacrerons plus particulirement:
aux fichiers Texte (fichiers texte, fichiers INI et fichiers CSV),
aux fichiers XML,
aux fichiers XLS,
la gestion des rpertoires.

Manipulation des fichiers texte ou CSV

Prsentation
Les fichiers externes sont souvent appels fichiers texte ou encore fichiers accs direct. Ce
type de fichier contient gnralement du texte, mais il peut galement contenir des informations
binaires telles que des images, des sons, ...
Dans cette leon comme dans toute la documentation de WINDEV, nous parlerons de fichiers
externes.
WINDEV permet de manipuler en programmation les fichiers externes. Les fonctions du WLan-
gage permettent de crer, lire... des fichiers externes. Toutes les fonctions peuvent tre trs faci-
lement identifies: elles commencent toutes par la lettre "f".
Dans un fichier externe, il ny a pas ncessairement de notion "denregistrement". Pour pouvoir
manipuler un fichier externe, il faut en connatre la structure, cest--dire connatre lagencement
des donnes qui se trouvent lintrieur du fichier.
Les fichiers CSV sont simplement des fichiers texte utilisant une structure spcifique. Ils sont
donc manipulables comme les fichiers textes.
Les fichiers .INI sont galement des fichiers texte utilisant une structure spcifique. Pour les mani-
puler, WINDEV dispose de deux fonctions spcifiques: INILit et INIEcrit.

Exemple pratique

Ouvrez lexemple unitaire "Manipulation de fichiers texte".


Enregistrez et testez la fentre "FEN_Fichier_Texte". Cette fentre regroupe de nombreuses
manipulations possibles sur les fichiers externes avec WINDEV.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 419
Les diffrents onglets de la fentre proposent:
La cration dun fichier texte.
La lecture et criture dans un fichier texte.
Des manipulations de fichiers existants (copie, suppression, lecture dinformations, ...).
La copie dun fichier texte.
Pour plus de dtails sur les fonctions de gestion des fichiers externes, consultez laide en ligne
(mot-cl: "Fichier externe").

Manipulation des rpertoires


Pour manipuler les rpertoires et leurs fichiers, le WLangage propose de nombreuses fonctions.

Exemple pratique

Ouvrez si ncessaire lexemple unitaire "Manipulation des rpertoires" et testez la fentre


correspondante.
Cette fentre regroupe les manipulations possibles sur les disques et les rpertoires:
crer un rpertoire,
connatre le rpertoire en cours,
tester lexistence dun rpertoire,
lister des rpertoires,
copier et supprimer un rpertoire, ...
Pour plus de dtails sur les fonctions de gestion des rpertoires, consultez laide en ligne (mot-
cl: "Fichier externe").

420 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Manipulation des fichiers XML

Prsentation
XML (Extensible Markup Language, ou Langage Extensible de Balisage) est un langage de bali-
sage, cest--dire un langage qui prsente de linformation encadre par des balises. Mais contrai-
rement HTML, qui prsente un jeu limit de balises, XML est un mtalangage, qui permet din-
venter de nouvelles balises pour isoler toutes les informations lmentaires que peut contenir
une page Web.
XML permet de structurer un document contenant des donnes. Un fichier de donnes HFSQL
contenant plusieurs rubriques et enregistrements peut, par exemple, tre export dans un fichier
XML (fonctions XML*).

WINDEV gre en standard:


les fichiers au format XML grce un accs natif fourni avec WINDEV. Pour plus de dtails,
consultez laide en ligne.
les exportations vers le XML (fonctions TableVersXML, TexteVersXML, HExporteXML)
limport de donnes XML (fonction HImporteXML)
la manipulation dun document XML grce au type avanc XMLDocument et aux fonctions
WLangage commenant par XML.

Il est galement possible de manipuler directement le fichier XML dans lditeur de code. Il suffit
de:
1."Dropper" le fichier XML depuis lexplorateur de fichier vers lexplorateur de projet, dossier
"Descriptions XML et XSD".
2."Dropper" le fichier XML de lexplorateur de projet vers lditeur de code. La variable de type
xmlDocument est alors automatiquement cre de la manire suivante:
<Nom de la variable> est un xmlDocument , description = <Nom du
document>
3.Vous pouvez maintenant accder directement aux noeuds de la variable par leurs noms.
Ces noms sont proposs automatiquement par le mcanisme de compltion automatique de
lditeur de code.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 421
Exemple pratique

Ouvrez lexemple unitaire "Lecture et criture au format XML".


Enregistrez et testez la fentre "FEN_ManipulationXML". Cette fentre permet de:
crer un fichier XML. Ce fichier est cr grce aux fonctions XML.

lire un fichier XML.


Consultez le code associ chaque bouton.
Notes

Nous ne dtaillerons pas ici toutes les fonctionnalits proposes par les fonc-
tions XML. Pour plus de dtails, consultez laide en ligne.

Manipulation des fichiers XLS


Pour manipuler les fichiers Excel, WINDEV met votre disposition:
les fonctions xlsXXX. Ces fonctions permettent de lire les donnes prsentes sur les diffrentes
feuilles dun fichier Excel.
les variables avances de type xlsDocument, xlsLigne, xlsColonne, xlsCellule.

422 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemples pratiques
Un test rapide des possibilits de ces fonctions?
Pour tester lutilisation des fonctions xlsXXX, ouvrez lexemple unitaire "Les fonctions Excel".
Enregistrez et testez la fentre "FEN_FonctionXLS". Cette fentre permet:
dimporter des donnes provenant dune feuille Excel.
dexporter les donnes dun champ Table vers Excel.
Retournez sous lditeur pour consulter le code des diffrents boutons.
Pour tester lutilisation des variables avances, ouvrez lexemple unitaire "Type xls".
Testez la fentre "FEN_Type_xls".

Retournez sous lditeur pour consulter le code des diffrents boutons.


Notes

Nous ne dtaillerons pas ici toutes les fonctionnalits proposes par les fonc-
tions XLS et les types avancs. Pour plus de dtails, consultez laide en ligne.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 423
Leon 6.4. Compilation dynamique

Ce que vous allez apprendre dans cette leon...

Prsentation
Tracer une courbe en compilation dynamique

Dure estime: 20 mn

424 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
La compilation dynamique permet de compiler un code nimporte quel moment de lapplica-
tion. Un exemple dutilisation courant? Votre application contient une formule paramtrable. Pour
changer les paramtres, il nest pas ncessaire de re-livrer lexcutable: la modification dun fi-
chier texte suffit.

Exemple
Nous avons choisi de vous prsenter la compilation dynamique grce lexemple unitaire "Compi-
lation dynamique".
La fentre "Compilation dynamique" montre comment compiler dynamiquement du code WLan-
gage (stock sous forme de chane), excuter la procdure gnre dynamiquement et traiter les
ventuelles erreurs dexcution.
Pour tester cette fentre :
1.Ouvrez lexemple unitaire "Compilation dynamique".
2.Lancez le test de la fentre "FEN_COMPILATION_DYNAMIQUE".

3.Cliquez sur les diffrents boutons "Excuter" pour voir les diffrents cas proposs.
4.Arrtez le test.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 425
Retournons sous lditeur de code pour tudier le code du premier bouton "Excuter".
1.Affichez le code du bouton "Excuter" (clic droit sur le bouton, option "Code"). Ce code appelle
la procdure CompileCodeDynamique.
2.Positionnez le curseur de la souris sur le nom de la procdure et utilisez la touche [F2]. Le
code de la procdure apparat automatiquement sous lditeur de code.
Le code de cette procdure peut tre dcompos en plusieurs parties:
1.Initialisation des variables.
2.Compilation du code.

sRsultatCompilation = Compile(PROCEDURE_DYNAMIQUE, ...


SAI_CODE_COMPIL)

Ce code contient plusieurs points remarquer:


La compilation de la fonction est effectue avec la fonction WLangage Compile. Ds que
cette fonction est utilise (et si aucune erreur nest renvoye), la fonction compile dynami-
quement devient utilisable.
Cette fonction admet deux paramtres: le nom de la procdure compile (ici "PROCEDURE_
DYNAMIQUE") et le code compiler. Ici, le code compiler est contenu dans le champ de
saisie SAI_CODE_COMPIL.
Le rsultat de la compilation est affect une chane sRsultatCompilation.
3.Vrification du rsultat de la compilation.

// Vrifie le rsultat de la compilation


SELON sRsultatCompilation
// Aucune erreur
CAS
bRsultatCompilation = Vrai
LIB_ERREUR_CODE_COMPILE =

// Erreur fatale de compilation
CAS ERR
bRsultatCompilation = Faux
LIB_ERREUR_CODE_COMPILE = ErreurInfo()
// Code incorrect
AUTRE CAS
bRsultatCompilation = Faux
LIB_ERREUR_CODE_COMPILE = sRsultatCompilation
FIN

4.Utilisez la combinaison de touches [CTRL] + [F2]. Le code de clic du bouton "Excuter" rap-
parat sous lditeur de code. Dans la suite de ce code, vous pouvez voir que la fonction com-
pile dynamiquement est excute grce la fonction Excute.

426 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 6.5. Evnement Windows

Ce que vous allez apprendre dans cette leon...

Programmation des vnements Windows.

Dure estime: 10 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 427
Introduction
Toute action effectue par Windows correspond un vnement Windows. Diffrents types dv-
nements peuvent tre rencontrs, par exemple:
Le survol dune fentre par la souris,
Larrt du systme,
Laffichage dune bote de dialogue,
Une erreur logicielle,
Etc.
Lorsque ces vnements se produisent, il est possible de les intercepter afin de prparer ou
dexcuter un traitement spcifique.
Par dfaut, WINDEV propose la gestion automatique des vnements les plus utiliss. Par
exemple, les vnements suivants sont proposs pour un champ de saisie:
Initialisation du champ,
Entre dans le champ,
Modification du champ,
Sortie du champ.
Pour grer des vnements supplmentaires, il est possible:
soit dutiliser les traitements optionnels proposs par WINDEV.
soit dutiliser les vnements Windows.

Exemple pratique
Nous avons choisi de vous prsenter la gestion des vnements grce lexemple unitaire "La
fonction Evnement".
Ouvrez lexemple unitaire "La fonction Evnement".
Traitements optionnels proposs par WINDEV
Pour chaque lment (fentre, champ, ...), WINDEV propose de nombreux traitements optionnels.
Pour ajouter un traitement optionnel:
1.Affichez les traitements lis au champ Liste prsent dans la fentre de lexemple unitaire:
Slectionnez le champ Liste.
Appuyez sur la touche [F2].
Lditeur de code est affich.

428 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2.Une barre doutils est disponible en bas de la fentre de code:

Cette barre doutils prsente les principaux traitements optionnels disponibles. Pour identifier
les traitements, survolez les diffrentes icnes.
3.Pour ajouter un traitement, cliquez sur licne correspondante. Le traitement correspondant
est automatiquement affich sous lditeur de code.
4.Pour afficher la liste complte des traitements optionnels disponibles, il suffit de cliquer sur
"...".

5.Pour ajouter un traitement, il suffit de cocher la case correspondante et de valider cette fe-
ntre. Par exemple, ajoutez lvnement "Touche Enfonce".

Evnements de Windows
Pour la gestion dvnements plus "spcifiques", il existe la fonction WLangage Evnement. La
fonction Evnement permet dassocier une procdure WLangage un vnement Windows.
Notes

Pour utiliser la fonction Evnement, il faut matriser la programmation Windows


et notamment les vnements Windows.

Pour connatre la liste (non exhaustive) des vnements Windows, consultez laide en ligne de
WINDEV (mot-cl: "Valeur des constantes de lAPI Windows").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 429
Exemple: Dtecter le clic sur une liste

Lancez le test de la fentre "FEN_Fonction_Evnement". Cette fentre dtecte si la liste est


manipule avec la souris ou avec le clavier.
1.Cliquez sur le champ Liste avec la souris.
2.Utilisez la souris pour dplacer le bandeau de slection.
3.Un message saffiche indiquant si la souris ou le clavier a t utilis.

4.Arrtez le test et revenez sous lditeur.


Regardons le code utilis:
1.Cliquez dans la fentre.
2.Affichez les traitements de la fentre (appuyez sur la touche [F2]).
3.Examinons le code de dclaration des globales de la fentre FEN_Fonction_Evnement.
Tout dabord la ligne de code:
EXTERNE WINCONST.WL
Cette ligne de code permet dintgrer le contenu du fichier WINCONST.WL dans le code de
lapplication grce au mot-cl EXTERNE. Ce fichier contient la dclaration et les valeurs des
constantes Windows. A la compilation, tout le code contenu dans le fichier WINCONST.WL
sera automatiquement intgr au code de lapplication.
Ensuite, les diffrents vnements grs sont dclars:
// Evnements sur le champ LISTE_Mois
// Pression dune touche du clavier
Evnement(SourisOuClavier, LISTE_Mois..NomComplet, ...
WM_KEYDOWN)
// Clic gauche de souris
Evnement(SourisOuClavier, LISTE_Mois..NomComplet, ...
WM_LBUTTONDOWN)

430 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La procdure SourisOuClavier est appele ds quune utilisation du clavier sur la liste est
effectue (vnement Windows correspondant: WM_KEYDOWN) ou ds que le clic gauche
de la souris est utilis (vnement Windows correspondant: WM_LBUTTONDOWN).
4.Affichez le code de la procdure:
Placez le curseur de la souris sur "SourisOuClavier".
Utilisez la touche [F2].
5.Le code de la procdure est trs simple:
Si le clavier est utilis, le libell affich sous le champ Liste contient "Slection avec le cla-
vier".
Si la souris est utilise, le libell affich sous le champ Liste contient "Slection avec la sou-
ris".

PROCEDURE SourisOuClavier()
// La variable _EVE.wMessage contient le numro du message
SELON _EVE.wMessage
// Cest le clavier
CAS WM_KEYDOWN
// Message indiquant lutilisation du clavier
LIB_TypeSlection = Slection avec le clavier
LIB_TypeSlection..Couleur = RougeClair

// Cest la souris
CAS WM_LBUTTONDOWN
// Message indiquant lutilisation de la souris
LIB_TypeSlection = Slection avec la souris
LIB_TypeSlection..Couleur = BleuClair
FIN

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 431
Leon 6.6. Les threads

Ce que vous allez apprendre dans cette leon ...

Quest-ce que les threads ?

Dure estime: 10 mn

432 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dfinition
Les threads permettent dexcuter du code (ou des traitements) en parallle de lapplication prin-
cipale. Il est ainsi possible dexcuter plusieurs traitements diffrents qui peuvent tre trs longs
en tche de fond, sans bloquer lapplication principale (appele galement "Thread principal").
Les threads remplacent certains types de timer.
Gnralement, un thread secondaire est utilis pour dtecter un vnement, par exemple, une
action de lutilisateur, la rception dun email, la rception dun appel tlphonique,...

Quelques exemples dutilisation des threads:


Rcupration demails en tche de fond, pendant la saisie dun nouvel email.
Application de communication: gestion des appels tlphoniques, communication par soc-
ket,...
Avec WINDEV, vous avez la possibilit de:
grer simplement des threads (fonctions Thread*).
utiliser des "signaux" afin de synchroniser plusieurs threads (fonctions Signal*).
utiliser les threads avec des "smaphores" afin de grer laccs des ressources partages
par diffrents threads (fonctions Smaphore*).

Exemple

WINDEV est livr en standard avec plusieurs exemples unitaires permettant de


Exemple

comprendre lintrt et lutilisation des threads :


Cration dun Pool de Threads,
Les threads.

Pour plus de dtails sur la gestion des threads avec WINDEV, consultez laide en ligne (mot-cl:
"Thread").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 433
Leon 6.7. Les sockets

Ce que vous allez apprendre dans cette leon...

Prsentation
Application Serveur
Application Cliente

Dure estime: 20 mn

434 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WINDEV met votre disposition des fonctions qui permettent de raliser une gestion avance des
sockets.
Un socket est une ressource de communication utilise par les applications pour communiquer
dune machine une autre sans se soucier du type de rseau.
Ce mode de communication est utilis pour faire communiquer deux applications, situes sur des
postes diffrents (relis par Internet ou sur un mme rseau local) ou sur un mme poste.
Une application WINDEV peut grer les sockets selon diffrents modes:
Application WINDEV Cliente: lapplication se connecte un serveur quelconque et change
des donnes par un socket.
Application WINDEV, WEBDEV ou WINDEV Mobile "Serveur": lapplication WINDEV (ou WEB-
DEV ou WINDEV Mobile) est un serveur, changeant des informations par sockets avec plu-
sieurs postes client quelconques. Pour grer plusieurs connexions simultanes, il est nces-
saire dutiliser des threads.
Exemple

WINDEV est livr en standard avec un exemple didactique permettant de com-


prendre lutilisation des sockets: "WD Utilisation des sockets". Cet exemple est
accessible depuis la fentre de bienvenue de WINDEV (CTRL >).

Application Serveur: cas dun serveur simplifi


WINDEV offre la possibilit de crer un serveur de sockets simplifi. Ce serveur permet de com-
muniquer avec un seul poste client simultanment. Ce type dapplication est trs utile lorsque
deux applications distantes ont besoin de communiquer.
Les tapes pour crer un serveur simplifi sont les suivantes:
1.Cration du socket.
2.Echange de donnes.
3.Fermeture du socket.

Cration du socket
Pour crer le socket, le poste serveur utilise la fonction SocketCre. Un socket est associ un
port spcifique. Pour simplifier la manipulation du socket par programmation sur le poste serveur,
prcisez le nom du socket.
Le poste client va venir se connecter sur ce socket pour changer des donnes. La connexion
entre les deux postes sera effectivement ralise au premier change de donnes entre les deux
postes (cest--dire la premire lecture dinformations par le poste serveur).
La connexion est tablie au premier succs de la fonction SocketLit sur le serveur.

Echange de donnes
Lorsque deux postes utilisent le mme socket, un flux de communication stablit entre ces deux
postes. Il est alors possible pour ces deux postes de lire et dcrire des chanes de caractres sur
le socket.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 435
Remarque: Pour ne pas bloquer les applications, la gestion de la rception des messages est
souvent gre par un thread spcifique.
Pour lire et crire sur le socket, lapplication serveur WINDEV doit utiliser les fonctions SocketLit
et SocketEcrit.
Attention: Pour raliser une lecture, une criture doit avoir t ralise. Par exemple:
1.Le poste client crit sur le socket: il envoie une requte au poste serveur.
2.Le poste serveur effectue une lecture sur le socket dans un thread. Ds quun message est
reu, le message est trait par le poste serveur.
3.Si une rponse au message est ncessaire, le poste serveur identifie le poste client (fonc-
tion SocketClientInfo) et lui envoie une rponse.

Fermeture du socket
Pour terminer la communication, le serveur peut fermer le socket avec la fonction SocketFerme.
Remarque: le socket peut aussi tre ferm par le poste client.

Application Cliente
Une application cliente dun serveur de sockets se connecte un serveur quelconque pour chan-
ger des informations par lintermdiaire dun socket.
Exemple: Une application WINDEV cliente peut se connecter un serveur de news standard sur
Internet.
Les tapes pour crer une application cliente sont les suivantes:
1.Connexion au serveur.
2.change de donnes.
3.Fin de communication.

Connexion au serveur
Pour se connecter un socket du serveur, il suffit dutiliser la fonction SocketConnecte. Cette
fonction permet deffectuer une demande de connexion au serveur.
Le socket est identifi par son port et par son adresse.

Echange de donnes
Lorsque deux postes utilisent le mme socket, un flux de communication stablit entre ces deux
postes. Il est alors possible pour ces deux postes de lire et dcrire des chanes de caractres sur
le socket.
Remarque: Pour ne pas bloquer les applications, la gestion de la rception des messages est
souvent gre par un thread spcifique.
Pour lire et crire sur le socket, lapplication cliente WINDEV doit utiliser les fonctions SocketLit et
SocketEcrit.

Fin de communication
Pour terminer la communication, il suffit de fermer le socket depuis le poste client avec la fonction
SocketFerme.
Remarque: il est galement possible de terminer la communication depuis le poste serveur.

436 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
Nous avons choisi de vous prsenter un cas rel de la programmation des sockets grce
lexemple unitaire "Utilisation des sockets".

Test de lexemple

Ouvrez lexemple unitaire "Utilisation des sockets".


Lancez le test de la fentre "FEN_Socket". Nous allons envoyer un message du poste B au
poste A. Le poste A est lapplication Serveur et le poste B est lapplication Cliente.
1.Sur le poste A, crez le socket en cliquant sur le bouton "Crer".
2.Le poste B peut alors se connecter au socket cr par le poste A. Il suffit de cliquer sur le
bouton "Connecter" (dans la partie Poste B).
3.Le poste B envoie un message au poste A:
Saisissez le message envoyer dans la zone "Phrase envoyer au poste A".
Cliquez sur le bouton "Envoyer" prsent dans la zone "Poste B".
4.Pour rcuprer le message sur le poste A, cliquez sur le bouton "Rcuprer" dans la zone
"Poste A".
5.Dconnectez les deux postes en cliquant sur les boutons "Dconnecter".
Arrtez le test de la fentre pour revenir sous lditeur.
Analyse du code utilis

Etudions le code des diffrents boutons que nous avons utilis.


Nous allons tout dabord tudier les traitements raliss par le serveur de sockets (le poste
A).
1.Affichez le code du bouton "Crer" dans la zone Poste A:
Slectionnez le bouton "Crer".
Affichez les traitements grce la touche [F2].
2.Dans le traitement "Clic sur", nous retrouvons la fonction SocketCre qui permet de crer le
socket. Fermez lditeur de code.
3.Affichez le code du bouton "Rcuprer" dans la zone Poste A:
Slectionnez le bouton "Rcuprer".
Affichez les traitements grce la touche [F2].
4.Dans le traitement "Clic sur", le code utilis est le suivant:
SAI_PhraseRecueDuPosteB = SocketLit(PosteA, Faux, 2000)
SI SAI_PhraseRecueDuPosteB <> ALORS
Info(Message reu de ladresse I.P N +...
SocketClientInfo(PosteA, SocketAdresse))
FIN

Nous retrouvons la fonction SocketLit qui permet de lire le socket prcdemment cr. Le
message lu est immdiatement affich dans le champ "SAI_PhraseRecueDUPosteB". Fermez
lditeur de code.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 437
Etudions maintenant les traitements raliss par le client (le poste B).
1.Affichez le code du bouton "Connecter" dans la zone Poste B:
Slectionnez le bouton "Connecter".
Affichez les traitements grce la touche [F2].
2.Dans le traitement "Clic sur", nous retrouvons la fonction SocketConnecte qui permet de se
connecter au socket cr par le poste A. Fermez lditeur de code.
3.Affichez le code du bouton "Envoyer" dans la zone Poste B:
Slectionnez le bouton "Envoyer".
Affichez les traitements grce la touche [F2].
4.Dans le traitement "Clic sur", le code utilis est le suivant:
SI PAS SocketEcrit(PourPosteA, ...
SAI_PhraseAEnvoyerAuPosteA) ALORS
Erreur(ErreurInfo(errMessage))
RETOUR
FIN
Nous retrouvons la fonction SocketEcrit qui permet denvoyer un message sur le socket
auquel le poste B sest connect. Fermez lditeur de code.

Remarque: Dans cette leon, nous avons vu une communication "simple" entre un serveur et un
poste client: le client envoie des messages et le serveur traite les messages. Il est bien entendu
possible de raliser des applications plus labores.
Il est possible de raliser une communication entre deux applications, la fois cliente et serveur.
Dans ce cas, la gestion des threads devient primordiale pour grer les envois et les rponses des
applications.

438 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 6.8. Le FTP

Ce que vous allez apprendre dans cette leon ...

Prsentation des fonctions FTP de WINDEV.

Dure estime: 20 mn

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 439
Prsentation
Le FTP (File Transfert Protocol) est un protocole standard permettant deffectuer le transfert de
fichiers dune machine vers une autre machine. Une des deux machines doit tre un serveur FTP.
Le WLangage possde les commandes de programmation ncessaires pour effectuer des trans-
ferts de fichiers en utilisant ce protocole avec un serveur. Ces fonctions de programmation com-
mencent toutes par "FTP".
WINDEV ne propose que des fonctions "clientes" pour le FTP. Il est ncessaire dutiliser un serveur
FTP standard.

Nous avons choisi de vous prsenter un cas rel de la manipulation des fichiers sur un serveur
FTP grce lexemple unitaire "Les fonctions FTP".
Ouvrez lexemple unitaire "Les fonctions FTP". Cet exemple prsente les principales fonction-
nalits utilisables sur un serveur FTP.

Se connecter un serveur FTP


La fonction FTPConnecte permet de se connecter un serveur FTP. Vous devez au pralable pos-
sder un compte FTP (nom dutilisateur et mot de passe) pour accder un serveur FTP.

Dans la fentre "FEN_FTP", affichez le code du bouton "Connexion":


1.Slectionnez le bouton "Connexion".
2.Utilisez la touche [F2] pour afficher le code associ:
// 1 - Adresse FTP : correspond au site FTP
// o lapplication doit se connecter. Ex : 192.108.10.2
sAdresseFTP est une chane = ftp.pcsoft.fr
// 2 - Nom dutilisateur : si ce nom nest pas indiqu,
// une connexion de type anonyme sera utilise
sNomUtilisateur est une chane =
// 3 - Mot de passe de lutilisateur :
// utilis uniquement si la connexion nest pas anonyme
sMDPUtilisateur est une chane =

440 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
// Connexion au serveur FTP
gnIdConnexion = FTPConnecte(sAdresseFTP,sNomUtilisateur,...
sMDPUtilisateur)
SI ErreurDtecte ALORS
// Une erreur a t rencontre lors de la connexion
Erreur(La connexion au serveur FTP : +...
sAdresseFTP+ a chou,ErreurInfo())
RETOUR
FIN
// La connexion est tablie
Info(La connexion au serveur FTP est tablie,...
identifiant de connexion : +gnIdConnexion)

Remarque: Il est galement possible de prciser le numro de port de connexion du serveur FTP
(par dfaut "21") ainsi que le mode de connexion ("Vrai" pour une connexion dite "passive", "Faux"
pour une connexion dite "active"). Pour plus de dtails, consultez laide en ligne (mot-cl: "FTP,
Fonctions").

Envoyer un fichier
Pour envoyer un fichier vers un serveur FTP, il suffit tout simplement dutiliser la fonction FTPEn-
voie.
Voici un exemple de code pouvant tre utilis:
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// rcupr le numro de connexion dans la variable gnIdConnexion
// Transfert du fichier C:\MesDocuments\Fichier.DOC vers
// le rpertoire Temp qui se trouve sur le serveur.
bResult est un boolen = FTPEnvoie(gnIdConnexion, ...
C:\MesDocuments\Fichier.DOC, /Temp)

Faites trs attention la casse (minuscules, majuscules) du nom des rpertoires


sur le serveur. En effet, certains serveurs FTP sont des machines fonctionnant
sous UNIX et sont "case-sensitive", cest--dire quils sont sensibles la casse du
Attention!

nom des fichiers et des rpertoires.


Par exemple, sur le serveur FTP se trouve un rpertoire nomm "MonRepertoire".
Si vous tentez daccder au rpertoire "monrepertoire", le serveur FTP pourra
renvoyer une erreur du type "Chemin inexistant" car la casse utilise nest pas
correcte.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 441
Lister les fichiers prsents sur un serveur FTP
La fonction FTPListeFichier permet de lister les fichiers prsents sur un serveur FTP. Cette fonc-
tion utilise une procdure de type "callback". Pour chaque fichier ou rpertoire trouv, la proc-
dure est excute.

Dans la fentre "FEN_FTP", affichez le code du bouton "Lister":


1.Slectionnez le bouton "Lister".
2.Utilisez la touche [F2] pour afficher le code associ:
FTPListeFichier(gnIdConnexion,*.*,...
CallBackFTPListeFichier,ftpFichier+ftpRpertoire)

// Vrification de lexcution de la fonction


SI ErreurDtecte ALORS
Erreur(Erreur lors du parcours des fichiers prsents sur le
serveur FTP,ErreurInfo())
RETOUR
FIN
3.Dans lexemple, la procdure appele permet dafficher dans une fentre de trace les fi-
chiers trouvs.

PROCEDURE CallBackFTPListeFichier(sNomFichier,nTailleFichier
<utile>,sAttribut,sDateModif <utile>,sHeureModif <utile>)

// Est-ce un fichier ou un rpertoire


SI sAttribut = D ALORS
// Rpertoire ou sous-rpertoire
Trace(Rpertoire : +sNomFichier)
SINON
// Fichier
Trace(Fichier : +sNomFichier)
FIN

// Poursuite du parcours des fichiers


RENVOYER Vrai

442 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rcuprer un fichier
Pour rcuprer un fichier depuis un serveur FTP sur votre machine, il suffit dutiliser la fonction
FTPRcupre.
Voici un exemple de code pouvant tre utilis:
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// rcupr le numro de connexion dans la variable gnIdConnexion
// Rcupration du fichier /Document/Fichier.DOC prsent
// sur le serveur FTP vers le rpertoire D:\Temp sur
// le poste en cours
bRes est un boolen = FTPRcupre(gnIdConnexion, ...
/Document/Fichier.DOC,D:\Temp)

Se dconnecter dun serveur FTP


Pour se dconnecter dun serveur FTP, utilisez la fonction FTPDconnecte.
Dans la fentre "FEN_FTP", affichez le code du bouton "Dconnexion":
1.Slectionnez le bouton "Dconnexion".
2.Utilisez la touche [F2] pour afficher le code associ:
SI OuiNon(Non, Voulez-vous fermer la connexion au serveur FTP
?)=Oui ALORS
// Dconnexion du serveur FTP
FTPDconnecte(gnIdConnexion)
SI ErreurDtecte ALORS
// Erreur lors de la fermeture de la connexion
Erreur(Impossible de fermer la connexion FTP,ErreurInfo())
RETOUR
FIN

// La connexion est termine
Info(La connexion avec le serveur FTP est termine)
FIN

Il existe galement dautres fonctions FTP que nous ne dtaillerons pas dans ce cours. Elles per-
mettent notamment de:
crer, supprimer, modifier des rpertoires sur le serveur FTP,
crer, supprimer, modifier des fichiers sur le serveur FTP,
rcuprer les informations dun rpertoire et/ou dun fichier,
...

Pour plus de dtails, consultez laide en ligne (mot-cl: "FTP, Fonctions").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 443
Leon 6.9. La POO

Ce que vous allez apprendre dans cette leon...

Concepts de la programmation oriente objet.


Exemples de dclaration dobjet.
Modle UML associ.

Dure estime: 30 mn

444 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Concepts
La Programmation Oriente Objet (P.O.O.) a pour but de permettre une meilleure rutilisabilit du
code. Les programmes dvelopps en POO sont structurs: ils sont dcomposs en modules g-
rant chacun une fonctionnalit du logiciel. Les modules dvelopps peuvent tre facilement ruti-
liss dans dautres logiciels. Ils vont regrouper un ensemble de procdures (appeles mthodes)
et encapsuler la structure de donnes sur laquelle les mthodes vont agir.
Pour programmer "en objet", il faut dclarer des classes, les membres et les mthodes associs.

Les classes
Une classe rassemble la description dune structure de donnes (les membres) et les procdures
(mthodes) qui manipulent les membres.
Une classe dfinit donc un type de donnes et son comportement.

Les objets
Une classe permet de crer des objets. Chaque objet cr possde des membres dcrits dans sa
classe et peut tre manipul par lintermdiaire des mthodes de sa classe. On dit quun objet est
une instance de la classe.
Lorsque la classe est dclare, il suffit dassocier un objet une classe pour que lobjet puisse
tre manipul par toutes les mthodes de cette classe.

Les membres
Un membre est une donne (ou paramtre) de lobjet.

Les mthodes
Une mthode permet dagir sur lobjet, pour modifier ses membres par exemple.
Une mthode est une procdure. Son fonctionnement est identique celui des procdures clas-
siques du WLangage.

Notion dhritage
Lhritage permet dinclure les caractristiques dune classe existante (classe de base) dans une
nouvelle classe (classe drive). Lhritage permet de crer un nouveau type de donnes partir
dun type connu, dans le but de lui ajouter des fonctionnalits, ou den modifier le comportement.
La classe de base ne sera donc pas modifie. Une classe peut hriter dune classe dont elle
devient une sous-classe.
Une classe drive permet ses objets daccder toutes les mthodes, tous les membres et
toutes les proprits de ses classes anctres; tout se passe comme si les mthodes, les membres
et les proprits des classes anctres faisaient partie de la classe drive.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 445
Constructeur et Destructeur
La notion de Constructeur et Destructeur est importante puisquelle permet un appel automa-
tique de mthodes dinitialisation lors de la cration dun objet et lors de sa destruction.
La mthode Constructeur associe une classe est automatiquement appele lors de la dclara-
tion dun objet de la classe.
La mthode Destructeur associe une classe est automatiquement appele lors de la suppres-
sion de lobjet (sortie de procdure dans laquelle lobjet a t dclar).

Encapsulation de donnes
Lencapsulation des donnes permet de garantir que les donnes membres de lobjet ne seront
pas modifies tort par des fonctions (mthodes) extrieures lobjet.
Il est ainsi possible dinterdire lutilisateur dun objet laccs certain ou tous ses membres.
Les membres dont laccs est interdit sont appels membres privs.
Il nest possible daccder ces membres privs qu partir des mthodes prvues cet effet
dans la classe.

Exemple
Prenons un exemple simple pour appliquer les concepts que nous venons de voir:
Considrons la classe PERSONNE.
Florence est une instance de la classe PERSONNE.
Le nom, prnom et date de naissance peuvent tre des membres de la classe PERSONNE.
La mthode Age() peut tre une mthode de la classe PERSONNE. Elle calculerait lge en se
basant sur le membre "date de naissance" et sur la date du jour (renvoye par la fonction Date-
Sys).
Hritage: Un contact peut tre soit une personne, soit une entreprise.
PERSONNE pourrait tre une classe drive de CONTACT.
ENTREPRISE pourrait tre une classe drive de CONTACT.

Crer un programme orient objet


Pour crer un programme en objet en WLangage, il faut:
1.Dcrire la classe et les membres de la classe.
2.Donner toutes les mthodes de la classe.
3.Dclarer les objets en leur associant une classe ("instancier une classe").

446 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple simple

Pour illustrer les concepts que nous venons de prsenter, nous allons manipuler lexemple
didactique "WD POO Simple".
1.Ouvrez lexemple didactique "WD POO Simple".
2.Testez cet exemple.

3.Cliquez sur les diffrents boutons correspondant aux animaux pour ajouter des animaux.
4.Arrtez le test de lexemple pour revenir sous lditeur.
Remarque: Nous ne dtaillons pas ici la syntaxe de la P.O.O., nous prsenterons uniquement un
exemple simple de programme orient objet. Pour avoir plus de dtail sur la syntaxe de la P.O.O.,
consultez laide en ligne (mot-cl: "POO, Classe").

Dclarer une classe

WINDEV permet de dclarer les classes trs simplement depuis lexplorateur de projet. Pour
crer une classe:
1.Dans lexplorateur de projet, slectionnez le dossier "Classes".
2.Affichez le menu contextuel de ce dossier (clic droit de la souris) et slectionnez loption
"Nouvelle classe".
3.Dans la fentre qui saffiche, indiquez le nom de la classe (par exemple TestGAF) et validez.
4.Le code de la classe saffiche sous lditeur de code.

Consultez le code de la classe cSavane utilise dans lexemple.


1.Dans lexplorateur de projet, slectionnez le dossier "Classes".
2.Ouvrez le dossier "Classes" (en cliquant sur la flche prsente devant le nom du dossier).
3.Double-cliquez sur la classe cSavane.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 447
4.Le code de la classe saffiche sous lditeur de code. Le code de dclaration de la classe
est de la forme:
cSavane est une Classe

PROTG
// Nom du champ Image utilis pour le dessin
m_sNomChampImagePourDessin est une chane
// Liste des animaux de la savane
m_tabLesAnimaux est un tableau de cAnimal dynamique
FIN
"cSavane" est le nom de la classe.
"m_sNomChampImagePourDessin" et "m_tabLesAnimaux" sont des membres de la classe.
Le mot-cl "PROTEGE" permet dindiquer que ces membres seront manipulables uniquement de-
puis un code de la classe ou un code dune classe drive.

Dcrire les mthodes

WINDEV permet de dclarer les classes trs simplement depuis lexplorateur de projet. Pour
crer une mthode:
1.Cliquez avec le bouton droit de la souris sur votre classe prsente dans lexplorateur de pro-
jet.
2.Choisissez "Nouvelle mthode" dans le menu contextuel.
3.Dans la fentre qui saffiche, indiquez le nom de la mthode et validez.
4.Saisissez le code de la mthode sous lditeur de code.

Pour afficher la mthode AjouteAnimal de la classe cSavane:


1.Cliquez avec la souris sur votre classe prsente dans lexplorateur de projet.
2.Cliquez sur la petite flche devant le nom de la classe: les diffrentes mthodes de la
classe sont affiches.
3.Double-cliquez sur le nom de la mthode:

PROCEDURE AjouteAnimal(pclUnAnimal est un cAnimal dynamique)

// Pas plus de 5 animaux


SI m_tabLesAnimaux..Occurrence = 5 ALORS
Erreur(Pas plus de 5 animaux !)
RENVOYER Faux
FIN

// Ajoute lanimal la liste


Ajoute(m_tabLesAnimaux, pclUnAnimal)

// Dessine la savane
DessineSavane()

RENVOYER Vrai

448 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dclarer et manipuler les objets
Dans les traitements de la fentre, un objet est dclar en mme temps que les autres variables:
// Dclarations globales de FEN_POO
PROCEDURE FEN_POO()

// Objet savane
gclLaSavane est un cSavane(IMG_Landscape..NomComplet)

Pour faire rfrence un membre de lobjet "cSavane", il faut utiliser la syntaxe


<NomObjet>.<nom du membre>

Dans notre exemple, lobjet est manipul:


A linitialisation de la fentre, pour construire la savane.
// Dessine la savane
gclLaSavane.DessineSavane()

Lors de la cration dun animal, pour placer lanimal dans la savane.

// Dclare un nouvel lphant


clElephant est un cElephant(lphant +DonneIdentifiant(), 13)

// Ajoute llphant dans la savane (cette action provoque le


rafrachissement du dessin)
SI gclLaSavane.AjouteAnimal(clElephant) ALORS
// Message de fin
ToastAffiche(Animal ajout, toastCourt, cvMilieu, chCentre)

FIN

Nous ne nous attarderons pas plus sur la prsentation de la POO dans ce cours.

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 449
Diagramme UML
Lexemple "WD POO Simple" est associ un diagramme UML.
Pour afficher le diagramme UML li au projet:
1.Double-cliquez sur "ModleUML" dans lexplorateur de projet:

2.Le diagramme UML (diagramme de classes) li au projet saffiche.

3.Dans ce diagramme, nous retrouvons les diffrentes classes utilises par le projet "WD POO
Simple".

450 Partie 6 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
WINDEV permet de crer les 9 types de diagrammes UML.
Pour crer un diagramme UML:
1.Sous le volet "Accueil", dans le groupe "Gnral", cliquez sur "Nouveau".
2.La fentre de cration dun nouvel lment saffiche : cliquez sur "Architec-
ture" puis sur "UML".
3.Lassistant de cration dun modle UML se lance, vous permettant de
choisir le modle crer:
Notes

Nous ne dtaillerons pas plus lutilisation du langage UML avec WINDEV. Consultez laide en ligne
pour plus dinformations (mot-cl: "UML").

(c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Partie 6 : Programmation avance 451
452 Conclusion
Conclusion
Le cours est maintenant termin!

Ce cours a abord un ensemble de sujets, mais pas la totalit des fonctionnalits de WINDEV, loin
sen faut!
Vous tes maintenant familiaris avec les principaux concepts.

Explorez galement les exemples livrs avec WINDEV: certains sont simples et ne traitent que
dun sujet, dautres sont trs complets. Ces exemples vous montreront les diffrentes facettes de
WINDEV. La lecture du code source sera galement instructive en gnral.

Faute de place, nous navons pas pu aborder tous les sujets (il y en a des centaines, voire des
milliers!). WINDEV offre de nombreuses possibilits non abordes ou non approfondies dans ce
cours:
fonctions HTTP, tlphonie
cration de gabarits...
tats imbriqus, requtes paramtres...
compilation dynamique, appels de DLL, langages externes...

Pour plus de dtails sur toutes ces possibilits, nhsitez pas consulter laide en ligne.

Rappel: Pour recevoir directement des mises jour intermdiaires et des conseils dutilisation,
abonnez-vous la LST (revue trimestrielle + DVD), en franais.

Nous vous souhaitons de bons dveloppements, avec WINDEV 21, AGL n1 en France!

Conclusion 453

Vous aimerez peut-être aussi