Vous êtes sur la page 1sur 0

GAF WinDev.book Page 1 Jeudi, 5.

juillet 2012 9:16 09


WinDev 17
Documentation version 17 Express (1) - 0612
Version dvaluation
Diffusion interdite sans laccord crit de PC SOFT

Visitez rgulirement le site www.pcsoft.fr, espace actualits pour vrifier si des mises jour sont propo-
ses.
Adresse e-mail Support Technique Gratuit : supportgratuit@pcsoft.fr
Conseil : Pour recevoir directement des mises jour intermdiaires et des conseils dutilisation, 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 2012 : Aucune reproduction intgrale ou partielle du prsent ouvrage sur quelque support que ce soit ne peut tre effec-
tue sans lautorisation expresse de PC SOFT.
GAF WinDev.book Page 2 Jeudi, 5. juillet 2012 9:16 09
Sommaire 3 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
SOMMAIRE
Licence dutilisation
Licence dutilisation du logiciel en version "Express" ....................................................................................... 19
Introduction
Prliminaires ......................................................................................................................................................... 23
Prsentation du cours dauto-formation ............................................................................................................ 23
Comment accder l'aide en ligne ? ................................................................................................................. 24
Lgende des symboles ......................................................................................................................................... 24
Si vous connaissez WinDev 16 ... ........................................................................................................................ 24
Que fait-on avec WinDev ? ................................................................................................................................... 24
PARTIE 1 - A LA DCOUVERTE DE WINDEV
Leon 1.1. Concepts
Prsentation .......................................................................................................................................................... 30
Concepts de base ................................................................................................................................................. 30
Terminologie ......................................................................................................................................................... 31
Dans lanalyse......................................................................................................................................... 31
Dans les fentres et les tats................................................................................................................ 32
Leon 1.2. Environnement du Cours dauto-formation
Prsentation .......................................................................................................................................................... 34
Mise en place ........................................................................................................................................................ 34
Leon 1.3. Mes premires fentres
Prsentation .......................................................................................................................................................... 36
Ma premire fentre : un compteur ................................................................................................................... 36
Prsentation............................................................................................................................................ 36
Ralisation .............................................................................................................................................. 36
Gestion du compteur.............................................................................................................................. 39
Amlioration du look de la fentre et cration dun bouton pour quitter la fentre......................... 42
Grer la saisie dun texte....................................................................................................................... 44
Grer la saisie dun numrique pour faire un calcul............................................................................ 47
Utiliser une procdure............................................................................................................................ 50
Cration dune fentre avec un menu.................................................................................................. 50
Leon 1.4. Bases de programmation
Introduction ........................................................................................................................................................... 56
Dclaration des diffrents types de variables ................................................................................................... 56
Les diffrents types de variables .......................................................................................................... 56
La dclaration des variables et leur porte.......................................................................................... 56
GAF WinDev.book Page 3 Jeudi, 5. juillet 2012 9:16 09
4 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Instructions de base du WLangage .................................................................................................................... 57
Instructions conditionnelles................................................................................................................... 57
Instructions de boucle............................................................................................................................ 58
Commentaires......................................................................................................................................... 58
Exemple pratique sur les diffrentes instructions de base................................................................. 59
Procdures et fonctions ....................................................................................................................................... 59
Dfinition................................................................................................................................................. 59
Procdure locale..................................................................................................................................... 60
Procdure globale et collection de procdures.................................................................................... 60
Comment choisir si une procdure est globale ou locale ? ................................................................ 60
A propos du passage des paramtres.................................................................................................. 60
Appel dune procdure........................................................................................................................... 61
Cration dune procdure...................................................................................................................... 61
Un exemple pratique sur les procdures et fonctions......................................................................... 62
Traitements des chanes ...................................................................................................................................... 62
Exemple pratique.................................................................................................................................... 62
Dtails...................................................................................................................................................... 62
Traitements des numriques .............................................................................................................................. 64
Exemple pratique.................................................................................................................................... 64
Dtails...................................................................................................................................................... 64
Traitement des montaires ................................................................................................................................. 65
Exemple pratique.................................................................................................................................... 65
Dtails...................................................................................................................................................... 65
Traitements des dates et des heures ................................................................................................................. 67
Prsentation............................................................................................................................................ 67
Exemple pratique.................................................................................................................................... 67
Masque de saisie et valeur retourne.................................................................................................. 67
Les dates ................................................................................................................................................................ 68
Exemple pratique.................................................................................................................................... 68
Quel jour sommes-nous ? ...................................................................................................................... 69
Quel jour sommes-nous, mais avec le jour et le mois en lettres ? ..................................................... 69
Quel est le nombre de jours entre 2 dates ?........................................................................................ 69
Quel est le jour de la semaine dune date donne ?........................................................................... 70
Petit exercice pratique ........................................................................................................................... 70
Les heures ............................................................................................................................................................. 70
Exemple pratique.................................................................................................................................... 70
Quelle heure est-il ?................................................................................................................................ 70
Combien de temps s'est coul entre deux heures ?.......................................................................... 71
Variable de type Date, Heure, DateHeure, Dure................................................................................ 72
Calculs avec des dates et des heures .................................................................................................. 72
Leon 1.5. Questions / Rponses
Questions / Rponses .......................................................................................................................................... 74
Comment visualiser llment auquel appartient le traitement en cours ?....................................... 74
Comment imprimer le code source ?.................................................................................................... 74
Comment rechercher et/ou remplacer une variable dans le code ? ................................................. 74
Que signifie les signes "+" ou "-" dans lditeur de code ? .................................................................. 74
Est-il possible didentifier la personne qui a crit une ligne de code ?.............................................. 75
Est-il possible de connatre le numro dune ligne de code ?............................................................. 75
GAF WinDev.book Page 4 Jeudi, 5. juillet 2012 9:16 09
Sommaire 5 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Existe-t-il un moyen dobtenir facilement la syntaxe ou de laide sur une fonction ?........................ 75
Quels sont les raccourcis clavier connatre sous lditeur de code ? ............................................. 76
Comment dialoguer avec lutilisateur?................................................................................................. 76
PARTIE 2 - APPLICATION AVEC DONNES
Leon 2.1. Prsentation
Prsentation de lapplication ralise dans cette partie ................................................................................. 80
Leon 2.2. Projet et analyse
Prsentation .......................................................................................................................................................... 82
Cration du projet ................................................................................................................................................. 82
Cration de lanalyse ............................................................................................................................................ 83
Cration de la description des fichiers de donnes .......................................................................................... 84
Cration dun fichier de donnes et de ses rubriques sous lditeur................................................. 85
Importation dun fichier CSV.................................................................................................................. 90
Importation de fichiers du dictionnaire................................................................................................. 93
Importation directe de fichiers de donnes existants ......................................................................... 93
Cration des liaisons ............................................................................................................................................ 94
Configuration de lanalyse pour le RAD ............................................................................................................. 96
Configuration du RAD dans la description des fichiers de donnes .................................................. 96
Configuration du RAD dans la description des rubriques ................................................................... 97
Gnration de lanalyse ....................................................................................................................................... 98
Leon 2.3. Le RAD complet
Quest-ce que le RAD ? .......................................................................................................................................100
Gnration du RAD .............................................................................................................................................100
Test de lapplication ...........................................................................................................................................103
Modification rapide : Verrouillage de lapplication .........................................................................................104
Leon 2.4. Fentre de saisie
Prsentation ........................................................................................................................................................106
Cration dune fentre de saisie .......................................................................................................................106
Gestion de lajout dun enregistrement ............................................................................................................107
Cration du bouton dajout .................................................................................................................. 107
Ajout dun masque de saisie ............................................................................................................... 109
Effacement des donnes aprs lajout ............................................................................................... 110
Visualiser les enregistrements saisis.................................................................................................. 111
Gestion de la recherche puis de la modification .............................................................................................112
Recherche lidentique....................................................................................................................... 112
Recherche gnrique........................................................................................................................... 114
Modification de la fiche affiche......................................................................................................... 115
Parcours des fiches.............................................................................................................................. 115
GAF WinDev.book Page 5 Jeudi, 5. juillet 2012 9:16 09
6 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 2.5. Table sur une requte
Prsentation ........................................................................................................................................................118
Cration dune requte paramtre .................................................................................................................118
Cration dune fentre avec une table base sur la requte .........................................................................120
Imprimer le contenu de la table ........................................................................................................................122
Cration dun tat automatique sur la table ...................................................................................................123
Leon 2.6. Etat avec requte intgre
Prsentation ........................................................................................................................................................125
Cration dun tat ...............................................................................................................................................125
Test dun tat .......................................................................................................................................................128
Modification dun tat ........................................................................................................................................129
Leon 2.7. Le groupware utilisateur
Prsentation ........................................................................................................................................................131
Intgrer le groupware utilisateur .......................................................................................................................131
Configurer le groupware utilisateur ..................................................................................................................132
Leon 2.8. Le tableau de bord
Prsentation ........................................................................................................................................................135
Tests automatiques ............................................................................................................................................135
Audit statique et optimisation des requtes ...................................................................................................139
Leon 2.9. Dploiement de lapplication
Prsentation ........................................................................................................................................................143
Cration de lexcutable ....................................................................................................................................143
Cration de linstallation ....................................................................................................................................146
Conclusion ...........................................................................................................................................................148
Leon 2.10. Questions / Rponses
Comment crer le menu principal de mon application?................................................................... 150
Comment lier une fentre une option de mon menu principal ? ................................................... 150
Comment insrer automatiquement le menu "?" ? ........................................................................... 150
Comment crer un menu contextuel ?................................................................................................ 150
Comment fermer une fentre automatiquement aprs une dure prdfinie? ............................. 151
Comment rcuprer des paramtres passs en ligne de commande un excutable?............... 151
Comment dsinstaller une application ralise avec WinDev? ....................................................... 152
Comment crer une installation par CD-ROM?.................................................................................. 152
Comment crer un excutable?.......................................................................................................... 152
Comment installer une application?................................................................................................... 152
Comment associer une icne mon excutable?............................................................................. 153
Comment associer une image de lancement (splash screen) mon excutable?......................... 153
Comment mettre licne de mon application en bas droite dans la barre de tches? ............... 153
Comment installer un raccourci dune application sur le bureau ?.................................................. 153
Comment partager le framework WinDev entre les diffrentes applications installes sur un
mme poste?........................................................................................................................................ 154
Comment dtecter les lments non utiliss par mon application?................................................ 154
GAF WinDev.book Page 6 Jeudi, 5. juillet 2012 9:16 09
Sommaire 7 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 3 - FENTRES ET CHAMPS
Leon 3.1. Les diteurs
Lenvironnement .................................................................................................................................................158
Les volets .............................................................................................................................................................158
Les diffrents volets............................................................................................................................. 158
Manipuler les volets ............................................................................................................................. 159
Les configurations denvironnement .................................................................................................. 159
Le menu personnalis ........................................................................................................................................159
Personnalisation des assistants .......................................................................................................................161
Leon 3.2. Les fentres
Comment crer une fentre? ............................................................................................................................163
Description dune fentre : 8 onglets votre disposition ...............................................................................164
Exemple pratique.................................................................................................................................. 164
Onglet "Gnral" ................................................................................................................................... 164
Onglet "IHM".......................................................................................................................................... 165
Onglet "Dtail"....................................................................................................................................... 165
Onglet "Image" ...................................................................................................................................... 166
Onglet "Langue" .................................................................................................................................... 166
Onglet "Note"......................................................................................................................................... 166
Onglet "Aide" ......................................................................................................................................... 166
Onglet "Style"......................................................................................................................................... 166
Leon 3.3. Les champs
Introduction .........................................................................................................................................................168
Exemple pratique.................................................................................................................................. 168
Les champs classiques ......................................................................................................................................168
Type de champ : Libell........................................................................................................................ 169
Type de champ : Champ de saisie....................................................................................................... 171
Type de champ : Bouton ...................................................................................................................... 175
Type de champ : Image........................................................................................................................ 179
Type de champ : Slecteur................................................................................................................... 184
Type de champ : Interrupteur .............................................................................................................. 185
Type de champ : Liste........................................................................................................................... 187
Type de champ : Liste Image............................................................................................................... 192
Type de champ : Combo....................................................................................................................... 195
Type de champ : Table ......................................................................................................................... 197
Type de champ : Zone rpte............................................................................................................ 202
Type de champ : Arbre ......................................................................................................................... 204
Type de champ : Table Hirarchique................................................................................................... 204
Type de champ : Jauge......................................................................................................................... 205
Type de champ : Champ Graphe......................................................................................................... 206
Les champs spcialiss .....................................................................................................................................207
Type de champ : Calendrier ................................................................................................................. 208
Type de champ : Agenda...................................................................................................................... 208
Type de champ : Planning.................................................................................................................... 208
Type de champ : Organigramme ......................................................................................................... 209
GAF WinDev.book Page 7 Jeudi, 5. juillet 2012 9:16 09
8 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Type de champ : TreeMap.................................................................................................................... 209
Type de champ : Carrousel .................................................................................................................. 209
Type de champ : Cube.......................................................................................................................... 210
Type de champ : Tiroir .......................................................................................................................... 210
Type de champ : Forme........................................................................................................................ 210
Type de champ : Champ Code-Barres................................................................................................. 210
Type de champ : Ascenseur................................................................................................................. 211
Type de champ : Range Slider ............................................................................................................. 211
Type de champ : Potentiomtre........................................................................................................... 212
Type de champ : Spin........................................................................................................................... 212
Type de champ : Notation.................................................................................................................... 212
Type de champ : Web camra............................................................................................................. 213
Type de champ : Confrence............................................................................................................... 214
Type de champ : HTML......................................................................................................................... 214
Type de champ : OLE, ActiveX.............................................................................................................. 214
Type de champ : Bote outils............................................................................................................. 216
Type de champ : Barre doutils............................................................................................................ 216
Type de champ : Ruban........................................................................................................................ 217
Type de champ : Xaml .......................................................................................................................... 217
Leon 3.4. Ergonomie de lapplication
Amliorer lergonomie des champs et des fentres .......................................................................................219
Style/gabarit ......................................................................................................................................... 219
Redimensionnement des fentres...................................................................................................... 220
Ancrage.................................................................................................................................................. 220
Tabulation/ordre de saisie................................................................................................................... 221
Rgles/Correcteur dinterface/Alignement ........................................................................................ 222
Plan/Onglet ........................................................................................................................................... 223
Sparateur ............................................................................................................................................ 224
Animation de fentres.......................................................................................................................... 225
Grisage automatique des fentres...................................................................................................... 225
Totaux dans les tables ......................................................................................................................... 225
Images des champs paramtrables dans le style.............................................................................. 226
Transparence des champs, transparence des fentres.................................................................... 226
Sauvegarde de la position dans les colonnes dans les tables ......................................................... 226
Ergonomie de lapplication ................................................................................................................................227
Exemple de programme grant le multi fentrage de fentres libres (non MDI) ............................ 227
Exemple de programme grant des fentres MDI ............................................................................. 230
Leon 3.5. Rutilisabilit
Quest-ce que la rutilisabilit? .........................................................................................................................235
Rutiliser un ensemble de champs ..................................................................................................................235
Le superchamp..................................................................................................................................... 235
Fentre interne ..................................................................................................................................... 236
Modle de champs............................................................................................................................... 237
GAF WinDev.book Page 8 Jeudi, 5. juillet 2012 9:16 09
Sommaire 9 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 3.6. Questions/Rponses
Comment dupliquer un champ dans une fentre par programmation ?......................................... 240
Comment supprimer un champ dans une fentre par programmation?......................................... 240
Comment grer les plans dune fentre?........................................................................................... 240
Comment grer le clic sur un volet dun onglet?............................................................................... 241
Comment afficher la progression dun traitement ?.......................................................................... 241
Comment afficher un site Internet dans une fentre?...................................................................... 241
Comment modifier la couleur dun champ?....................................................................................... 242
Comment rendre un bouton invisible? ............................................................................................... 242
Comment crer le menu principal de mon application ? .................................................................. 243
Comment crer un menu contextuel ? ............................................................................................... 243
Comment modifier le curseur de survol pour un champ ou une fentre?....................................... 243
Comment passer des paramtres une fentre?............................................................................. 244
Comment regrouper des champs pour modifier leurs proprits par programmation? ................ 244
Comment transformer un champ interrupteur en un champ slecteur ?........................................ 245
Comment mettre des boutons la mme taille?.............................................................................. 245
Comment grer la persistance des champs? .................................................................................... 245
Comment ajouter une image en fond dans une fentre?................................................................. 245
Comment grer la transparence dune fentre? ............................................................................... 245
PARTIE 4 - BASES DE DONNES ET ANALYSES
Leon 4.1. Introduction
Prsentation ........................................................................................................................................................250
Les diffrents modes daccs aux bases de donnes ....................................................................................250
Accs Natif ............................................................................................................................................ 250
Accs ODBC direct................................................................................................................................ 251
Accs OLE DB........................................................................................................................................ 251
Accs ODBC via OLE DB....................................................................................................................... 251
Quel accs utiliser?.............................................................................................................................. 251
Leon 4.2. Parcours de fichiers de donnes et de requtes
Parcours de type HLitPremier ...........................................................................................................................253
Parcours de type HLitRecherche .......................................................................................................................253
Parcours de type POUR TOUT ............................................................................................................................254
Parcours de type POUR TOUT AVEC ..................................................................................................................254
Quel type de parcours choisir? ..........................................................................................................................255
Leon 4.3. Gestion des erreurs
Prsentation ........................................................................................................................................................257
Gestion des erreurs en mode automatique .....................................................................................................257
Gestion des erreurs en mode programm avanc .........................................................................................259
GAF WinDev.book Page 9 Jeudi, 5. juillet 2012 9:16 09
10 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 4.4. La Journalisation
Quest-ce que la journalisation? .......................................................................................................................262
La journalisation pour quoi faire?....................................................................................................... 262
Comment mettre en place la journalisation ....................................................................................................262
Physiquement, comment se matrialise la journalisation?.............................................................. 263
Comment russir la mise en place de la journalisation? ..............................................................................264
Leon 4.5. Les transactions
Quest-ce quune transaction? ..........................................................................................................................266
Un exemple simple de la ncessit des transactions pour certains types de traitements ............ 266
Les transactions sur HyperFileSQL ..................................................................................................... 267
Utilisation des transactions ...............................................................................................................................267
Mettre en place la gestion des transactions...................................................................................... 267
Manipuler les enregistrements lors d'une transaction : les rgles suivre .................................... 268
Que faire si une transaction a t interrompue?............................................................................... 268
Leon 4.6. Cryptage de donnes
A quoi sert le cryptage des donnes? ..............................................................................................................270
Comment crypter les fichiers de donnes? .....................................................................................................270
Mettre en place le cryptage des fichiers de donnes........................................................................ 270
Gestion du cryptage en WLangage...................................................................................................... 272
Leon 4.7. La rplication
A quoi sert la rplication de donnes? .............................................................................................................274
Mise en uvre de la rplication de donnes ...................................................................................................274
Mise en place ......................................................................................................................................................275
1. Activation .......................................................................................................................................... 275
2. Dclaration de la base matre......................................................................................................... 275
3. Dclaration des bases abonnes ................................................................................................... 275
4. Rplication........................................................................................................................................ 275
Leon 4.8. Les triggers
A quoi sert un trigger ? .......................................................................................................................................278
Mise en place ......................................................................................................................................................278
Etape 1 : dcrire le trigger (ici dans le code dinitialisation du projet) ............................................. 278
Etape 2 : crer une procdure globale lie au trigger ....................................................................... 279
Leon 4.9. Bases externes
Prsentation ........................................................................................................................................................281
Connexion une base de donnes dans lditeur danalyses .......................................................................281
Connexion une base de donnes par programmation ................................................................................283
Cration de la connexion : HOuvreConnexion.................................................................................... 284
Association de la connexion aux fichiers de donnes : HChangeConnexion................................... 284
GAF WinDev.book Page 10 Jeudi, 5. juillet 2012 9:16 09
Sommaire 11 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 5 - ADMINISTRER UNE BASE HYPERFILESQL CLIENT/SERVEUR
Leon 5.1. Introduction
Prsentation ........................................................................................................................................................288
Pourquoi passer une application en mode HyperFileSQL Client/Serveur? .................................................289
Leon 5.2. Mise en place dune application Client/Serveur
Prsentation ........................................................................................................................................................291
Installation dun serveur HyperFileSQL local ...................................................................................................291
Cration dune application en mode HyperFileSQL Client/Serveur ..............................................................291
Adaptation dune application HyperFileSQL Classic pour grer le mode Client/Serveur ...........................292
Prsentation.......................................................................................................................................... 292
Migration de lexemple......................................................................................................................... 292
Fonctionnalits disponibles en mode HyperFileSQL Client/Serveur ............................................................294
Leon 5.3. Administrer une base de donnes Client/Serveur
Prsentation ........................................................................................................................................................296
Configuration des postes ...................................................................................................................................296
Le Centre de Contrle HyperFileSQL .................................................................................................................296
Crer un compte utilisateur dans le Centre de Contrle HyperFileSQL ........................................................298
Sauvegarder la base de donnes ......................................................................................................................301
Conclusion ...........................................................................................................................................................302
Leon 5.4. Installation en clientle
Prsentation ........................................................................................................................................................304
Lancement de lassistant de cration dinstallation .......................................................................................304
PARTIE 6 - REQUTES
Leon 6.1. Crez une requte de slection
Introduction .........................................................................................................................................................308
Votre premire requte ......................................................................................................................................309
Leon 6.2. Requtes avec comptage
Ralisation dune requte avec comptage ......................................................................................................315
Leon 6.3. Requtes Somme
Ralisation dune requte "Somme" ................................................................................................................318
Leon 6.4. Le langage SQL
Code source dune requte ................................................................................................................................321
Les ordres SQL ....................................................................................................................................................322
Linstruction SELECT ............................................................................................................................ 322
Linstruction FROM............................................................................................................................... 322
La clause WHERE ................................................................................................................................. 322
GAF WinDev.book Page 11 Jeudi, 5. juillet 2012 9:16 09
12 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La clause GROUP BY ............................................................................................................................ 323
La clause ORDER BY ............................................................................................................................ 323
Leon 6.5. Utilisation des Requtes
Utilisation dune requte depuis un tat ..........................................................................................................325
Utilisation dune requte depuis un champ .....................................................................................................325
Utilisation dune requte depuis le WLangage ................................................................................................325
PARTIE 7 - ETATS
Leon 7.1. Votre premier etat
Vocabulaire de base ...........................................................................................................................................330
Prsentation ........................................................................................................................................................332
Imprimer avec l'diteur d'tats ou imprimer en WLangage .............................................................. 332
Les tats crer ................................................................................................................................... 333
Cration de votre premier tat ..........................................................................................................................333
Cration de ltat : Liste des clients trie par ville............................................................................. 333
Qu'est-ce qu'une rupture? ................................................................................................................... 336
Leon 7.2. Etats statistiques
Prsentation ........................................................................................................................................................342
Etape par tape ...................................................................................................................................................342
Leon 7.3. Etats Tableau Crois
Prsentation ........................................................................................................................................................352
Etape par tape ...................................................................................................................................................352
Leon 7.4. Champs spcifiques
Prsentation ........................................................................................................................................................357
Manipulations pour crer un champ Lien ........................................................................................................357
Manipulations pour crer un champ clicable ..................................................................................................358
Leon 7.5. Excution des etats
Excuter les tats en WLangage .......................................................................................................................361
Fonctions iAperu et iDestination ....................................................................................................... 361
Fonction iImprimeEtat.......................................................................................................................... 362
Leon 7.6. Diffusez "Etats & Requtes" avec vos applications
Lancement du logiciel "Etats & Requtes" ......................................................................................................364
Paramtrage du projet ......................................................................................................................... 365
Paramtrage de lanalyse .................................................................................................................... 365
Paramtrage des tats......................................................................................................................... 366
Paramtrage des requtes .................................................................................................................. 366
Cration de lexcutable et diffusion de lapplication........................................................................ 366
Installation de lapplication.................................................................................................................. 367
Test de lapplication ............................................................................................................................. 369
GAF WinDev.book Page 12 Jeudi, 5. juillet 2012 9:16 09
Sommaire 13 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
PARTIE 8 - PROGRAMMATION AVANCE
Leon 8.1. Import/Export
Prsentation ........................................................................................................................................................374
Manipulation des fichiers texte, CSV, ... ...........................................................................................................374
Manipulation des fichiers XML ..........................................................................................................................375
Manipulation des fichiers XLS ...........................................................................................................................376
Leon 8.2. Compilation dynamique
Prsentation ........................................................................................................................................................378
Exemple ...............................................................................................................................................................378
Leon 8.3. Timer
Prsentation ........................................................................................................................................................381
Crer un timer automatique ..............................................................................................................................381
Crer un timer programm ................................................................................................................................382
Leon 8.4. Evnement Windows
Introduction .........................................................................................................................................................384
Exemple : Dtecter le clic sur une liste ............................................................................................................385
Leon 8.5. Gestion automatique des erreurs
Prsentation ........................................................................................................................................................388
Fonctionnement.................................................................................................................................... 388
Mise en place........................................................................................................................................ 388
Types derreurs concernes................................................................................................................. 388
Utilisation de la gestion automatique des erreurs ..........................................................................................389
Leon 8.6. Indirection
Prsentation ........................................................................................................................................................391
Exemple ...............................................................................................................................................................391
Leon 8.7. Les threads
Dfinition .............................................................................................................................................................393
Exemple ...............................................................................................................................................................393
Leon 8.8. Les sockets
Prsentation ........................................................................................................................................................395
Application Serveur (simplifi) ..........................................................................................................................395
Cration de la socket............................................................................................................................ 395
Echange de donnes............................................................................................................................ 395
Fermeture de la socket ........................................................................................................................ 396
Application Cliente ..............................................................................................................................................396
Connexion au serveur........................................................................................................................... 396
Echange de donnes............................................................................................................................ 396
Fin de communication.......................................................................................................................... 396
GAF WinDev.book Page 13 Jeudi, 5. juillet 2012 9:16 09
14 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 8.9. Le FTP
Prsentation ........................................................................................................................................................398
Se connecter un serveur FTP ..........................................................................................................................398
Envoyer un fichier ...............................................................................................................................................398
Rcuprer un fichier ...........................................................................................................................................399
Se dconnecter dun serveur FTP ......................................................................................................................399
Leon 8.10. Les emails
Prsentation ........................................................................................................................................................401
Les protocoles POP3/SMTP ..............................................................................................................................401
Ouvrir une session de messagerie ....................................................................................................................402
Envoyer un email ................................................................................................................................................402
Lire un email ........................................................................................................................................................402
Dconnexion ........................................................................................................................................................403
Autres possibilits ...............................................................................................................................................404
Leon 8.11. Le grapheur
Prsentation ........................................................................................................................................................406
Le champ Graphe ...............................................................................................................................................406
Les fonctions graphes ........................................................................................................................................408
Leon 8.12. La POO
Concepts ..............................................................................................................................................................411
Les classes............................................................................................................................................ 411
Les objets.............................................................................................................................................. 411
Les membres ........................................................................................................................................ 411
Les mthodes ....................................................................................................................................... 411
Notion dhritage.................................................................................................................................. 411
Constructeur et Destructeur ................................................................................................................ 411
Encapsulation de donnes .................................................................................................................. 412
Crer un programme orient objet...................................................................................................... 412
Dclarer une classe.............................................................................................................................. 412
Dcrire les mthodes ........................................................................................................................... 413
Dclarer et manipuler les objets ......................................................................................................... 414
PARTIE 9 - GESTION DE PROJET AVANCE
Leon 9.1. Configuration ncessaire
Prsentation ........................................................................................................................................................418
Mise en place ......................................................................................................................................................418
Leon 9.2. Tableau de bord
Prsentation ........................................................................................................................................................420
Exemple................................................................................................................................................. 420
GAF WinDev.book Page 14 Jeudi, 5. juillet 2012 9:16 09
Sommaire 15 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les diffrents lments du tableau de bord ....................................................................................................420
Les listes ............................................................................................................................................... 421
Les voyants ........................................................................................................................................... 422
Les compteurs en relation avec les Centres de Contrle.................................................................. 424
Configuration du tableau de bord .....................................................................................................................425
Leon 9.3. GDS
Introduction .........................................................................................................................................................428
GDS (Gestionnaire de Sources) .........................................................................................................................428
Principe du GDS.................................................................................................................................... 428
Cration de la base de sources........................................................................................................... 429
Intgration dun projet dans le GDS.................................................................................................... 430
Ouverture du projet depuis le GDS...................................................................................................... 433
Configuration du GDS........................................................................................................................... 433
Extraction dun lment ....................................................................................................................... 435
Modification de llment extrait......................................................................................................... 436
Rintgration de llment extrait....................................................................................................... 436
Synchronisation du projet .................................................................................................................... 437
Mode dconnect (ou nomade)........................................................................................................... 438
Administrateur du GDS ........................................................................................................................ 438
Leon 9.4. Centres de contrle
Prsentation ........................................................................................................................................................440
Le Centre de Suivi de Projets ............................................................................................................................440
Grer son temps .................................................................................................................................................443
Suivre les retours client avec les Centres de Contrle ...................................................................................444
Les autres Centres de Contrle .........................................................................................................................445
Leon 9.5. Rgles mtier
Prsentation ........................................................................................................................................................447
Exemple................................................................................................................................................. 447
Application sur un exemple concret .................................................................................................................447
Cration dune rgle mtier ................................................................................................................. 447
Leon 9.6. Les composants externes
Prsentation ........................................................................................................................................................451
Travail en quipe.................................................................................................................................. 451
Les projets volumineux ........................................................................................................................ 451
Les bases de donnes accdes par plusieurs projets .................................................................... 452
Les traitements utiliss dans plusieurs projets ................................................................................. 452
La possibilit de diffuser une fonctionnalit ou un ensemble de fonctionnalits........................... 452
Composant externe multiproduits....................................................................................................... 452
Etape par tape ...................................................................................................................................................453
Etape 1 : Cration dun composant externe....................................................................................... 453
Etape 2 : Utilisation du composant externe ....................................................................................... 456
Distribuer un composant externe .....................................................................................................................458
Distribution simple ............................................................................................................................... 458
Distribution professionnelle................................................................................................................. 458
GAF WinDev.book Page 15 Jeudi, 5. juillet 2012 9:16 09
16 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 9.7. Multi-configurations
Prsentation ........................................................................................................................................................460
Cration dune configuration de projet .............................................................................................................460
Gestion des configurations de projet ................................................................................................................461
Gnration multiple ............................................................................................................................................462
Leon 9.8. Le dbogueur
Prsentation ........................................................................................................................................................464
Dboguer une fentre ........................................................................................................................................464
Lancer le dbogueur............................................................................................................................. 464
Visualiser les informations sous le dbogueur .................................................................................. 465
Fentre de trace du dbogueur .........................................................................................................................466
Dboguer un projet .............................................................................................................................................467
Options avances du dbogueur .......................................................................................................................467
Leon 9.9. Lanalyseur de performances
Prsentation ........................................................................................................................................................469
Utiliser lanalyseur de performances ................................................................................................................469
Optimiser un traitement avec lanalyseur de performances .........................................................................470
Lire le rsultat de lanalyseur de performances................................................................................. 470
Choisir un traitement optimiser........................................................................................................ 470
Optimiser un traitement....................................................................................................................... 470
Leon 9.10. Import/Export
Importer des lments .......................................................................................................................................473
Exporter des lments .......................................................................................................................................474
Importations spcifiques ...................................................................................................................................475
Importation dun projet WebDev ......................................................................................................... 475
Importation dune fentre.................................................................................................................... 475
Importation Access............................................................................................................................... 476
Importation Visual Basic ...................................................................................................................... 476
Leon 9.11. Installation dune application
Prsentation ........................................................................................................................................................478
Update rseau/update Web ..............................................................................................................................478
Installation avec mise jour rseau................................................................................................... 478
Installation avec mise jour Internet.................................................................................................. 480
Editeur dinstallation ..........................................................................................................................................482
Questions/Rponses ..........................................................................................................................................483
Comment dsinstaller une application ralise avec WinDev ?....................................................... 483
Comment crer une installation par CD-ROM?.................................................................................. 483
Comment installer une application?................................................................................................... 483
GAF WinDev.book Page 16 Jeudi, 5. juillet 2012 9:16 09
Sommaire 17 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Leon 9.12. UML et 3-tiers
Quest-ce que UML? ............................................................................................................................................485
Les diagrammes grs par WinDev ..................................................................................................................485
Diagramme de classes......................................................................................................................... 485
Diagramme de cas dutilisation........................................................................................................... 485
Diagramme dobjets............................................................................................................................. 485
Diagramme de composants................................................................................................................. 485
Diagramme dactivit........................................................................................................................... 485
Diagramme de squence..................................................................................................................... 486
Diagramme de collaboration............................................................................................................... 486
Diagramme dtats-transitions............................................................................................................ 486
Diagramme de dploiement ................................................................................................................ 486
3-Tiers ..................................................................................................................................................................486
Le 3 tiers, c'est quoi ?........................................................................................................................... 486
Comment mettre en uvre le 3 tiers? ............................................................................................... 487
Manipulation des diffrentes couches ............................................................................................... 487
Leon 9.13. Modlisation souple
Principe ................................................................................................................................................................489
Manipulations .....................................................................................................................................................489
Leon 9.14. Multilingue
Quest-ce quune application multilingue? ......................................................................................................493
Choix des langues du projet ..............................................................................................................................493
Internationalisation de lanalyse .......................................................................................................................494
Internationalisation des lments du projet ...................................................................................................496
Caractristiques traduire.................................................................................................................. 496
Comment traduire toutes ces informations? ..................................................................................... 498
Saisie directe des traductions............................................................................................................. 498
Cas particuliers..................................................................................................................................... 499
Traduction avec WDMSG et WDTRAD................................................................................................. 501
Programmation du changement de langue ....................................................................................................502
Utilisation dun fichier de paramtres................................................................................................. 502
Utilisation des options de menu.......................................................................................................... 502
Gestion de lUnicode et des alphabets spcifiques ........................................................................................503
Conclusion
GAF WinDev.book Page 17 Jeudi, 5. juillet 2012 9:16 09
18 Sommaire (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
GAF WinDev.book Page 18 Jeudi, 5. juillet 2012 9:16 09
Introduction 19 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LICENCE DUTILISATION
Licence dutilisation du logiciel en version "Express"
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 d'utilisation du logiciel WinDev, dans cette version de dmonstration
(appele galement Version Express, Version d'valuation ou Version limite).
L'EVALUATEUR reprsente la personne (physique ou morale) installant et / ou utilisant le logiciel.
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 d'un tablissement reconnu par l'tat 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 d'acqurir et d'utiliser 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 d'tudes.
L'utilisation des applications cres dans un but autre que le test de courte dure est interdite.
Toute utilisation autre que l'essai 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
l'accord 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 qu'il se trouve en "mmoire centrale" (gale-
ment appele RAM) d'un ordinateur.
Ce logiciel ne peut tre utilis que pour la dure autorise.
3. Proprit du LOGICIEL
Ce logiciel est la proprit de PC SOFT. L'EVALUATEUR a simplement le droit d'utiliser ce LOGICIEL
selon les conditions dfinies.
4. Documentation
La duplication de la documentation, en totalit ou en partie, est strictement interdite.
GAF WinDev.book Page 19 Jeudi, 5. juillet 2012 9:16 09
20 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5. Utilisation
L'EVALUATEUR doit utiliser le LOGICIEL pour l'usage 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 d'enlever ou de tenter d'enlever les mentions de copyright pouvant apparatre
et/ou tant contenues dans le LOGICIEL.
La location ou le prt de ce LOGICIEL est interdit.
Il est interdit d'utiliser WinDev "Express" pour crer et diffuser tout ou partie d'outil de dveloppe-
ment, de LOGICIEL de cration d'applications, 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.
6. Absence de responsabilits
Le LOGICIEL et la documentation qui l'accompagne sont fournis en l'tat, SANS AUCUNE GARAN-
TIE D'AUCUNE SORTE. PC SOFT ne saurait tre tenu pour responsable pour tout dommage de quel-
que nature que ce soit, et en particulier en cas de perte ou dtrioration des donnes, en cas de
perte financire, en cas de perte d'exploitation, 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. L'EVALUATEUR est seul et unique responsable du fonctionnement et du
support des programmes qu'il aura ralis avec le LOGICIEL.
7. Cas particuliers
7.1 Compilateur d'aide
Si le LOGICIEL est accompagn du compilateur d'aide "MS Help Compiler", il est prcis que la
socit Microsoft en dtient les droits. PC SOFT ne dtient que le droit de permettre l'EVALUA-
TEUR de crer et diffuser des aides ralises l'aide de ce compilateur d'aide.
7.2 Impressions sous Linux
Si le LOGICIEL permet l'impression travers des serveurs LINUX, la licence de l'organisme Image-
Magick Studio LLC s'applique.
Cette licence est prsente sur le support et doit tre lue et accepte.
7.3 Fonctionnalits lies des services
Avertissement : avant d'utiliser une fonctionnalit relie des services ou des applications, et en
particulier Google, nous vous conseillons vivement de vous reporter la licence d'utilisation de
ce service ou de cette application. Certaines restrictions peuvent s'appliquer. Le contenu des
licences peut varier avec le temps.
PC SOFT dgage toute responsabilit de l'usage qui peut tre fait des fonctions d'accs natif. Il
vous appartient de vrifier que l'usage que vous faites respecte la licence du fournisseur de ser-
vice.
GAF WinDev.book Page 20 Jeudi, 5. juillet 2012 9:16 09
Introduction 21 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Acceptation de la licence :
Le fait de conserver et d'utiliser ce logiciel indique la comprhension et l'acceptation 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
GAF WinDev.book Page 21 Jeudi, 5. juillet 2012 9:16 09
22 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
GAF WinDev.book Page 22 Jeudi, 5. juillet 2012 9:16 09
Introduction 23 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
INTRODUCTION
Prliminaires
Attention : Ce manuel est un cours d'auto-formation. Il est conseill de consulter laide en ligne
lorsque vous utilisez WinDev.
Le manuel du cours d'auto-formation a pour objectif de vous faire dcouvrir WinDev, de vous fami-
liariser avec les diteurs et de vous apprendre les concepts de WinDev. Ce manuel n'est 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 d'une application sans avoir suivi ce cours, vous
perdrez du temps, beaucoup plus que deux jours.
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, tous les exercices sont illustrs. Toutefois, pour que les
concepts soient plus rapidement assimils, il est prfrable de suivre les manipulations.
WinDev voluant en permanence, les copies des fentres illustrant le cours peuvent tre diffren-
tes de celles du produit que vous possdez.
Laspect langage nest quun des nombreux aspects de dveloppement. En prenant en compte
tous les aspects du dveloppement, la programmation devient beaucoup plus simple.
Prsentation du cours dauto-formation
Le cours d'auto-formation a t conu pour vous permettre d'apprendre progressivement utiliser
WinDev. En suivant ce cours :
d'une part, vous dcouvrirez les concepts importants expliqus d'une faon informelle; en
effet dans ce cas, il s'agit de concepts acqurir et comprendre.
d'autre part, vous serez amen effectuer des manipulations pour illustrer les concepts qui
viennent d'tre 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 l'aide en ligne (accessible directement
depuis les diteurs ou dans le guide).
La taille dune leon nest pas obligatoirement proportionnelle son intrt ...
N'oubliez pas d'tudier ensuite les exemples livrs avec WinDev : ils sont trs didactiques !
GAF WinDev.book Page 23 Jeudi, 5. juillet 2012 9:16 09
24 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Comment accder l'aide en ligne ?
1. Sous l'diteur de code, une aide spcifique est directement accessible pour chaque nom
de fonction slectionn, grce la touche [F1].
2. Le bouton accessible depuis chaque fentre
3. Sous les diteurs, directement par la touche [F1].
4. Sous les diteurs, le menu d'aide (symbolis par "?") vous permet d'obtenir le sommaire de
l'aide ou de rechercher une information prcise.
Lgende des symboles
Si vous connaissez WinDev 16 ...
Si vous connaissez dj WinDev 16, 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, ...
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 dans
le volet "Assistants, Exemples et Composants" de WinDev.
Ce symbole prsente une "Astuce", la lecture du texte associ est vivement conseille.
Ce symbole prsente un "Avertissement", la lecture du texte associ est primordiale.
Ce symbole prsente une "Note", la lecture du texte associ est conseille.
Ce symbole prsente le rsultat dun "Test", la lecture du texte associ est conseille.
GAF WinDev.book Page 24 Jeudi, 5. juillet 2012 9:16 09
Introduction 25 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mdecin ou vtrinaire en dplacement
Prises dinformations sur un lieu de passage : salon professionnel, rue pour un sondage,
stade, ...
Retour de matriel de location encombrant (outils, vhicules, ...) directement sur le parking

WinDev est un outil 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 !
GAF WinDev.book Page 25 Jeudi, 5. juillet 2012 9:16 09
26 Introduction (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
GAF WinDev.book Page 26 Jeudi, 5. juillet 2012 9:16 09
PARTIE 1
A la dcouverte de
WinDev
GAF WinDev.book Page 27 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 28 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 29 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 1.1. CONCEPTS
Ce que vous allez apprendre dans cette leon ...
Les principaux concepts de WinDev
Terminologie et vocabulaire employs dans WinDev
Dure estime : 10 mn
GAF WinDev.book Page 29 Jeudi, 5. juillet 2012 9:16 09
30 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WinDev est un AGL (Atelier de Gnie Logiciel) complet permettant de dvelopper des applications
Windows dans de nombreux domaines : gestion, industrie, mdical, ...
Les applications dveloppes peuvent inclure laccs des informations stockes dans des bases
de donnes.
En standard, WinDev inclut un puissant moteur de base de donnes HyperFileSQL. Le moteur
HyperFileSQL est disponible en version rseau, et en version Client/Serveur.
De nombreuses autres bases de donnes peuvent tre utilises (comme nous le verrons dans la
suite de ce cours) mais il est conseill dutiliser HyperFileSQL pour vos applications afin doptimi-
ser vos traitements de fichiers 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.
Mais pour bien dbuter ce cours dauto-formation, nous allons poser les bases : les concepts et le
vocabulaire de base ncessaire pour aborder 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.
Pour crer un excutable, WinDev propose de crer un projet. Un projet relie entre eux les diff-
rents lments du programme, et les organise. Cest partir du projet que pourra tre cr le pro-
gramme 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 souvent
"Tables" dans de nombreuses bases de donnes). Ces fichiers contiendront les donnes de
lapplication.
N
o
t
e
s
La description des fichiers de donnes dans lanalyse nentrane pas leur cra-
tion. Les fichiers de donnes sont crs physiquement uniquement lexcution
de lapplication.
GAF WinDev.book Page 30 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 31 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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).
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 ter-
mes utiliss dans WinDev. En effet, si vous avez travaill avec dautres outils, de nombreux termes
sont spcifiques WinDev, et ne recouvrent pas toujours la mme ralit que dans dautres logi-
ciels.
Dans lanalyse
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 visua-
liser 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. Lensem-
ble des rubriques dun fichier de donnes permet de dfinir la structure dun enregistrement.
GAF WinDev.book Page 31 Jeudi, 5. juillet 2012 9:16 09
32 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cl/index : Avec WinDev et sa base de donnes HyperFileSQL, 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 HyperFileSQL a plusieurs rubriques cls, en excution, un seul fichier dindex
sera cr.
Dans les fentres et les tats
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 peu-
vent provenir de la base de donnes, de fichiers texte, de champs prsents dans les fentres, ...
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.
Nous avons vu les termes de base connatre pour raliser une application WinDev. Nous allons
commencer la programmation en concevant nos premires fentres.
I
m
p
o
r
t
a
n
t
Dans une application, lentit "NomClient" peut correspondre :
au nom dun champ dune fentre
au nom dun champ dun tat
la rubrique dun fichier de donnes
une variable dfinie par le programmeur
GAF WinDev.book Page 32 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 33 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 1.2. ENVIRONNEMENT DU COURS
DAUTO-FORMATION
Ce que vous allez apprendre dans cette leon ...
Lancement de WinDev
Configurer WinDev pour suivre le Cours dauto-formation
Dure estime : 5 mn
GAF WinDev.book Page 33 Jeudi, 5. juillet 2012 9:16 09
34 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Pour son utilisation, WinDev propose un paramtrage de lenvironnement. Plusieurs modes sont
votre disposition :
Environnement simplifi : Ce mode permet de dcouvrir les principales fonctionnalits de Win-
Dev.
Environnement complet : Ce mode propose toutes les fonctionnalits de WinDev.
Rcuprer la configuration de votre environnement XX : Ce mode reprend les fonctionnalits
disponibles en version XX (si la version XX est installe sur votre poste).
A tout moment, quel que soit le type denvironnement utilis, il est possible dajouter ou de suppri-
mer laccs certaines fonctionnalits non utilises.
Pour suivre ce cours dauto-formation, nous vous conseillons de travailler avec un environnement
simplifi. Les fonctionnalits avances seront ajoutes au fur et mesure de lavancement de ce
cours.
Mise en place
!
Pour utiliser lenvironnement simplifi de WinDev :
1. Lancez WinDev 17.
2. Si vous navez jamais lanc WinDev 17, un assistant de bienvenue se lance. Cet assistant
vous permet de choisir votre environnement de travail.
3. Slectionnez "Environnement simplifi" et validez.
!
Si WinDev a dj t lanc sur votre poste, cet assistant de bienvenue napparat pas. Pour
vrifier et modifier si ncessaire la configuration de votre environnement, effectuez les opra-
tions suivantes :
1. Slectionnez loption "Outils .. Options .. Options de lenvironnement".
2. Cliquez sur "Relancer lassistant de configuration de lenvironnement".
3. Slectionnez "Environnement simplifi" et passez lcran suivant. Le mode slectionn
est affich. Passez lcran suivant.
4. Choisissez la configuration de votre cran.
5. Validez votre choix.
6. Validez les options de lenvironnement.
Voil, WinDev est configur pour suivre le cours dauto-formation.
GAF WinDev.book Page 34 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 35 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 1.3. MES PREMIRES FENTRES
Ce que vous allez apprendre dans cette leon ...
Comment crer une fentre compteur
Comment saisir un texte
Comment faire un calcul
Crer une fentre avec menu
Dure estime : 30 mn
GAF WinDev.book Page 35 Jeudi, 5. juillet 2012 9:16 09
36 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. Ces quel-
ques 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.
Dans cette premire leon, nous allons crer les fentres suivantes :
Une fentre compteur,
Une fentre de saisie de texte,
Une fentre de calcul,
Un menu pour rassembler les fentres cres prcdemment.
Ces fentres seront regroupes pour des besoins pratiques dans un projet.
Ma premire fentre : un compteur
Prsentation
Nous allons raliser la fentre suivante :
Le compteur numrique sera incrment ou dcrment avec les boutons flchs.
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 Win-
Dev. De plus, cette fentre vous permettra de dcouvrir des concepts fondamentaux pour la suite
de ce cours.
Ralisation
!
Lancez WinDev 17 (si ce nest dj fait). Si ncessaire, fermez le projet en cours pour faire
apparatre la fentre de bienvenue.
!
Ouvrez le projet "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, il est galement possible de slection-
GAF WinDev.book Page 36 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 37 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
ner loption de menu "? .. Guide dauto-formation .. Mes premires fentres (Exercice)".
!
Pour crer la fentre :
1. Cliquez sur le bouton dans la barre doutils de WinDev :
Une fentre en forme de roue saffiche. Cette fentre permet de crer tous les lments pou-
vant tre associs un projet.
2. Survolez la catgorie "Fentre", puis slectionnez loption "Fentre". Lassistant de cration
de fentres saffiche.
3. Slectionnez "Vierge" dans la liste des fentres "standard" affiche sur la gauche. Dans la
liste des gabarits prsente sur la droite, slectionnez par exemple le gabarit "Elegant". Vous
pouvez choisir un autre gabarit propos dans la liste.
4. Validez. La fentre est automatiquement cre sous lditeur.
Nous allons renseigner les informations de la fentre (nom, titre, description).
!
Faites un clic droit sur la fentre qui vient dtre cre et slectionnez loption "Description"
dans le menu contextuel qui saffiche. La fentre de description saffiche. Cette fentre con-
tient par dfaut le nom de la fentre "FEN_SansNom1".
I
m
p
o
r
t
a
n
t
Dans cette partie, nous nous concentrons sur la cration de fentres simples. Le
projet "Mes_Premires_Fentres" est un projet vide, dj cr. La cration de
projet sera aborde dans une prochaine leon.
N
o
t
e
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 dobjet. Nous verrons cette charte de pro-
grammation en dtail plus loin dans ce cours.
GAF WinDev.book Page 37 Jeudi, 5. juillet 2012 9:16 09
38 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Saisissez les informations suivantes :
1. Le nom "logique" de la fentre : remplacez "FEN_SansNom1" par "FEN_Compteur".
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. La description de la fentre : "Fentre permettant de grer un compteur". Cette description
nest pas destine lutilisateur final mais au dveloppeur. Cette description est affiche par
exemple dans le dossier, lors de la visualisation des lments du projet, ...
Remarque : Lemplacement sera automatiquement renseign lors de lenregistrement de la
fentre. Cette zone contient le chemin complet du fichier correspondant la fentre.
3. Le titre de la fentre : remplacez "Titre de la fentre" par "Exemple dun compteur". Ce titre
est affich dans la barre de titre de la fentre. Ce titre permet de renseigner lutilisateur final
sur les fonctionnalits de la fentre.
!
Validez (bouton vert). Le titre apparat dans la barre de titre.
!
Enregistrez la fentre en cliquant sur licne . Par dfaut :
le nom de llment est le nom logique de la fentre.
lemplacement propos correspond au rpertoire du projet.
Validez en cliquant sur le bouton vert.
GAF WinDev.book Page 38 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 39 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Gestion du compteur
Pour grer le compteur numrique, vous allez crer :
un champ dans lequel va safficher la valeur numrique,
un champ spin (compos de deux boutons) qui va permettre dajouter 1 ou de soustraire 1 au
compteur.
WinDev permet de crer ces diffrents champs en une seule opration grce aux champs prdfi-
nis proposs la cration.
!
Pour crer les diffrents champs du compteur :
1. Cliquez sur la flche prsente ct de licne de la barre doutils. La liste des diff-
rents champs de saisie prdfinis saffiche. Le champ numrique de type "Entier + Spin" cor-
respond ce que nous voulons.
2. Cliquez sur le champ "Entier + Spin".
3. Cliquez dans la fentre lendroit o le champ doit tre cr.
4. Sauvegardez la fentre.
Nous allons maintenant modifier les caractristiques des champs que nous venons de crer.
!
Cliquez dans la fentre.
!
Double-cliquez sur le champ de saisie.
La fentre de description du champ apparat.
Cette fentre contient les informations gnres par dfaut : le nom du champ
"SAI_Entier_Spin" ("SAI_" correspondant au prfixe utilis pour identifier les champs de saisie
dans la charte de programmation), son libell et son type.
N
o
t
e
Une fentre de champs prdfinis peut tre affiche pour tous les champs pos-
sdant une flche droite de leur icne.
Un clic sur licne associe au champ permet de crer le champ par dfaut.
Un clic sur la flche permet dafficher la liste des champs prdfinis. Il suffit alors
de cliquer sur le type de champ voulu.
N
o
t
e
s
Il est trs important de sauvegarder la fentre ds sa cration.
Lenregistrement de la fentre permet par la suite WinDev :
de proposer le nom des champs automatiquement dans le code.
de proposer le renommage automatique des champs dans le code.
GAF WinDev.book Page 39 Jeudi, 5. juillet 2012 9:16 09
40 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons modifier ces informations :
1. Saisissez le nom "SAI_Compteur".
2. Entrez le libell "Compteur".
3. Ce champ est de type numrique.
4. Modifiez le format (option "Masque de saisie") : droulez la liste des formats proposs par
dfaut et slectionnez "999 999" (il est galement possible de saisir directement la valeur
999 999" dans le champ "Masque de saisie"). Le masque "999 999" signifie que :
le nombre peut comporter jusqu 6 chiffres.
le nombre ne comporte aucune partie dcimale.
le sparateur de milliers est un espace.
N
o
t
e
s
Par dfaut, le masque de saisie du champ correspond au masque numrique
dfini par le projet (option "Projet .. Description du projet", onglet "Langues").
Ainsi, le mme masque est utilis automatiquement dans tous les champs
numriques de l'application.
Cette fonctionnalit est trs utile dans les applications multilingues.
N
o
t
e
s
Deux types de masques sont disponibles :
Le masque daffichage : il correspond au format utilis lorsque la valeur est
affiche dans le champ.
Le masque de saisie : il correspond au format utilis lorsque lutilisateur va sai-
sir la valeur dans le champ.
GAF WinDev.book Page 40 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 41 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous voulons donner une valeur initiale au compteur. Pour cela, il suffit dinitialiser le contenu du
champ avec cette valeur (onglet "Contenu").
!
Cliquez sur longlet "Contenu" et saisissez la valeur initiale, par exemple, "100".
Bien entendu, comme partout dans WinDev, vous pouvez procder de manire traditionnelle
en saisissant la ligne suivante en WLangage dans le code dinitialisation du champ :
!
Validez les informations du champ.
Sous lditeur, le champ contient maintenant la valeur 100. Ce concept se nomme "Live
Data" : vous voyez les donnes en temps rel ! Vous retrouverez ce concept un peu plus tard,
lors de la manipulation des fichiers de donnes.
!
Enregistrez la fentre. Un "warning" et plusieurs erreurs de compilation apparaissent automa-
tiquement dans le volet "Erreur de compilation".
Ces erreurs indiquent que le nom "SAI_Entier_Spin" est inconnu. Ce nom est utilis dans un
des traitements de la fentre FEN_Compteur. WinDev a dtect quun champ a t renomm
(dans notre cas, le nom du champ de saisie a t modifi), et affiche une erreur de compila-
tion pour chaque utilisation du champ. Le menu contextuel de lerreur (affich par un clic droit
sur lerreur) propose de renommer automatiquement ce champ dans toutes les utilisations
qui sont faites dans la fentre (notamment dans les traitements WLangage).
Slectionnez loption "Renommez toutes les rfrences" du menu contextuel de lerreur.
!
Le champ "Spin" a automatiquement t cr ct du champ de saisie. Ce champ affiche
deux petites flches permettant de modifier la valeur prsente dans le champ de saisie. Nous
allons maintenant le modifier pour grer la valeur du compteur.
N
o
t
e
s
Beaucoup de dveloppeurs feraient cette opration par programme : il faudrait
crire une ligne de code pour affecter une valeur dans ce champ.
Avec WinDev, pas besoin de saisir du code. Ce type dinformation fait partie des
caractristiques du champ.
SAI_Compteur = 100
N
o
t
e
s
Dans cette ligne de code, le signe "=" permet daffecter le champ "SAI_Compteur"
avec la valeur indique. La syntaxe utilise est la suivante :
<Destination> = <Valeur affecter>
GAF WinDev.book Page 41 Jeudi, 5. juillet 2012 9:16 09
42 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Affichez le code du champ Spin :
Affichez le menu contextuel du champ (clic droit sur le champ).
Slectionnez loption "Code" prsente dans le menu contextuel.
!
Ce champ contient en plus du code dinitialisation, deux codes spcifiques :
Le code dincrmentation : ce code est excut lorsque lutilisateur manipule le champ spin
pour augmenter une valeur.
Le code de dcrmentation : ce code est excut lorsque lutilisateur manipule le champ
spin pour diminuer une valeur.
!
Dans le code dincrmentation, le code suivant est affich :
Cette ligne de code signifie que lon ajoute 1 la valeur du champ SAI_Compteur.
Le champ SAI_Compteur est alors manipul comme une variable.
Le principe est le mme pour le code de dcrmentation :
Ce code signifie que lon enlve 1 la valeur du champ SAI_Compteur.
!
Testons cette fentre :
1. Enregistrez les modifications en cliquant sur licne (ou sur loption "Fichier .. Enregis-
trer", ou par la combinaison de touches [Ctrl]+[S]).
2. Cliquez sur licne "GO" (ou [F9]).
3. Testez les diffrents champs, et observez les changements du champ de saisie.
Tout dveloppeur sait que tester un programme est souvent long, voire fastidieux. Avec Win-
Dev, en UN CLIC, vous testez la fentre, ltat, ou la procdure que vous tes en train de rali-
ser. Cest la fois simple et rapide!
!
Cliquez sur le bouton "x" situ dans la barre de titre pour fermer la fentre.
!
Lditeur de WinDev rapparat.
Amlioration du look de la fentre et cration dun bouton pour quitter la fentre
Lors de ce premier test, vous avez remarqu que votre fentre est trop grande, et quelle peut tre
redimensionne alors quelle ne contient que quelques champs.
Nous allons revoir rapidement linterface de cette fentre.
!
Pour rduire la taille de la fentre sous lditeur :
1. Cliquez sur la fentre : des poignes bleues apparaissent autour de la fentre (selon le
gabarit utilis, 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 de la souris enfonc.
SAI_Compteur++
N
o
t
e
s
Vous pouvez galement utiliser les syntaxes :
SAI_Compteur += 1
SAI_Compteur = SAI_Compteur + 1
SAI_Compteur--
GAF WinDev.book Page 42 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 43 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
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".
3. Validez.
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 cli-
quant sur licne "X" de la barre de titre, mais ce nest pas trs convivial.
!
Pour crer le bouton de fermeture :
1. Cliquez sur la flche ct de licne dans la barre doutils. La liste des boutons pr-
dfinis saffiche.
2. Cliquez sur le bouton de type "Fermer".
3. Cliquez dans la fentre la position o le bouton doit tre cr.
!
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 prdfinie 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".
4. Fermez la fentre de description du bouton.
Vous pouvez facilement dplacer le bouton de fermeture : cliquez sur le bouton de fermeture avec
le bouton gauche de la souris. Tout en maintenant le bouton de la souris enfonc, faites glisser la
souris (et le champ) lemplacement voulu.
!
Relancez le test de cette fentre, pour visualiser le rsultat en excution.
Nous en avons termin avec notre compteur!
N
o
t
e
s
Nous approfondirons les conseils dinterface et dergonomie dans un prochain
chapitre de ce cours.
N
o
t
e
s
WinDev propose plusieurs types pour les boutons. Nous les verrons en dtail
dans le chapitre consacr lergonomie.
Pour fermer une fentre, le bouton utilis doit tre de type "Abandon".
GAF WinDev.book Page 43 Jeudi, 5. juillet 2012 9:16 09
44 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Grer la saisie dun texte
Nous allons maintenant voir comment manipuler un champ de saisie texte.
Dans une nouvelle fentre, vous allez maintenant crer un champ de saisie. Ce champ sera utilis
pour saisir un prnom. Un bouton permettra dafficher ce prnom.
!
Pour crer une nouvelle fentre :
1. Cliquez sur licne .
2. Survolez la catgorie "Fentre", puis slectionnez loption "Fentre". Lassistant de cration
de fentres saffiche.
3. Slectionnez "Vierge" dans la liste des fentres standards affiche sur la gauche. Dans la
liste des gabarits prsente sur la droite, le gabarit "Elegant" est propos automatiquement.
4. Validez
5. Faites un clic droit sur la fentre puis slectionnez loption "Description".
6. Donnez la fentre le nom "FEN_Saisie", le titre et la description "Exemple de saisie". Vali-
dez la fentre de description.
7. Enregistrez la fentre.
!
Pour crer le champ de saisie :
1. Cliquez sur la flche prsente ct de licne . La liste des champs de saisie propo-
ss par dfaut saffiche. Slectionnez "Texte simple" puis positionnez le champ dans la fen-
tre.
2. Faites un clic droit sur le champ et slectionnez loption "Description".
3. Modifiez les caractristiques du champ.
Ce champ a pour nom: "SAI_Prnom".
Ce champ a pour libell : "Prnom"
Ce champ est de type texte.

N
o
t
e
s
Par dfaut, les caractres seront saisis en majuscules ou en minuscules selon la
position de la touche [CAPSLOCK] du clavier. Ce genre de saisie peut tre trs
gnant lors dune recherche par exemple.
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.
GAF WinDev.book Page 44 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 45 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Modifiez le format du champ de saisie (masque de saisie) et slectionnez "1
re
lettre en
majuscule" (la premire lettre saisie sera en majuscule et les autres seront en minuscules). Ce
masque de saisie va nous tre utile pour afficher le prnom saisi avec une majuscule comme
premire lettre. Validez.
!
Le libell du champ apparat tronqu sous lditeur. Pour afficher correctement le champ :
1. Slectionnez le champ.
2. Utilisez loption "Adapter la taille" du menu contextuel.
!
Pour crer le bouton "Afficher" :
1. Cliquez sur licne , puis positionnez le champ dans la fentre.
2. Cliquez sur le bouton. Le texte affich dans le bouton passe en dition. Saisissez le libell
"Afficher". Le nom du bouton devient automatiquement "BTN_Afficher".
Pour afficher le rsultat de la saisie, vous auriez peut-tre envie de crer une nouvelle fentre et
dafficher le rsultat dans un champ "Libell". Or, il existe en WLangage des fonctions permettant
dafficher un rsultat dans des fentres systme. Ces fonctions se nomment Info ou Erreur.
Pour notre exemple, nous utiliserons la fonction Info.
!
Saisissez le code suivant dans le code de clic du bouton "Afficher" (option "Code" du menu
contextuel du champ) :
Remarque : Ds la saisie des trois premiers caractres, WinDev propose tous les mots du vocabu-
laire WLangage contenant ces caractres. Lassistance au dveloppement est pousse trs loin.
Vous ne pouvez plus vous tromper en saisissant le nom dun lment : les erreurs de syntaxes
sont minimises. Il suffit de slectionner le mot dsir et de valider par la touche [Entre]. Vous
pourrez ainsi vous concentrer sur lalgorithme. Vous constaterez galement que mme les cha-
nes de caractres disposent de la saisie assiste. De cette faon, une question rcurrente sera
propose avec la mme formulation aux diffrents endroits o elle est utilise.
La fonction Info affiche dans une bote de dialogue le message pass en paramtre. Notre mes-
sage est construit partir du texte "Vous avez saisi " et de la valeur du champ "SAI_Prnom". Le
signe "+" indique une opration dite de "concatnation" entre deux chanes.
Info("Vous avez saisi " + SAI_Prnom)
N
o
t
e
s
Cest pour cela que la charte de programmation est trs importante. Tous les l-
ments manipuls dans le code de lapplication utilisent la mme norme et peu-
vent ainsi tre facilement retrouvs lors de la saisie du code.
N
o
t
e
s
En saisissant ce code sous lditeur de code, vous constatez que les diffrents
lments saisis utilisent des couleurs diffrentes. En effet, lditeur de code per-
met ainsi didentifier rapidement les diffrents lments 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.
GAF WinDev.book Page 45 Jeudi, 5. juillet 2012 9:16 09
46 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour avoir plus dinformations sur cette fonction, affichons laide en ligne : il suffit de se posi-
tionner sur le nom de la fonction, et dutiliser la touche [F1].
Laide de la fonction saffiche dans un "browser daide" spcifique.
A tout moment, si vous possdez un accs Internet valide, il est possible dafficher la page
daide actuelle. Si vous avez accs Internet, laide souvre directement dans votre naviga-
teur.
GAF WinDev.book Page 46 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 47 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Enregistrez la fentre et testez-la (en cliquant sur licne puis sur ).
!
Pendant le test :
1. Cliquez sur le bouton "Afficher".
2. Validez.
3. Pour sortir du test et revenir sous lditeur de fentres, cliquez sur licne "X" de la barre de
titre.
Grer la saisie dun numrique pour faire un calcul
Dans la mme 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".
Nous allons sparer les deux parties de la fentre grce un sparateur.
!
Pour crer un sparateur :
1. Slectionnez loption "Insertion .. Champ .. Sparateur".
2. Dans lassistant qui se lance, indiquez le sens du sparateur (horizontal) et son nom.
3. Validez lassistant.
4. Redimensionnez si ncessaire le sparateur afin quil occupe toute la largeur de la fentre.
5. Dplacez ensuite le sparateur sa position finale (sous le champ de saisie et le bouton
existants).
Remarque : Le sparateur peut galement tre cr en utilisant directement licne associe (cli-
quez dans la barre dicnes sur "Autre" puis sur licne ).
N
o
t
e
s
Laide en ligne de WinDev, WebDev et WinDev Mobile est disponible sur Internet.
Laide est donc accessible depuis nimporte quel poste disposant dun accs
Internet, sans que le produit soit forcment install. Cette aide est mise jour
rgulirement.
Chaque internaute peut ajouter des commentaires sur les pages de
documentation : explications personnelles, exemples, liens, ...
N
o
t
e
s
Laide en ligne de WinDev permet de consulter les informations dtailles con-
cernant les 2500 fonctions du WLangage. Laide en ligne contient galement
laide des diteurs, des champs, des astuces, ...
Laide en ligne est commune WinDev, WebDev et WinDev Mobile. Les pages
affiches correspondent au produit en cours dutilisation.
Pour lancer directement laide en ligne Internet depuis le produit :
1. Slectionnez loption "Outils .. Options .. Options gnrales de WinDev".
2. Dans longlet "Aide", slectionnez le mode daccs la base daide.
GAF WinDev.book Page 47 Jeudi, 5. juillet 2012 9:16 09
48 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour crer le champ de saisie du prix HT :
1. Cliquez sur la flche droite de licne . La liste des diffrents champs de saisie dis-
ponibles saffiche. Slectionnez le champ "Montaire" et positionnez le champ dans la fen-
tre.
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 + Euro".
4. Validez.
!
Pour crer le champ dans lequel sera affich le rsultat :
1. Cliquez sur la flche droite de licne . La liste des diffrents champs de saisie dis-
ponibles saffiche. Slectionnez le champ "Montaire" et positionnez le champ dans la fen-
tre.
2. Saisissez les informations du champ : faites un clic droit sur le champ et slectionnez
loption "Description".
Indiquez le nom du champ "SAI_PrixTTC".
Modifiez le libell par "Prix TTC".
Slectionnez le type "Montaire + Euro".
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.
Il existe galement des champs de saisie "Numriques" (pour plus de dtails, consultez laide en
ligne).
Le calcul du montant TTC va tre ralis 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).
2. Dans le code "A chaque modification", saisissez le code suivant :
3. Fermez la fentre de code (option "Fichier .. Fermer" ou licne "x" de la fentre de code).
4. Enregistrez la fentre.
5. Testez la fentre (bouton ). Saisissez une valeur dans le champ "Prix HT". Le rsultat
apparat immdiatement dans le champ "Prix TTC".
6. Fermez la fentre de test.
Ce 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").
// On fige la TVA 19.6% pour lexemple
// Cela aurait pu tre une variable quelconque
// provenant dune base de donnes
SAI_PrixTTC = SAI_PrixHT * 1.196
GAF WinDev.book Page 48 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 49 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour crer le champ combo de slection de la TVA :
1. Cliquez sur licne puis cliquez dans la fentre la position o le champ doit tre cr
( ct du champ "Prix HT").
2. Lassistant de cration de combo saffiche. Cet assistant permet de dfinir simplement les
principales caractristiques du champ.
3. Slectionnez loption "Remplir la combo par programmation ou saisir directement une liste
de valeurs". Affichez lcran suivant.
4. Laissez les options proposes par dfaut. Affichez lcran suivant.
5. Saisissez la liste des valeurs de TVA possibles :
5.5
Appuyez sur la touche ENTREE
19.6
Appuyez sur la touche ENTREE
25.
6. Affichez lcran suivant, et donnez un nom au champ (COMBO_TVA) et un libell (TVA).
7. Validez.
Nous allons maintenant modifier le code du champ "Prix HT" pour prendre en compte le montant
de la TVA slectionn dans la combo.
!
Pour prendre en compte le montant de la TVA slectionn :
1. Affichez le code du champ "Prix HT" (option "Code" du menu contextuel).
2. Modifiez le code de la faon suivante :
Ce code calcule le montant TTC en utilisant la valeur slectionne dans la combo (donne
obtenue avec la proprit ..ValeurAffiche). Le contenu de la combo tant une chane de
caractres, la fonction Val permet dobtenir une valeur numrique afin de calculer le montant
TTC.
3. Testez votre fentre. Saisissez une valeur dans le champ "Prix HT". Le rsultat apparat
immdiatement dans le champ "Prix TTC" en fonction de la TVA slectionne. Cependant si
vous changez le taux de TVA, la valeur du champ "Prix TTC" nest pas modifie. Nous allons
maintenant corriger ce problme.
4. Fermez la fentre. Lditeur de code est de nouveau affich.
!
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 "A chaque modification" de "Prix HT" dans le code
"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 "Prix HT".
3. Utilisez les touches "CTRL" + "C".
4. Affichez le code du champ combo "TVA".
SAI_PrixTTC = SAI_PrixHT*(1+Val(COMBO_TVA..ValeurAffiche)/100)
N
o
t
e
s
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>.
GAF WinDev.book Page 49 Jeudi, 5. juillet 2012 9:16 09
50 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5. Placez-vous dans le traitement "Slection dune ligne", et utilisez les touches "CTRL"+ "V".
6. Testez votre fentre et slectionnez les diffrentes valeurs dans la 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 pro-
cdure. Cest ce que nous allons faire maintenant.
Utiliser une 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. Slectionnez loption de menu "Code .. Refactoring .. Crer une procdure locale contenant
le code slectionn".
3. Donnez le nom de la procdure crer : CalculTVA. Validez.
4. La procdure locale "CalculTVA" est automatiquement cre avec le code slectionn. Votre
code a t remplac par lappel la procdure "CalculTVA()".
5. Pour terminer, il suffit de remplacer le second code de calcul de la TVA (prsent dans le
code "A chaque modification" du champ "Prix HT") par lappel la procdure "CalculTVA()".
6. Voil, cest termin. Vous pouvez enregistrer et tester votre fentre pour vrifier si tout fonc-
tionne correctement.
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 licne pour crer une nouvelle fentre.
GAF WinDev.book Page 50 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 51 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Survolez la catgorie "Fentre", puis slectionnez loption "Fentre".
3. Dans lassistant qui saffiche, slectionnez "Vierge" et validez.
4. Donnez un nom et un titre et une description cette fentre. Cette fentre a pour nom
"FEN_Menu" et pour titre et description "Menu principal".
5. Enregistrez la fentre.
6. Slectionnez loption de menu "Fentres .. Menu principal .. Ajouter le menu principal". 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 directement
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).
GAF WinDev.book Page 51 Jeudi, 5. juillet 2012 9:16 09
52 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Ralisez 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.
2. Dans le menu contextuel de loption "Fichier", slectionnez loption "Transformer pour
drouler 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 "&Compteur".
4. Dans le menu contextuel de loption "Compteur", slectionnez "Ajouter aprs" et saisissez
"&Saisies".
!
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 slection-
nez "F4". Puis cochez la case "Alt".
4. Validez.
Lorsque toutes les options de menu sont saisies, visualisez la fentre (option "Affichage .. Afficher
la fentre" ou la combinaison de touches [SHIFT]+[F9]). Ce mode de visualisation permet de visua-
liser laspect final du menu. Pour fermer cette fentre, utilisez le bouton "Fermer" de la tlcom-
mande de laperu.
N
o
t
e
s
Rappel : Le "&" permet de dfinir la lettre dappel de loption de menu.
GAF WinDev.book Page 52 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 53 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 :
Fermez ensuite la fentre de code. La fentre en cours ddition apparat.
2. Dans la fentre, slectionnez loption de menu "Compteur". Cette option va permettre
douvrir la fentre "Compteur". Dans le menu contextuel, slectionnez loption "Code". Dans la
fentre de code qui souvre, saisissez le code suivant :
Fermez la fentre de code.
3. Rptez cette opration pour loption "Saisies" et saisissez le code suivant :
A
s
t
u
c
e
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 majuscules, mme si ce
nest pas la lettre dappel. La lettre dappel est souligne (utilisez le carac-
tre "&").
Si un choix de menu appelle une fentre de traitement, 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).
GAF WinDev.book Page 53 Jeudi, 5. juillet 2012 9:16 09
54 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 quit-
ter lapplication.
!
Enregistrez et testez la fentre.
!
Slectionnez une des options de menu.
!
Cliquez sur loption "Fichier .. Quitter" pour quitter le programme.
N
o
t
e
s
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 (option "Code .. Langue du code .. Convertir en
anglais").
Dans cette documentation, seuls les termes franais seront utiliss. Laide en
ligne indique pour chaque terme sa traduction en anglais.
N
o
t
e
s
Manipuler les options de menu par programmation
Le WLangage offre diverses fonctions et proprits permettant de manipuler les
options de menu.
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").
GAF WinDev.book Page 54 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 55 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 1.4. BASES DE PROGRAMMATION
Ce que vous allez apprendre dans cette leon ...
Les diffrents types de variables
Instructions de base du WLangage
Procdures et fonctions
Traitement des chanes, des numriques et des montaires
Traitement des dates et des heures
Dure estime : 30 min
GAF WinDev.book Page 55 Jeudi, 5. juillet 2012 9:16 09
56 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 :
Quelques exemples :
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 varia-
bles pourront tre utilises dans tous les traitements du projet et des lments du projet (fen-
tres, 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.
NomVariable EST UN(e) TypeVariable
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
GAF WinDev.book Page 56 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 57 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Toutes les variables dclares ailleurs sont des variables locales.
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.
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.
Quelques exemples
A
t
t
e
n
t
i
o
n
!
La plupart des dveloppeurs est tente de dclarer toutes ses variables en "glo-
bal" dans un projet. Ce type de programmation est en effet "facile". Les variables
tant toutes globales, elles sont alors manipulables depuis nimporte quel traite-
ment.
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
ensuite 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.
SI 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
GAF WinDev.book Page 57 Jeudi, 5. juillet 2012 9:16 09
58 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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.
Quelques exemples
Commentaires
Pour saisir des commentaires dans le code, il suffit de commencer le code par // (deux caractres
"/").
Exemple :
CAS "Samedi", "Dimanche"
// Cest le week-end
AUTRES CAS
// Cest un autre jour
FIN
N
o
t
e
s
Le WLangage propose galement des boucles de type POUR TOUT, FIN permet-
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.
Ind est un entier = 0
TANTQUE Ind<Maximum
Ind ++
FIN
Ind est un entier = 0
BOUCLE
Ind ++
SI Ind>Maximum ALORS SORTIR
FIN
POUR Ind = 1 A 100 // Il nest pas ncessaire de dclarer Ind
Cpt = Cpt + 1
FIN
// Ceci est une ligne de commentaire
GAF WinDev.book Page 58 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 59 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mot-cl MoiMme
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, ...) indpendant du
champ en cours.
Exemple pratique sur les diffrentes instructions de base
Aprs avoir prsent les principales instructions de base, rien ne vaut un petit test rel !
!
Lancez WinDev 17 si ce nest dj fait. Fermez le projet en cours.
!
Dans la fentre de bienvenue, cliquez sur loption "Cours dauto-formation" et slectionnez le
projet "Bases de la programmation".
Astuce : il est galement possible de slectionner loption de menu "? .. Guide dauto-forma-
tion .. Bases de la programmation".
!
Ouvrez la fentre "FEN_ProcedureBoucle.wdw" (option "Fichier .. Ouvrir" ou double-clic sur le
nom de la fentre dans le volet "Explorateur de projet"). Cette fentre prsente diffrents
exemples.
!
Lancez le test de cette fentre (icne "GO").
1. Cliquez sur "Boucles".
2. Testez les diffrents exemples.
3. Cliquez sur "Si / Selon".
4. Testez les diffrents exemples.
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.
A
s
t
u
c
e
Vous pouvez mettre en commentaires plusieurs lignes de code en slectionnant
au clavier (ou la souris) les lignes mettre en commentaires puis en appuyant
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).
MoiMme..Libell = "Nouveau libell"
A
s
t
u
c
e
Pour rechercher rapidement une fentre dans le projet en cours, utilisez la com-
binaison de touches [CTRL] + [E]. Une fentre saffiche permettant de raliser
une recherche sur toutes les fentres contenant la suite de lettres saisies dans le
champ de recherche.
GAF WinDev.book Page 59 Jeudi, 5. juillet 2012 9:16 09
60 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 : sous
WinDev, 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.
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 pro-
cdure 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
"locale".
Si la procdure peut tre appele "depuis plusieurs fentres", la procdure doit tre "glo-
bale".
A propos du passage des paramtres
Dans le projet "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.
Exemple :
Une fentre peut galement renvoyer une valeur au traitement qui la appele. Pour plus de
dtails, consultez laide en ligne sur la proprit ..ValeurRenvoye.
PROCEDURE MaProcdure (Param1, ParamOption = "Valeur par
dfaut")
GAF WinDev.book Page 60 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 61 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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.
Cration dune procdure
Une procdure peut tre cre directement depuis lditeur principal de WinDev. Il suffit dutiliser
le volet "Explorateur de projet" (si ncessaire ce volet peut tre affich par loption "Affichage ..
Barres doutils .. Volets .. Explorateur de projet").
!
Pour crer une procdure locale :
1. Slectionnez dans le volet "Explorateur de projet" le nom de la fentre voulu.
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. Slectionnez la collection de procdures dans laquelle la procdure globale doit tre cre.
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 partir du code slec-
tionn dans lditeur de code (option "Crer une procdure .. Crer une procdure contenant le
code slectionn" du menu contextuel). Cest ce que nous avons fait dans la leon prcdente.
A
s
t
u
c
e
Dans lditeur de code, lorsque vous tes positionn sur un nom de procdure,
lappui sur la touche de fonction [F2] permet de visualiser le code de cette proc-
dure. Lappui simultan sur les touches [CTRL]+[F2] permet de revenir dans le
code prcdent sur le nom de la procdure.
A
s
t
u
c
e
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-
ment.
Lorsquun traitement est utilis plusieurs fois dans un ensemble de fentres, il
est conseill dutiliser une procdure globale au projet qui contiendra ce traite-
ment.
GAF WinDev.book Page 61 Jeudi, 5. juillet 2012 9:16 09
62 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Un exemple pratique sur les procdures et fonctions
Aprs avoir vu la thorie, un peu de pratique !
!
Ouvrez si ncessaire le projet "WD Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_ProcedureBoucle.wdw" (option "Fichier .. Ouvrir"). Cette fentre pr-
sente diffrents exemples.
!
Lancez le test de cette fentre (icne "GO").
1. Cliquez sur "Fonction" pour tester le fonctionnement dune fonction.
2. Cliquez sur "Procdure" pour tester le fonctionnement dune procdure.
3. Fermez la fentre.
!
Consultez la liste des diffrentes procdures locales (accessibles 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.
Traitements des chanes
Dans 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 fonctionnalits 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 Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_ManipulationChaines.WDW" (option "Fichier .. Ouvrir" ou en double-cli-
quant sur le nom de la fentre dans le volet "Explorateur de projet").
!
Testez la fentre.
Dtails
Un champ de type texte (par exemple un libell) peut tre initialis :
soit directement avec la chane :
soit avec une variable de type chane :
Une chane peut tre construite partir de plusieurs autres chanes. On parle alors de concatna-
tion de chanes. Pour concatner deux chanes, il suffit d'utiliser l'oprateur "+".
SAI_TEXT1 = "WinDev est un outil formidable"
ch est une chane
ch = "Japprends travailler avec WinDev"
SAI_TEXT2 = ch
// La fonction Info permet dafficher le rsultat lcran
Info(SAI_TEXT2 + SAI_TEXT1)
GAF WinDev.book Page 62 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 63 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
L'extraction d'une partie d'une chane peut tre ralise avec :
les oprateurs [[ et ]] (attention il ne faut pas d'espace entre les crochets [[ et ]]).
la fonction ExtraitChane qui extrait une sous-chane depuis une chane :
la fonction Milieu, qui extrait un morceau de chane depuis une chane :
la fonction Gauche, qui retourne la partie gauche d'une chane :
la fonction Droite, qui retourne la partie droite d'une chane :
La taille d'une chane peut tre connue avec la fonction Taille :
Une chane peut tre transforme en majuscules avec la fonction Majuscule ou en minuscules
avec la fonction Minuscule :
Une chane peut tre recherche dans une autre avec la fonction Position :
Pour connatre le nombre doccurrences dune chane de caractres donne dans une autre
chane de caractres, utilisez la fonction ChaneOccurrence :
Info(SAI_TEXT1[[1 6]]) //affiche "WinDev"
Info(ExtraitChane(SAI_TEXT1,1," ")) //affiche "WinDev"
Info(Milieu(SAI_TEXT2,29)) //affiche "WinDev"
Info(Gauche(SAI_TEXT2,10)) // affiche "J'apprends"
Info(Droite(SAI_TEXT1,10)) //affiche "formidable"
Info(Taille(SAI_TEXT2)) //affiche 35
Info(Majuscule(SAI_TEXT2))
Info(Minuscule(SAI_TEXT2))
ChaineRecherche est une chane = "WinDev"
Pos est un entier
Pos = Position(SAI_TEXT2, ChaineRecherche)
SI Pos = 0 ALORS
Info(ChaineRecherche + " non trouv dans le texte 2")
SINON
Info(ChaineRecherche + " trouv dans texte 2")
FIN
A
s
t
u
c
e
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.
Exemple :
Pos = Position(TEXT2, ChaineRecherche, 1, SansCasse)
NbOccurrences est un entier
NbOccurrences = ChaneOccurrence("anastasia", "a") // Renvoie 4
GAF WinDev.book Page 63 Jeudi, 5. juillet 2012 9:16 09
64 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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,
montaire, ...)
Exemple pratique
!
Ouvrez si ncessaire le projet "WD Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_CalculsNumeriques.WDW" (option "Fichier .. Ouvrir" ou en double-cli-
quant 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".
Dtails
Un champ de saisie de type numrique peut tre initialis :
soit directement avec la valeur numrique :
soit avec une variable numrique :
Il est possible de concatner une chane et un numrique avec l'oprateur "+" :
Quelques exemples de manipulations de numriques raliss en WLangage :
La partie entire d'un nombre est connue par la fonction PartieEntire, la partie dcimale
par la fonction PartieDcimale :
SAI_NUM1 = 3.14
ent1 est un entier
ent1 = 1234
SAI_NUM1 = ent1
Info("Le champ SAI_NUM1 contient la valeur : "+ SAI_NUM1)
A
s
t
u
c
e
Si vous excutez le code suivant :
Info("Un calcul : " + 1 + 2)
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".
Info("Partie entire de "+SAI_NUM1+" : "+...
PartieEntire(SAI_NUM1), ...
"Partie dcimale de "+SAI_NUM1+" : "+ ...
PartieDcimale(SAI_NUM1))
GAF WinDev.book Page 64 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 65 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La valeur absolue d'un nombre est retourne par la fonction Abs :
La valeur arrondie d'un nombre est retourne par la fonction Arrondi :
La fonction Racine permet de calculer la racine N
ime
d'un nombre :
La fonction Puissance permet d'lever un nombre la puissance N :
Remarque : le type des champs de saisie numriques
Lorsqu'un 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 d'un champ, il suffit dutiliser une variable type. Par exemple :
Traitement des montaires
Exemple pratique
!
Ouvrez la fentre "FEN_RelsMontaires.wdw".
!
Testez la fentre. Cette fentre permet de tester les diffrents codes prsents dans ce para-
graphe.
Dtails
Le type "Montaire" est un rel cod sur 10 octets. Il permet de donner la solution deux probl-
mes non rsolus par les rels :
avoir plus de 15 chiffres significatifs (les rels doubles grent 15 chiffres significatifs maxi-
mum), le type "Montaire" gre 23 chiffres significatifs.
viter une erreur induite par le codage binaire des rels :
Un rel gre jusqu' 15 chiffres significatifs. Or, en ralit, le codage binaire des rels ne
permet pas de coder tous les rels de 15 chiffres significatifs.
Le type "Montaire" a un codage diffrent des rels qui n'induit pas d'erreur d'arrondi.
En effet, le code suivant donne un rsultat faux :
Info("Valeur absolue de "+ SAI_SAISIE2 + " : "+Abs(SAI_SAISIE2))
Info("Arrondi de " +SAI_SAISIE2+ " : " + Arrondi(SAI_SAISIE2,1))
SAI_Racine = Racine(SAI_Puissance, 2)
SAI_Puissance = Puissance(SAI_Racine, 2)
Val1 est un entier
Val1 = 123456789 //affectation du champ
SAI_NUM1 = Val1
Val1 = SAI_NUM1 //rcupration du champ
// Avec une variable de type Rel, le calcul est faux
x est un Rel
x = 18.6 - 8.6 - 10
Erreur ("18.6-8.6-10="+x)
GAF WinDev.book Page 65 Jeudi, 5. juillet 2012 9:16 09
66 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Par contre avec le programme suivant, le calcul est correct :
Pour effectuer des divisions sur des montaires, il est conseill de passer par des variables inter-
mdiaires de type "Montaire".
Mlange de chanes et de numriques
Les numriques et les chanes font bon mnage. WinDev est trs souple dans les affectations de
variables. Ainsi il est possible d'affecter une chane de chiffres dans une variable numrique et
inversement.
Par exemple :
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 :
!
Ouvrez la fentre "FEN_NumeriqueVersChaine.wdw". Cliquez par exemple sur son nom dans
lexplorateur de projet.
!
Testez la fentre.
x est un Montaire
x = 18.6-8.6-10
Info(x)
x, y sont des Montaires
x = 12345678901234567.123456
y = 12345678901234567.123456
x = x/y
Info ("21345678901234567.123456", ...
"/","12345678901234567.123456","= "+x)
R
e
m
a
r
q
u
e
Pour faire des calculs avancs, le WLangage met galement votre disposition
le type Numrique. Par dfaut, le type Numrique correspond 32 chiffres pour
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 chif-
fres utiliser pour la partie entire et le nombre de chiffres utiliser pour la par-
tie dcimale.
Pour plus de dtails, consultez laide en ligne (mot-cl : "Numrique").
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
NumriqueVersChane(1234.567,"012,3f")// renvoie "00001234,567"
GAF WinDev.book Page 66 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 67 (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, vous pouvez excuter cette fentre : elle vous donnera la
syntaxe utiliser en fonction du rsultat souhait.
Traitements des dates et des heures
Prsentation
Pour grer simplement les dates et les heures dans vos applications, WinDev met votre
disposition :
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.
Exemple pratique
!
Ouvrez si ncessaire le projet "WD Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_DateHeure.WDW". Cette fentre illustre les explications donnes dans
la suite de cette leon.
!
Testez la fentre.
Masque de saisie et valeur retourne
Les dates et 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 :
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/2009".
la valeur retourne sera par dfaut "AAAAMMJJ" (Exemple : la valeur saisie sous la forme "23/
04/2009" retournera au programme "20090423").
N
o
t
e
s
La fonction "inverse" de NumriqueVersChane, est la fonction Val. Cette fonction
permet de convertir une chane en un numrique.
GAF WinDev.book Page 67 Jeudi, 5. juillet 2012 9:16 09
68 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 d'un champ date est "JJ/MM/AA" et la valeur retourne
est "AAAAMMJJ" :
La date affiche sera incorrecte.
Si le masque de saisie et daffichage d'un champ date est "MM/JJ/AAAA" et la valeur retour-
ne est "AAMMJJ" :
La date affiche est incorrecte.
Il faut donc faire attention au format de la valeur retourne dans un champ de type date ou
heure.
Les fonctions du WLangage qui manipulent :
des dates utilisent le format "AAAAMMJJ".
des heures utilisent le format "HHMMSSCC" (certaines utilisent le format
"HHMMSSCCMMM", pour la gestion des millisecondes).
Les dates
Exemple pratique
!
Ouvrez si ncessaire le projet "WD Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_ManipDates.WDW". Cette fentre illustre les explications donnes
dans la suite de cette leon.
!
Testez cette fentre (bouton ).
R
e
m
a
r
q
u
e
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.
DATEJ = "19981225" //Affiche la date sous la forme "25/12/98"
DATEJ = "981225" //Affiche la date sous une forme incorrecte
DATEJ = "981225" //Affiche la date sous la forme "12/25/1998"
DATEJ = "19981225" //Affiche la date sous une forme incorrecte
N
o
t
e
s
Rappel : Par dfaut, le format (masque de saisie) du champ correspond au mas-
que date dfini par le projet (option "Projet .. Description du projet", onglet "Lan-
gues"). Ainsi, le mme masque est utilis automatiquement dans tous les
champs de type date de l'application.
Cette fonctionnalit est galement trs utile dans les applications multilingues.
GAF WinDev.book Page 68 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 69 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quel jour sommes-nous ?
Pour connatre la date du jour, il suffit d'utiliser la fonction DateDuJour (ou DateSys). La fonction
DateDuJour retourne la date systme de votre ordinateur sous la forme d'une chane de caract-
res au format "AAAAMMJJ". Exemple :
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Quel jour sommes-
nous ?".
Comme vous pouvez le constater, la date affiche est au format "AAAAMMJJ".
Pour afficher la date sous un format plus explicite, il suffit d'utiliser la fonction DateVersChane :
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 les carac-
tristiques du projet (option "Projet .. Description du projet .. Langues").
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Quel jour sommes-
nous (bis, mais en clair) ?".
Quel jour sommes-nous, mais avec le jour et le mois en lettres ?
Pour afficher la date en toutes lettres, il faut utiliser les fonctions EntierVersJourEnLettre et
EntierVersMoisEnLettre :
Les fonctions EntierVersJourEnLettre et EntierVersMoisEnLettre donnent en toutes lettres le jour
et le mois correspondant la date passe en paramtre.
Les fonctions EntierVersJourEnLettre et EntierVersMoisEnLettre attendent un entier. Il faut donc
utiliser la fonction DateVersEntier pour convertir une date "chane" en un entier. Loprateur "[[ ..
A ]" permet dextraire une partie de la chane. Ici, nous extrayons le nombre de jours ( partir du
7me caractre de la date au format AAAAMMJJ).
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Quel jour sommes-
nous (ter, mais avec des 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 :
Info("Nous sommes le " + DateDuJour())
Info("Nous sommes le " + DateVersChane(DateDuJour(),...
MaskDateSystme))
varDate, varDateJ sont des Chanes
varDateJ = DateDuJour()
varDate = EntierVersJourEnLettre(DateVersEntier(varDateJ))+ ...
" " + varDateJ[[7 A]] + " " + ...
EntierVersMoisEnLettre(DateVersEntier(varDateJ))
Info("Nous sommes le "+varDate)
NombreJour est un entier
NombreJour = DateDiffrence(DateDuJour(), "20100101")
Info("Le nombre de jours entre", "le " + ...
DateVersChane(DateDuJour(), maskDateSystme) + ...
" et le 01/01/2010 est " + NombreJour)
GAF WinDev.book Page 69 Jeudi, 5. juillet 2012 9:16 09
70 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Nombre de jours
entre deux dates".
Quel est le jour de la semaine dune date donne ?
Toujours aussi simplement, vous pouvez connatre le jour de n'importe quelle date avec la fonction
EntierVersJourEnLettre :
Remarque : Il est galement possible dutiliser directement la fonction DateVersJourEnLettre.
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Jour de la
semaine".
Petit exercice pratique
Maintenant que vous matrisez les dates, une colle : que fait le code suivant?
Les heures
Exemple pratique
!
Ouvrez si ncessaire le projet "WD Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_ManipHeures.WDW". Cette fentre illustre les explications donnes
dans la suite de cette leon.
!
Testez cette fentre (bouton "GO").
Quelle heure est-il ?
Pour connatre l'heure, il suffit d'utiliser la fonction Maintenant (ou HeureSys). La fonction Mainte-
nant retourne l'heure actuelle de votre systme sous la forme d'une chane de caractres au for-
mat "HHMMSSCC" :
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Quelle heure est-
il ?".
Vous souhaitez afficher l'heure au format standard "HH:MM:SS:CC" ? Le code devient alors :
A
s
t
u
c
e
Pour calculer lge dune personne, utilisez la fonction WLangage Age.
J est une chane
J = EntierVersJourEnLettre(DateVersEntier("17890714"))
Info("Le 14 juillet 1789 tait un " + J)
J = DateVersJourEnLettre("17890714")
DateVersChane(DateDuJour(),"JJJJ JJ MMM AAAA")
Info("Il est " + Maintenant())
Info("Il est " + HeureVersChane(Maintenant()))
R p o n s e : A f f i c h e l a d a t e l i t t r a l e ( l e j o u r e t l a d a t e e n c l a i r ) .
GAF WinDev.book Page 70 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 71 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La fonction HeureVersChane transforme une heure au format "HHMMSSCC" en une chane au for-
mat "HH:MM:SS:CC".
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Quelle heure est-il
(bis, mais en clair)?".
Pour ne pas afficher les centimes de seconde, le code est :
La fonction Gauche retourne les n premiers caractres d'une chane (8 dans notre exemple).
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Quelle heure est-il
(ter, sans les centimes)?".
Combien de temps s'est coul entre deux heures ?
Il est 17h25. Combien de temps s'est coul depuis 12h15 ? Le code est le suivant :
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.
!
Pour tester cette fonctionnalit dans notre exemple, cliquez sur le bouton "Temps (en secon-
des) coul depuis 12H15".
HeureInfo est une chane
HeureInfo = Gauche(HeureVersChane(Maintenant()),8)
Info("Il est " + HeureInfo)
// Affiche le temps coul depuis 12h15
Diff est un entier = HeureDiffrence("1215", Maintenant())
Signe_Temps est une chane
Rsultat_Temps est une chane = EntierVersHeure(Abs(Diff))
SI Diff < 0 ALORS Signe_Temps = "-"
Info("Temps coul : " + Signe_Temps + ...
Gauche(Rsultat_Temps, 2) + "heures"+ ...
Milieu(Rsultat_Temps, 3, 2) + "minutes"+ ...
Milieu(Rsultat_Temps, 5, 2) + "secondes"+...
Milieu(Rsultat_Temps, 7, 2) + "centimes de seconde")
A
t
t
e
n
t
i
o
n
!
Ne mettez pas de ":" dans l'heure passe en paramtre la fonction
HeureVersEntier, cela fausserait le rsultat.
Pour calculer des dures de plus de 24 heures, utilisez les types Date,
Heure, ...
GAF WinDev.book Page 71 Jeudi, 5. juillet 2012 9:16 09
72 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Variable de type Date, Heure, DateHeure, 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 :
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 !).
Plus srieusement, pour manipuler la valeur de ces variables, vous pouvez utiliser les syntaxes
suivantes :
Dans ce code, Anne, Mois et Jour sont des proprits WLangage.
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").
Type Format par dfaut
Date AAAAMMJJ
Heure HHMMSSCC
DateHeure AAAAMMJJHHMMSSCC
Dure AAAAMMJJHHMMSSCC
MaDate est une Date = "20021021"
Info(DateVersChane(MaDate)) //Affiche "21/10/2002"
MaDate..Anne = MaDate..Anne + 1
MaDate..Mois = MaDate..Mois + 1
MaDate..Jour = MaDate..Jour + 1
Info(DateVersChane(MaDate)) //Affiche "22/11/2003"
GAF WinDev.book Page 72 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 73 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 1.5. QUESTIONS / RPONSES
Ce que vous allez apprendre dans cette leon ...
Questions / Rponses
Dure estime : 5 mn
GAF WinDev.book Page 73 Jeudi, 5. juillet 2012 9:16 09
74 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Questions / Rponses
Pour visualiser llment correspondant au traitement en cours, cliquez sur licne . La fentre
contenant llment voulu saffiche.
Le code source en cours peut tre imprim directement en cliquant sur l'icne dans la barre
d'icnes de l'diteur ou en slectionnant l'option "Fichier .. Imprimer le dossier", ou la combinaison
de touches [CTRL] + [P].
Les fonctions de recherche ou de remplacement dans le code sont accessibles depuis le menu de
WinDev (option "Edition .. Rechercher" ou "Edition .. Remplacer") ou dans le volet "Rechercher -
Remplacer" :
Vous pouvez accder la recherche tout moment en appuyant sur les touches [CTRL]+[F].
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, slectionnez loption de menu "Code .. Code repliable .. 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 :
Question
Comment visualiser llment auquel appartient le traitement en cours ?
Question
Comment imprimer le code source ?
Question
Comment rechercher et/ou remplacer une variable dans le code ?
Question
Que signifie les signes "+" ou "-" dans lditeur de code ?
GAF WinDev.book Page 74 Jeudi, 5. juillet 2012 9:16 09
Partie 1 : A la dcouverte de WinDev 75 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La combinaison de touches [CTRL] + * (du clavier numrique) permet de dplier tout le code. Le
clic sur les symboles "-" ou "+" permettent denrouler ou de drouler uniquement la partie de code
correspondante.
L'appui de la touche [F6] permet d'afficher les informations (nom et date de la cration/modifica-
tion) de chaque ligne de code.
Dans lditeur de code, loption "Affichage .. Afficher les numros de ligne" permet dactiver (ou
non) la numrotation des lignes de code.
Lors de la frappe d'une fonction, la syntaxe de la fonction s'affiche :
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 [ALT] + flche droite ou flche gauche.
dans la barre de message de l'diteur.
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 d'tats,
la saisie assiste permet d'afficher 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 l'diteur en appuyant sur la touche [F1] sur le nom de la fonction ou de la
proprit voulue.
Question
Est-il possible didentifier la personne qui a crit une ligne de code ?
Question
Est-il possible de connatre le numro dune ligne de code ?
Question
Existe-t-il un moyen dobtenir facilement la syntaxe ou de laide sur une
fonction ?
GAF WinDev.book Page 75 Jeudi, 5. juillet 2012 9:16 09
76 Partie 1 : A la dcouverte de WinDev (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
[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 l'indentation de l'ensemble des lignes slectionnes.
[CTRL]+[/] met en commentaires les lignes slectionnes, [CTRL]+[SHIFT]+[/] enlve les com-
mentaires (Attention touche [/] du pav numrique).
[F2] sur le nom d'un champ, d'une mthode, d'une classe, d'une procdure ou d'un bloc d'tat
affiche le traitement de cet objet.
[CTRL]+[F2] permet de revenir au traitement initial.
Il est possible par l'appui rpt sur la touche [F2] de se dplacer d'un traitement un autre.
Pour revenir sur le traitement initial, il suffit d'appuyer autant de fois sur les touches
[CTRL]+[F2].
[CTRL]+[R] permet de rindenter automatiquement le code affich.
Il suffit dutiliser une bote de dialogue avance. Ces botes de dialogue permettent de grer :
l'interrogation directive (fonction Dialogue) : l'utilisateur rpond une question grce des
boutons contenant le texte de l'action effectuer.
la saisie immdiate (fonction Saisie), en proposant l'utilisateur 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 :
!
Ouvrez si ncessaire le projet "WD Decouverte.WDP" (option "? .. Guide dauto-formation ..
Bases de la programmation").
!
Ouvrez la fentre "FEN_Dialoguer_Utilisateur.WDW". Cette fentre illustre les diffrents modes
de dialogue possibles.
!
Testez cette fentre (bouton "GO").
Question
Quels sont les raccourcis clavier connatre sous lditeur de code ?
Question
Comment dialoguer avec lutilisateur?
GAF WinDev.book Page 76 Jeudi, 5. juillet 2012 9:16 09
PARTIE 2
Application
avec donnes
GAF WinDev.book Page 77 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 78 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 79 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.1. PRSENTATION
Ce que vous allez apprendre dans cette leon ...
Prsentation de lapplication ralise dans cette partie
Dure estime : 5mn
GAF WinDev.book Page 79 Jeudi, 5. juillet 2012 9:16 09
80 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation de lapplication ralise dans cette partie
Dans cette partie, nous allons tudier les bases de donnes pouvant tre manipules avec Win-
Dev. Dans un but pdagogique, nous vous proposons de dvelopper une application de A Z, de
la conception de lanalyse la distribution de lapplication.
Vous verrez ainsi tous les points importants du dveloppement dune application.
Lapplication que nous allons raliser ensemble est une gestion de comptes bancaires : vous allez
pouvoir suivre en temps rel ltat de vos comptes quand lapplication sera ralise. La base de
donnes utilise est HyperFileSQL Classic, la base de donnes gratuite fournie avec WinDev. Plus
loin dans ce cours, nous tudierons la base de donnes HyperFileSQL Client/Serveur.
Mais avant de se mettre au travail, voyons ce que vous allez faire. Le projet complet de lapplica-
tion est livr avec ce cours dauto-formation. Vous pouvez lancer directement lapplication par
loption "? .. Guide dauto-formation .. Application avec donnes (Excutable)" du menu de WinDev.
N
o
t
e
s
Lapplication dveloppe dans ce cours dauto-formation est une application
pdagogique, qui ne contient pas tous les lments ncessaires la gestion de
comptes bancaires. Cette application sert uniquement de support pour dcouvrir
les fonctionnalits de WinDev.
GAF WinDev.book Page 80 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 81 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.2. PROJET ET ANALYSE
Ce que vous allez apprendre dans cette leon ...
Cration dun projet
Cration dune analyse
Dure estime : 40mn
GAF WinDev.book Page 81 Jeudi, 5. juillet 2012 9:16 09
82 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 (fen-
tres, codes, requtes, tats, ...).
Crer lanalyse lie au projet. Lanalyse permet de dcrire tous les fichiers de donnes manipu-
ls par lapplication.
Nous crerons ensuite lapplication grce au module RAD (Rapid Application Development).
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 loption "Crer un projet", puis sur loption "Appli-
cation". 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.
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 "Mes Comptes". Par dfaut,
WinDev propose de crer ce projet dans le rpertoire "\Mes projets\Mes Comptes". Vous pou-
vez conserver cet emplacement ou le modifier grce au bouton [...]. Pour le rsum du projet,
saisissez "Le projet a pour but de grer des comptes bancaires".
N
o
t
e
s
Astuce : Pour crer un projet, il est galement possible de slectionner loption
"Fichier .. Nouveau .. Projet".
GAF WinDev.book Page 82 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 83 (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 1 ("Description") ntant pas fonda-
mentaux, cliquez directement sur "2 Chartes".
5. Cette tape permet de dfinir la charte graphique. Slectionnez "ActivUbuntu". Passez
lcran suivant laide des flches situes en bas.
6. Nous choisissons une taille de 800x600 pour les crans, car notre application naura pas
de grandes fentres, et sera ainsi adapte la plupart des rsolutions utilises. Le choix
serait diffrent pour une application de gestion dimages par exemple.
7. Cliquez sur ltape "4 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 saviez-vous" au lancement de lapplication". Passez lcran suivant.
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.
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 lcran suivant de lassistant.
N
o
t
e
s
Les diffrentes options de la cration de projet prsentes dans ce paragraphe
supposent que vous utilisez lenvironnement simplifi de WinDev (voir Environ-
nement du Cours dauto-formation, page 33).
Si vous utilisez un autre type denvironnement, des options supplmentaires peu-
vent apparatre.
GAF WinDev.book Page 83 Jeudi, 5. juillet 2012 9:16 09
84 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Vous pouvez ensuite choisir le ou les types de bases de donnes manipules par le projet.
Slectionnez HyperFileSQL Classic (la base de donnes propose par dfaut avec WinDev).
Passez lcran suivant de lassistant.
3. Validez. Lassistant de cration dun fichier de donnes se lance automatiquement.
Cration de la description des fichiers de donnes
Notre application de gestion de compte va tre associe lanalyse suivante. Cette analyse com-
porte sept fichiers de donnes diffrents :
BANQUE
COMPTE
TYPECOMPTE
PERSONNE
MOUVEMENT
NATUREMVT
TYPEMVT
GAF WinDev.book Page 84 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 85 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour crer les diffrents fichiers de donnes de cette analyse, nous allons utiliser diffrentes
mthodes disponibles dans WinDev.
Cration dun fichier de donnes et de ses rubriques sous lditeur
!
Les tapes de lassistant de cration dun fichier de donnes sont les suivantes :
1. Slectionnez dans lassistant loption "Crer une nouvelle description dun fichier de don-
nes". Passez lcran suivant de lassistant.
2. Le fichier de donnes que nous allons crer est le fichier "COMPTE". Son nom est donc
"COMPTE". Ce nom sera utilis :
- pour manipuler le fichier de donnes en programmation. La variable associe au fichier sera
compte.
- pour construire le nom du fichier de donnes physique associ (fichier COMPTE.fic).
Automatiquement, le libell et la description des lments reprsents par les enregistre-
ments du fichier de donnes apparaissent.
3. Conservez loption "Le fichier de donnes possde un identifiant automatique". Cette
option indique si le fichier de donnes doit possder une cl unique, gre automatiquement
par WinDev.
N
o
t
e
s
"Un enregistrement reprsente" indique linformation qui sera utilise pour
dcrire les liaisons entre les fichiers de donnes. Il est important de renseigner
avec soin cette information !
GAF WinDev.book Page 85 Jeudi, 5. juillet 2012 9:16 09
86 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4. Passez lcran suivant et slectionnez le type de la base associe au fichier de donnes.
Nous allons travailler sur des fichiers de donnes HyperFileSQL Classic. Passez lcran sui-
vant.
5. Conservez les options par dfaut et passez lcran suivant.
6. Cliquez sur le bouton vert pour valider. Le fichier de donnes est automatiquement cr
dans lanalyse. La fentre de description des rubriques souvre.
N
o
t
e
s
Pour crer lidentifiant (un identifiant est une cl unique), vous pouvez crer une
rubrique numrique de type "Identifiant automatique".
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.
Vous pouvez dcocher ce choix si vous navez pas besoin didentifiant automati-
que (si aucune cl unique nest ncessaire, ou si une cl unique existe dj dans
le fichier de donnes).
GAF WinDev.book Page 86 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 87 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite

Nous allons saisir les rubriques du fichier COMPTE. Dans la fentre de description du fichier de
donnes, vous pouvez dj voir quune rubrique a t automatiquement cre : IDCOMPTE. Cette
rubrique correspond lidentifiant automatique du fichier de donnes. Cette rubrique est compo-
se 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 "NumCompte". Cette rubrique contiendra le
numro de compte.
1. Dans la fentre de description des rubriques, cliquez dans la colonne "Nom" de la premire
ligne vide deux fois. Cette colonne passe automatiquement en saisie. Saisissez "NumCompte".
2. Cliquez dans la colonne "Libell". Automatiquement, le nom de la rubrique apparat. Nous
allons modifier le libell de la rubrique en saisissant "Numro de compte". Dans la colonne
"Type", le type "Texte" est automatiquement slectionn. Nous ny touchons pas.
3. Nous allons modifier la taille de la rubrique. Cliquez sur la case "50" et remplacez "50" par
"25". Cliquez sur la ligne suivante. Les valeurs sont automatiquement mises jour.
4. Cette rubrique va tre une cl de notre fichier de donnes : les cls permettent dacclrer
les accs aux donnes ou de faciliter les parcours des fichiers de donnes.
Il sera possible de faire des recherches ou des parcours sur cette rubrique.
GAF WinDev.book Page 87 Jeudi, 5. juillet 2012 9:16 09
88 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite

5. La dfinition de la cl se fait de la manire suivante : re-slectionnez la ligne de la rubrique
"NumCompte" 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, le numro de compte est une cl uni-
que.
!
De la mme manire, crez les rubriques suivantes (ces rubriques ne sont pas des cls) :
!
Nous allons maintenant crer les rubriques "Statut" et "Devise".
1. Positionnez-vous sur une nouvelle ligne de la table. Saisissez :
le nom: Statut
le libell : Statut du compte
le type : Slecteur, liste, Combo. Dans la fentre qui souvre, vous pouvez slectionner le
type de champ utilis par dfaut pour cette rubrique. Ici, ce sera un slecteur. Validez la
fentre.
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.
N
o
t
e
s
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,
cl unique : la valeur de cette cl sera unique dans lensemble du fichier
de donnes (cest--dire dans tous les enregistrements du fichier de don-
nes)
cl avec doublons : la valeur de cette cl pourra tre retrouve plusieurs
fois dans le fichier de donnes.
Nom Libell Type Taille
Intitul Intitul Texte 50
SoldeInitial Solde initial Montaire La taille est automatiquement fixe
10.
GAF WinDev.book Page 88 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 89 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons saisir les options suivantes dans longlet "Contenu" :
Cliquez sur le bouton "+" pour ajouter la premire option.
Loption 1 correspond Actif. Saisissez "Actif" dans le champ de saisie droite du slecteur.
Cliquez sur le bouton "+" pour ajouter la seconde option.
Saisissez "Suspendu" la place de "Option 2".
Cliquez nouveau sur le bouton "+".
Saisissez "Cltur" la place de "Option 3".
3. Cliquez nouveau sur la double flche.
4. De la mme manire, saisissez la rubrique "Devise". Cette rubrique est lie une combo.
Le contenu initial de cette combo doit tre saisi dans longlet "Gnral" de la partie basse de
lcran. Dans la zone "Contenu initial", saisissez les informations suivantes :
EUR - Euro
USD - Dollar Amricain
JPY - Yen Japonais
AUD - Dollar Australien
CAD - Dollar Canadien
Remarque : Entre chaque valeur, il suffit dappuyer sur la touche [ENTREE] pour passer la
ligne suivante.
5. Voil, la description du fichier COMPTE est termine. Validez la fentre de description des
rubriques. Dans la fentre qui saffiche, slectionnez loption "Retourner sous lditeur de Win-
Dev". Puis, slectionnez loption "Editeur de WinDev".
6. Le fichier COMPTE apparat sous lditeur danalyses. Il est possible dagrandir le fichier
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.
Maintenant que vous devenez "expert" en cration de fichiers de donnes, crez le fichier "PER-
SONNE".
Pour lancer lassistant de cration dun fichier de donnes, il suffit de slectionner loption "Inser-
tion .. Fichier de donnes". Le fichier PERSONNE a un identifiant automatique et contient les rubri-
GAF WinDev.book Page 89 Jeudi, 5. juillet 2012 9:16 09
90 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
ques suivantes :
Nous allons ajouter une petite nouveaut dans ce fichier de donnes. Nous allons crer une rubri-
que email. Facile ! Mais pour cela, nous allons utiliser les mtatypes.
!
Pour ajouter une rubrique cre partir dun mtatype :
1. Cliquez sur le bouton .
2. Slectionnez "Adresse email".
3. Validez.
4. Cette rubrique est une cl unique.
5. Fermez la fentre de description de fichier de donnes.
Importation dun fichier CSV
Pour crer le fichier BANQUE, contenant les caractristiques des banques, nous allons utiliser une
autre mthode : limport dun fichier CSV. partir du fichier CSV contenant les donnes, WinDev
va crer la description du fichier de donnes dans lanalyse ainsi que le fichier de donnes Hyper-
FileSQL correspondant avec les donnes prsentes dans le fichier CSV.
!
Pour importer un fichier CSV dans lanalyse :
1. Dans lexplorateur de fichiers de Windows, ouvrez le sous-rpertoire de WinDev suivant :
"\autoformation\exercices\Mes Comptes".
2. Slectionnez le fichier "Banque.csv".
3. Ralisez un "Drag and Drop" du fichier "Banque.csv" vers lditeur danalyses de WinDev.
Lassistant dimportation de fichiers se lance.
Nom Libell Type et taille
NomPrnom Nom et Prnom de la personne Texte, 50, cl avec doublons
Adresse Adresse Texte, sous-type "Mmo texte"
Le sous-type est slectionner
dans la partie droite de la fentre.
DateNaissance Date de Naissance Date, 8
Tlphone Tlphone Texte, 20
Portable Portable Texte, 20
N
o
t
e
s
Mtatype
Un mtatype est une combinaison de caractristiques dune rubrique et de son
champ reli. Par exemple, un mtatype "Fax" contiendra le type et la longueur de
la rubrique, le masque de saisie, le cadrage, ...
Vous pouvez utiliser les rubriques mtatypes fournies avec WinDev, ou crer vos
propres mtatypes.
Pour utiliser une rubrique mtatype, il suffit de cliquer sur le bouton "Mtatypes"
dans la description des rubriques de lanalyse.
GAF WinDev.book Page 90 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 91 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4. Nous allons convertir le contenu du fichier CSV au format HyperFileSQL. Cochez loption
"Convertir les donnes dans le format HyperFileSQL Classic ou HyperFileSQL Client/Serveur".
Passez lcran suivant de lassistant.
5. Slectionnez le format des fichiers importer. Ici, slectionnez "Fichier texte". Passez
lcran suivant de lassistant.
6. WinDev indique le chemin du fichier importer. Passez lcran suivant de lassistant.
7. Indiquez les paramtres dimportation suivants :
Noubliez pas de cocher loption "La premire ligne contient les noms des colonnes".
8. Passez lcan suivant.
9. La structure du fichier de donnes qui va tre cr apparat. Nous allons en profiter pour
faire quelques modifications :
10. Validez lassistant. Lassistant de conversion des donnes se lance.
11. Validez le rpertoire de cration des fichiers de donnes HyperFileSQL. Passez lcran
suivant de lassistant.
12. Dcochez "Enregistrer les paramtres de la conversion" et validez. Le fichier de donnes
apparat dans lanalyse.
Rubrique Type Taille
Organisme Texte 20
Succursale Texte 50
Adresse Texte 33
CodeBanque Texte 5
CodeGuichet Texte 5
Tlphone Texte 20
Fax Texte 20
Email Texte 260
Contact Texte 50
GAF WinDev.book Page 91 Jeudi, 5. juillet 2012 9:16 09
92 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Voyons la description du fichier de donnes import :
1. Slectionnez le fichier "Banque" puis loption "Description du fichier de donnes" du menu
contextuel.
2. Ce fichier de donnes ne contient pas didentifiant automatique : cochez loption "Identi-
fiant automatique".
3. Modifez le libell du fichier de donnes : supprimez "(Import)".
4. Cliquez sur licne pour afficher la description des rubriques du fichier de donnes.
5. Nous allons modifier quelques informations :
La rubrique Adresse doit tre de sous-type "Mmo texte".
La rubrique "Telephone" doit tre renomme en Tlphone" (ainsi que le libell).
6. Nous obtenons les donnes suivantes :
!
Pour simplifier les recherches dans le fichier de donnes, nous allons crer une cl compose.
Cette cl sera compose du code banque et du code guichet.
1. Cliquez sur
2. Slectionnez "CodeBanque" et cliquez sur ">".
3. Slectionnez "CodeGuichet" et cliquez sur ">".
N
o
t
e
s
Une cl compose est une cl qui est compose de plusieurs rubriques du
mme fichier de donnes.
Ce type de cl permet de parcourir le fichier de donnes sur des critres plus
complexes ou de faire des recherches plus prcises.
GAF WinDev.book Page 92 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 93 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4. Validez. La cl compose apparat dans la description du fichier de donnes.
5. Validez la description du fichier "BANQUE".
6. Validez la description des fichiers de donnes.
Importation de fichiers du dictionnaire
Pour simplifier la cration des fichiers de donnes de lanalyse, nous avons prpar une descrip-
tion de fichier que nous avons place dans un dictionnaire. Nous allons voir comment importer
rapidement ce fichier de donnes. WinDev propose un volet spcifique, le volet "Dictionnaire", afin
de manipuler simplement et facilement les dictionnaires.
!
Pour importer des lments depuis un dictionnaire :
1. Affichez si ncessaire le volet "Dictionnaire" (option "Affichage .. Barres doutils .. Volets ..
Autres volets .. Dictionnaire"). Une bote de dialogue demande la synchronisation de lanalyse.
Cliquez sur "Non".
2. Cliquez dans le volet et slectionnez loption "Ouvrir" du menu contextuel.
3. Slectionnez le fichier "Dico_GAF" prsent dans le sous-rpertoire de WinDev suivant :
"\autoformation\exercices\Mes comptes". Le dictionnaire apparat dans le volet. Ce diction-
naire contient le fichier "Mouvement".
4. Effectuez un "Drag and Drop" du fichier "Mouvement" vers lditeur danalyses.
5. Lditeur demande si un abonnement est ncessaire. Rpondez "Non". Nous verrons plus
en dtail le dictionnaire dans la suite de ce cours.
6. Validez. La description du fichier "Mouvement" est intgre lanalyse.
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 HyperFileSQL existants. Nous avons prpar les derniers fichiers
sous cette forme.
!
Pour importer des fichiers de donnes HyperFileSQL :
1. Dans lexplorateur de fichiers de Windows, ouvrez le sous-rpertoire de WinDev suivant :
"\Autoformation\Exercices\Mes comptes".
2. Slectionnez le fichier "TypeMvt.fic".
3. Ralisez un "Drag and Drop" du fichier "TypeMvt" vers lditeur danalyses de WinDev.
4. Lassistant dimportation se lance. Validez les diffrents crans. Le fichier de donnes
apparat sous lditeur danalyses.
5. Rptez cette opration avec les fichiers Typecompte.fic et Naturemvt.fic.
Tous les fichiers de donnes ncessaires sont maintenant prsents dans lditeur danalyses.
N
o
t
e
s
Lditeur danalyses permet galement dajouter des cls full-text. Ces cls per-
mettent de rechercher la prsence dun mot ou dune phrase dans une ou plu-
sieurs rubriques de type texte (chane de caractres, mmo texte, ...).
Cette recherche sera effectue laide dune requte, et le rsultat de cette
recherche pourra tre affich dans un champ.
Pour plus de dtails sur les index full-text, consultez laide en ligne (mot-cl :
"Index full-text").
GAF WinDev.book Page 93 Jeudi, 5. juillet 2012 9:16 09
94 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Important : Pour manipuler les donnes des fichiers que vous venez dimporter, copiez les fichiers
"xxx.fic" et "xxx.ndx" (prsents dans le rpertoire "\Autoformation\Exercices\Mes comptes") vers le
rpertoire EXE de votre projet.
Cration des liaisons
Nous avons cr toutes les descriptions de fichiers ncessaires lapplication de gestion de
comptes.
Maintenant nous allons crer les liaisons entre les fichiers de donnes.
!
Crons tout dabord la liaison entre le fichier BANQUE et le fichier COMPTE.
1. Slectionnez loption "Insertion .. Liaison". Le curseur de la souris se transforme en crayon.
2. Cliquez sur le fichier "BANQUE" puis sur le fichier "COMPTE".
3. Lassistant de cration de liaison se lance.
GAF WinDev.book Page 94 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 95 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4. Rpondez aux questions poses par lassistant :
Chaque Banque a au moins un compte : Non
Chaque Banque peut avoir plusieurs comptes : Oui
Chaque Compte a au moins une banque : Oui
Chaque Compte peut avoir plusieurs banques : Non
5. Passez lcran suivant. Lassistant propose automatiquement la cl utilise par la liaison.
Affichez lcran suivant de lassistant.
6. Lassistant propose de crer une nouvelle cl dans le fichier Compte. Acceptez cette option
en passant lcran suivant.
7. Validez les rgles dintgrit en passant lcran suivant.
8. Cliquez sur la flche verte. La liaison est automatiquement cre dans lditeur danalyses.
!
Vous pouvez crer les liaisons suivantes :
N
o
t
e
s
Vous pouvez galement saisir directement les cardinalits de la liaison dans
lassistant.
Fichier source Fichier reli Cardinalits
Personne Compte 0,n - 1,1
Compte Mouvement 0,n - 1,1
TypeCompte Compte 0,n - 1,1
NatureMvt Mouvement 0,n - 1,1
TypeMvt Mouvement 0,n - 1,1
GAF WinDev.book Page 95 Jeudi, 5. juillet 2012 9:16 09
96 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lanalyse est alors la suivante :
Configuration de lanalyse pour le RAD
Lors de la gnration de lapplication, de fentres, dtats, le module RAD (Rapid Application
Development) utilise des options spcifies directement dans lanalyse. Il est ncessaire de con-
sacrer un peu de temps la configuration de ces options pour obtenir le meilleur rsultat possible
automatiquement.
Les lments utiliss par le RAD sont dfinis :
dans la description des fichiers de donnes (onglet RAD)
dans la description des rubriques (onglet RAD)
dans les informations partages spcifies pour chaque rubrique.
Configuration du RAD dans la description des fichiers de donnes
!
Pour configurer les options RAD des fichiers de donnes :
1. Slectionnez loption "Structures de fichiers .. Description des fichiers de donnes".
2. Affichez longlet "RAD".
GAF WinDev.book Page 96 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 97 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les informations configurer pour chaque fichier de donnes sont :
La rubrique afficher pour la visualisation
Les lments gnrs par le RAD pour le fichier de donnes.
Les informations configurer pour chaque fichier de donnes sont les suivantes :
!
Pour raliser ces modifications :
1. Slectionnez le fichier dans le tableau.
2. Ralisez les modifications dans longlet RAD.
3. Passez au fichier suivant.
Validez la fentre la fin de lopration.
Configuration du RAD dans la description des rubriques
!
Pour configurer les options RAD des rubriques :
1. Pour chaque fichier de donnes, affichez la description des rubriques (option "Description
des rubriques" du menu contextuel).
2. Affichez longlet "Avanc".
3. Configurez les options RAD.
Pour chaque fichier de donnes, les identifiants des fichiers (rubriques IDBanque, IDCompte,
IDPersonne, IDTypeCompte, IDMouvement, IDNatureMvt, IDTypeMvt) doivent avoir les caract-
ristiques suivantes :
En effet, lidentifiant ne doit pas tre affich sur les fentres en mode fiche et les tats.
Laissez tout coch pour les autres rubriques (y compris les autres identifiants prsents dans
les fichiers).
4. Validez la description des rubriques du fichier de donnes.
Lanalyse est prte tre utilise par le RAD.
Fichier de donnes Rubrique visualiser Elment gnrer
BANQUE Organisme Table, Fiche, Etat
COMPTE Intitul Table, Fiche, Etat
MOUVEMENT Intitul Table, Fiche, Etat
NATUREMVT Intitul Table, Fiche, Etat
PERSONNE NomPrnom Table, Fiche, Etat
TYPECOMPTE Intitul Table, Fiche, Etat
TYPEMVT Intitul Table, Fiche, Etat
GAF WinDev.book Page 97 Jeudi, 5. juillet 2012 9:16 09
98 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Gnration de lanalyse
La gnration de l'analyse consiste rendre disponible aux autres modules du projet, les informa-
tions sur les fichiers de donnes. Ces fichiers de donnes pourront tre manipuls dans les pro-
grammes.
Sans la gnration, bien que la description du fichier de donnes existe, vous ne pourrez pas utili-
ser le fichier de donnes dans vos programmes.
Lors de la gnration de lanalyse, toutes les modifications effectues sur lanalyse et les fichiers
de donnes seront automatiquement propages dans tout le projet (fentres, champs relis,
tats, ...).
!
Pour gnrer lanalyse :
1. Sous lditeur danalyses, slectionnez loption "Analyse .. Gnration".
2. La gnration de lanalyse est automatiquement lance.
Nous avons modifi les descriptions des fichiers de donnes prsents dans lanalyse (fichier BAN-
QUE).
Pour mettre jour les fichiers de donnes de lapplication, WinDev lance automatiquement la pro-
cdure 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.
!
Lassistant de modification automatique se lance. Validez les diffrents crans jusqu lex-
cution de la modification automatique des donnes.
Fermez lditeur danalyses. Maintenant, nous pouvons commencer programmer lapplication.
A
t
t
e
n
t
i
o
n
!
La gnration doit tre effectue chaque fois que vous voulez que les modifica-
tions effectues dans lanalyse soient prises en compte dans les programmes
utilisant cette analyse.
Si vous modifiez l'analyse plusieurs fois, sans programmer entre chaque modifi-
cation, il nest pas ncessaire de gnrer lanalyse chaque modification. Gn-
rez uniquement lanalyse lorsque toutes les modifications sont faites et que vous
passez la programmation.
GAF WinDev.book Page 98 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 99 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.3. LE RAD COMPLET
Ce que vous allez apprendre dans cette leon ...
Qu'est-ce le RAD ?
Gnration du RAD
Test du projet
Dure estime : 20mn
GAF WinDev.book Page 99 Jeudi, 5. juillet 2012 9:16 09
100 Partie 2 : Application avec 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 assistant
dans lequel vous pouvez choisir le modle dapplication gnrer (le pattern RAD) et les principa-
les options de fonctionnement de votre application.
Toutes les fentres, les tats, les requtes et le code gnrs par le RAD sont entirement person-
nalisables. 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.
Gnration du RAD
!
Pour lancer la gnration du RAD :
1. Slectionnez loption "Atelier .. 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 lcran suivant de lassistant.
N
o
t
e
WinDev est livr avec diffrents "Patterns RAD", permettant de gnrer plusieurs
modles dapplication. Vous pouvez galement crer vos propres patterns RAD.
Pour plus de dtails, consultez laide en ligne (mot-cl : "Pattern RAD").
N
o
t
e
RID (Rapid graphical Interface Design)
WinDev permet galement de gnrer des fentres contenant uniquement les
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").
GAF WinDev.book Page 100 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 101 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3. Tous les fichiers de donnes de lanalyse vont tre pris en compte :
Affichez lcran suivant.
4. Les points dentre de lapplication correspondent aux entres disponibles dans le menu.
Conservez uniquement les fichiers Banque, Compte, Mouvement et Personne. Affichez lcran
suivant.
5. Indiquez si les tables gnres dans les fentres de lapplication doivent permettre la sai-
sie ou non. Dans notre exemple, les tables permettront lutilisateur de saisir de nouvelles
informations. Slectionnez "Oui : Autoriser la saisie dans les tables". Affichez lcran suivant.
6. Indiquez si le groupware utilisateur doit tre utilis dans lapplication. Nous lintgrerons
plus tard dans lapplication : slectionnez loption "Non : Ne pas intgrer la gestion du grou-
GAF WinDev.book Page 101 Jeudi, 5. juillet 2012 9:16 09
102 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
pware utilisateur". Passez lcran suivant.
7. Indiquez si le menu automatique doit tre intgr lapplication. Rpondez "Oui : Intgrer le
menu "?"". Passez lcran suivant. Lassistant de gnration du RAD se termine et lassistant
de gnration du menu automatique se lance.
!
Les diffrentes tapes de lassistant de gnration du menu automatique sont les suivantes :
1. Conservez loption "Aide des FAA (Fonctionnalits automatiques de lapplication)".
2. Terminez lassistant.
Lapplication est gnre et peut tre teste.
N
o
t
e
Le menu automatique est un menu daide adapt vos applications. Ce menu
permettra aux utilisateurs de vos applications daccder directement plusieurs
fonctionnalits.
N
o
t
e
s
Lors de la cration du menu "?", loption "? .. Aide des fonctionnalits automati-
ques" a ajout automatiquement dans votre application :
le composant "CCMenu". En effet, cette option utilise une procdure de ce
composant pour fonctionner.
le fichier "WinDev FAA 17.PDF". Ce fichier sera automatiquement ouvert
lors de lutilisation de loption de menu.
N
o
t
e
s
Des erreurs dIHM peuvent apparatre dans le volet des erreurs de compilation.
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.
GAF WinDev.book Page 102 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 103 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Test de lapplication
Testons immdiatement lapplication gnre.
!
Pour lancer le test de lapplication :
1. Cliquez sur le bouton . Lapplication se lance.
2. Dans le menu, slectionnez loption "Personne .. Liste des personne".
3. La liste des personnes saffiche.
4. Pour ajouter une nouvelle personne, cliquer sur le bouton "Nouveau". Un formulaire de sai-
sie apparat. Saisissez par exemple des informations vous concernant et validez.
5. Fermez la liste des personnes.
6. Dans le menu, slectionnez loption "Compte .. Liste des compte". La liste des comptes
apparat.
7. Cliquez sur le bouton "Nouveau". Saisissez les informations concernant le nouveau compte.
Par exemple :
8. Crez de la mme manire plusieurs mouvements. Par exemple :
Remarque : pour slectionner les dates, utilisez le calendrier situ droite des champs.
Numro de compte Intitul Solde initial
0123456L030 THA 1500
Devise Organisme Personne
Euro BNP Paribas Vous par exemple
Statut du compte Intitul (TypeCompte)
Actif Compte chque
Mouvement Essence Loyer
Date du mouvement 10/10/2011 01/10/2011
Sens Dbit Dbit
Montant 56 737
Numro de compte 0123456L030 0123456L030
Nature du mouvement Carburant Loyer
Type Carte bancaire Chque
Intitul du compte THA THA
GAF WinDev.book Page 103 Jeudi, 5. juillet 2012 9:16 09
104 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Modification rapide : Verrouillage de lapplication
Bien souvent, lors de lutilisation dune application, celle-ci reste en cours sur le poste de lutilisa-
teur alors que celui-ci nest pas prsent (runion, repas, ...). Pour viter lutilisation de lapplication
par des personnes non autorises, il est possible de verrouiller automatiquement lapplication.
Pour se reconnecter, lutilisateur devra utiliser son identifiant et son mot de passe Windows.
Pour utiliser cette fonctionnalit, quelques clics de souris suffisent.
!
Pour verrouiller une application :
1. Affichez la description du projet (option "Projet .. Description du projet").
2. Affichez longlet "Avanc".
3. Spcifiez les options de verrouillage (par exemple 2 minutes).
Si lapplication nest pas utilise pendant 2 minutes, la fentre suivante sera affiche :
Lutilisateur naura qu saisir son mot de passe Windows pour continuer utiliser lapplication.
!
Pour tester le verrouillage de lapplication, lancez le test de lapplication, et attendez 2 minu-
tes. La fentre de demande de mot de passe apparat. Saisissez votre mot de passe Windows
et validez.
!
Pour ne pas alourdir nos prochains tests, nous allons supprimer cette option. Affichez la des-
cription du projet (option "Projet .. Description du projet"), et dans longlet "Avanc", dcochez
loption "Verrouiller lapplication...". Validez.
!
La suite de ce cours utilise ce mme projet. Conservez ce projet ouvert.
N
o
t
e
s
Si le Groupware Utilisateur est utilis par lapplication (voir Le groupware utilisa-
teur, page 130), le mot de passe utiliser sera celui dfini pour le Groupware
Utilisateur.
GAF WinDev.book Page 104 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 105 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.4. FENTRE DE SAISIE
Ce que vous allez apprendre dans cette leon ...
Cration dune fentre de saisie
Gestion de lajout dun enregistrement
Gestion de la recherche puis de la modification
Dure estime : 20mn
GAF WinDev.book Page 105 Jeudi, 5. juillet 2012 9:16 09
106 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Nous avons vu les diffrentes fentres cres automatiquement par le RAD. Maintenant, nous
allons crer nous-mme une fentre permettant de grer lajout et la modification denregistre-
ments. 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.
La fentre que nous allons crer va permettre de grer la saisie, la recherche et la modification
des personnes. Cette fentre est la suivante :
Cration dune fentre de saisie
Pour crer la fentre de saisie sur le fichier Personne, nous pourrions utiliser lassistant de cra-
tion de fentre RAD et crer une fentre de type "Fiche".
Mais nous avons choisi de crer cette fentre partir dune fentre vierge : nous verrons ainsi tou-
tes les tapes ncessaires la programmation dune telle fentre.
!
Pour crer une fentre de saisie :
1. Ouvrez si ncessaire le projet "Mes Comptes" que vous avez cr dans les leons prcden-
tes.
2. Crez une nouvelle fentre vierge (option "Fichier .. Nouveau", survolez la catgorie "Fen-
tre", slectionnez loption "Fentre" et choisissez "Vierge").
3. Dans la fentre de description, indiquez :
le nom de la fentre "FEN_PersonneX".
le titre et la description de la fentre "Gestion des personnes".
4. Validez la fentre de description.
5. Affichez le volet "Analyse" (option "Affichage .. Barres doutils .. Volets .. Analyse"). Les diff-
rents fichiers de donnes dcrits dans lanalyse "Mes comptes" apparaissent dans le volet.
6. Cliquez sur licne "+" gauche du fichier "PERSONNE" : les rubriques du fichier sont lis-
tes.
GAF WinDev.book Page 106 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 107 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7. Slectionnez laide de la souris lensemble des rubriques affiches dans le volet et effec-
tuez un "Drag and Drop" (glisser/dplacer) de ces rubriques vers la fentre que vous venez de
crer.
8. 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, il suffit
dafficher longlet "Liaison" de la description dun des champs (option "Description" du menu
contextuel).
Fermez la description.
9. Enregistrez la fentre.
!
Testez la fentre (icne ). La fentre apparat avec tous les champs vides.
Gestion de lajout dun enregistrement
Nous allons maintenant grer lajout dun enregistrement dans notre fentre. En effet, la fentre
actuellement contient des champs relis au fichier de donnes, mais nous voulons maintenant
pouvoir saisir des informations dans ces champs et les enregistrer dans le fichier de donnes
"Personne".
Nous allons ajouter deux boutons dans notre fentre : un bouton "Ajouter" qui va permettre denre-
gistrer les donnes et un bouton "Fermer" pour sortir de la fentre sans enregistrer.
Cration du bouton dajout
!
Pour crer le bouton dajout :
1. Crez un nouveau bouton (icne ).
2. Ce bouton a pour libell "Ajouter" et pour nom "BTN_Ajouter".
GAF WinDev.book Page 107 Jeudi, 5. juillet 2012 9:16 09
108 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour saisir le code du bouton :
1. Afficher le code du bouton "BTN_Ajouter" (par exemple, slectionnez le bouton et utilisez la
touche F2).
2. Saisissez le code suivant :
Dtaillons ce code :
La fonction EcranVersFichier permet dinitialiser les rubriques avec les valeurs des champs
lis. Cette fonction est donc quivalente aux lignes suivantes :
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
effectue toutes les affectations !
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 "Personne".
3. Enregistrez votre fentre (icne ).
!
Testez la fentre (icne ). Remplissez les champs et cliquez sur le bouton "Ajouter".
Plusieurs remarques :
Aucun masque nest utilis. Vous pouvez saisir des majuscules et des minuscules dans les
diffrents champs.
Aprs lajout, les champs ne sont pas remis vide.
Aucun bouton de fermeture : il faut utiliser la croix en haut de la fentre.
Nous allons faire les modifications ncessaires.
EcranVersFichier()
HAjoute(PERSONNE)
Personne.NomPrenom = SAI_NomPrnom
Personne.Adresse = SAI_Adresse
Personne.DateNaissance = SAI_DateNaissance
...
GAF WinDev.book Page 108 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 109 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ajout dun masque de saisie
!
Tout dabord, le masque de saisie. Nous allons mettre un masque de saisie sur le champ
"Nom Prnom". Nous allons slectionner le masque "1re lettre en majuscule" dans la des-
cription du champ.
Aprs avoir modifi le masque, le bouton de validation de la fentre de description change
daspect. Un bouton "On/Off" apparat. Si vous cliquez sur ce bouton, lcran suivant apparat :
Cet cran permet de grer la modification des informations partages dans lanalyse (les
informations concernant le champ associ la rubrique NOMPRENOM). Si les informations
partages sont modifies dans lanalyse, la prochaine gnration de lanalyse, tous les
champs lis la rubrique auront cette information galement modifie.
Validez la fentre de description du champ.
GAF WinDev.book Page 109 Jeudi, 5. juillet 2012 9:16 09
110 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Ajoutez de la mme faon un masque de saisie sur le champ "SAI_DateNaissance". Ce mas-
que est de la forme "JJ/MM/AAAA" . La valeur retourne est de la forme "AAAAMMJJ".
Effacement des donnes aprs lajout
!
Nous allons maintenant grer leffacement des donnes dans les champs, aprs lutilisation
du bouton "Ajouter". Seules deux nouvelles fonctions du WLangage vont nous permettre de
raliser cette opration sur tous les champs de la fentre.
1. Affichez le code du bouton "Ajouter" (F2 sur le bouton par exemple).
2. Compltez le code de la faon suivante :
La fonction Raz remet blanc tous les champs pour la prochaine saisie. Cela permet ainsi de
signaler lutilisateur que l'enregistrement a t ajout.
La fonction HRAZ remet blanc toutes les variables du fichier (vite de conserver le buffer
prcdent en cas dajout partiel de rubriques dans un enregistrement).
3. Enregistrez la fentre.
!
Pour ajouter un bouton de fermeture :
1. Crez un bouton de type "Fermer" (flche droite de licne ).
2. Enregistrez la fentre.
!
Testez la fentre (bouton ). Remplissez les champs et cliquez sur le bouton "Ajouter". Vous
pouvez dsormais saisir plusieurs enregistrements la suite. Quelques exemples :
N
o
t
e
Pour les champs de type Date ou Heure, le masque de saisie permet de dfinir le
format de saisie des informations, et la valeur retourne permet dindiquer le for-
mat qui sera utilis en programmation. Ce format sera par exemple utilis pour le
stockage de la valeur dans le fichier de donnes.
EcranVersFichier()
HAjoute(PERSONNE)
RAZ()
HRAZ(PERSONNE)
Nom Prnom Date de naissance Email
Moulain Franoise 03/11/1945 moulain@gmail.com
Teste Florence 19/07/1970 test@yahoo.com
Vini Herv 01/12/1965 vini@gmail.com
Vini Emma 25/07/2000 vini@gmail.com
GAF WinDev.book Page 110 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 111 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lors de la validation du dernier enregistrement, une fentre spcifique apparat :
Cette fentre signale lutilisateur quil existe un doublon : en effet, ladresse email (qui est une
cl unique) est identique pour deux personnes. Cette fentre permet de modifier la valeur de
ladresse email : saisissez par exemple "vini2@gmail.com".
Cette fentre est une des fentres de gestion automatique des erreurs HyperFileSQL, disponible
en standard. Nous verrons dans la suite de ce cours comment grer par programmation les diff-
rents types derreur pouvant survenir sur les bases de donnes.
Visualiser les enregistrements saisis
Depuis le dbut de lutilisation de notre fentre, nous avons ajout plusieurs enregistrements.
Comment voir leur contenu ? 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 Personne.
!
Pour lancer WDMAP :
1. Slectionnez loption "Outils .. WDMAP - Mini diteur de donnes".
2. Slectionnez le fichier "Personne". Le contenu du fichier de donnes saffiche.
GAF WinDev.book Page 111 Jeudi, 5. juillet 2012 9:16 09
112 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Gestion de la recherche puis de la modification
Nous avons gr lajout denregistrements dans le fichier Personne. Cest bien. Mais ce serait
encore mieux de pouvoir rechercher et modifier un enregistrement. Cest ce que nous allons faire
maintenant, sur la mme fentre.
Cette fentre va nous permettre de raliser une recherche sur le nom. Nous allons mettre en
place deux modes de recherche :
une recherche lidentique
une recherche gnrique.
Ensuite, il sera possible de modifier lenregistrement affich.
Recherche lidentique
Pour effectuer la recherche lidentique, nous allons slectionner le nom et le prnom de lutilisa-
teur dans une combo. Le bouton "Rechercher" permettra dafficher la fiche de la personne corres-
pondante. Une seule personne correspond au nom et prnom slectionns.
Dans ce premier cas, le champ de recherche est une combo.
!
Pour crer le champ de recherche :
1. Crez un champ de type combo (icne ).
2. Lassistant de cration des combos saffiche. Nous allons crer une combo base sur le
fichier de donnes "PERSONNE". Slectionnez loption "Afficher les donnes dun fichier ou
dune requte existante".
Passez lcran suivant de lassistant.
3. Slectionnez le fichier de donnes "Personne". Passez lcran suivant.
4. Nous allons afficher le nom et le prnom de la personne.
Dslectionnez la rubrique "IDPERSONNE".
Slectionnez la rubrique "NomPrnom".
Passez lcran suivant.
GAF WinDev.book Page 112 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 113 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5. La rubrique "NomPrnom" sera galement utilise pour trier la liste. Slectionnez la rubri-
que "NomPrnom". Passez lcran suivant.
6. La rubrique retourne par la combo sera lidentifiant "IDPersonne". Cest cette valeur qui
sera recherche dans le fichier Personne. Slectionnez la rubrique "IDPERSONNE" et passez
lcran suivant.
7. La combo ne sera lie aucune rubrique. Conservez loption "Non" et passez lcran sui-
vant.
8. Validez lcran suivant avec la flche jaune.
9. Donnez un nom la combo, par exemple "Combo_Personne", et comme libell "Personne
recherche".
10. Validez. Positionnez la combo dans la fentre (par exemple en haut gauche).
!
Pour crer le bouton de recherche :
1. Crez un bouton (icne ).
2. Positionnez le bouton ct de la combo qui vient dtre cre.
3. Ce champ a pour nom "BTN_Identique", et pour libell "Recherche identique".
4. Saisissez le code suivant :
La fonction HLitRecherchePremier permet de raliser une recherche lidentique. Dans cet
exemple, la recherche se fait sur le fichier PERSONNE et sur la rubrique IDPersonne. La valeur
recherche correspond au dernier paramtre de la fonction. Ici, la valeur recherche corres-
pond la valeur slectionne dans la combo. Cette valeur est obtenue en utilisant directe-
ment le nom de la combo (COMBO_Personne).
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 lenregis-
trement courant du fichier de donnes.
Dans ce code, si lenregistrement a t trouv, il est affich grce la fonction FichierVersE-
cran.
5. Enregistrez la fentre.
!
Testez la fentre. Saisissez une valeur dans la combo et cliquez sur le bouton de recherche. Le
rsultat est immdiat.
HLitRecherchePremier(PERSONNE, IDPersonne, COMBO_Personne)
SI HTrouve(PERSONNE) = Vrai ALORS
FichierVersEcran()
FIN
N
o
t
e
La fonction FichierVersEcran effectue lopration inverse de EcranVersFichier :
les donnes prsentes dans les rubriques du fichier de donnes sont affiches
dans les champs correspondants.
GAF WinDev.book Page 113 Jeudi, 5. juillet 2012 9:16 09
114 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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. Crez un champ de saisie (icne ).
2. Ce champ a pour nom "SAI_Nom_recherch" et pour libell "Nom recherch".
!
Pour crer le bouton de recherche :
1. Crez un bouton (icne ).
2. Positionnez le bouton ct du champ de saisie qui vient dtre cr.
3. Ce champ a pour nom "BTN_Generique", et pour libell "Recherche gnrique".
4. Saisissez le code suivant :
La fonction HLitRecherche permet de raliser une recherche gnrique. Dans cet exemple, la
recherche se fait sur le fichier PERSONNE et sur la rubrique "NomPrnom". La valeur recher-
che correspond la valeur saisie dans le champ SAI_Nom_Recherch. Cette valeur est obte-
nue en utilisant directement le nom du champ.
5. Enregistrez la fentre.
!
Testez la fentre. Saisissez une valeur dans le champ de saisie et cliquez sur le bouton de
recherche. Le rsultat est immdiat. Cependant, si plusieurs enregistrements correspondent,
seul le premier est affich.
HLitRecherche(PERSONNE, NomPrnom, SAI_Nom_Recherch)
SI HTrouve(PERSONNE)=Vrai ALORS
RAZ()
FichierVersEcran()
SINON
Erreur("Aucune personne ne correspond")
FIN
N
o
t
eIl est possible de faire une recherche lidentique avec la fonction
HLitRecherche : il suffit dutiliser la constante hIdentique.
GAF WinDev.book Page 114 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 115 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Modification de la fiche affiche
Lorsque le rsultat de la recherche est affich, il peut tre intressant de modifier les informa-
tions affiches. Modifier les valeurs des champs de saisie est simple, mais il faut ensuite les pren-
dre en compte dans le fichier de donnes. Pour cela, nous allons crer un bouton de modification.
!
Pour crer le bouton de modification :
1. Crez un bouton de type "Modifier" (flche droite de licne ).
2. Positionnez le bouton sous le bouton "Ajouter".
3. Ce champ a pour nom "BTN_Modifier", et pour libell "Modifier".
4. Saisissez le code suivant :
Dans ce code, la fonction HModifie permet de modifier lenregistrement en cours avec les don-
nes prsentes dans lcran.
La fonction ListeAffiche permet de mettre jour la combo de recherche (par exemple en cas
de modification du nom).
5. Enregistrez et testez votre fentre.
Parcours des fiches
Nous allons maintenant ajouter des boutons pour parcourir les diffrents enregistrements.
!
Crez quatre boutons qui ont pour nom par exemple "BTN_Premier", "BTN_Prcdent",
"BTN_Suivant", et "BTN_Dernier".
Le code de ces boutons sera :
EcranVersFichier()
HModifie(PERSONNE)
ListeAffiche(COMBO_PERSONNE, taCourantBandeau)
N
o
t
e
Lors de la modification dun enregistrement, des erreurs dintgrit, de
doublons, ... peuvent survenir. Par dfaut, le mcanisme de la gestion automati-
que des erreurs est activ (comme nous lavons dj vu lors de lajout).
// Bouton BTN_Premier : appeler le premier
HLitPremier(Personne)
SI HEnDehors(Personne) = Vrai ALORS
Info("Aucune fiche visualiser")
SINON
FichierVersEcran()
FIN
// Bouton BTN_Prcdent : appeler le prcdent
HLitPrcdent(Personne)
SI HEnDehors(Personne) = Vrai ALORS
Info("Dbut du fichier atteint")
SINON
FichierVersEcran()
FIN
GAF WinDev.book Page 115 Jeudi, 5. juillet 2012 9:16 09
116 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La fonction HLitPremier permet de lire le premier enregistrement du fichier de donnes, selon la
cl utilise pour la dernire recherche.
La fonction HLitDernier est base sur le mme principe, cette fonction va lire l'enregistrement qui
a la valeur de cl la plus grande.
La fonction HLitSuivant va lire l'enregistrement qui a la valeur de cl immdiatement suprieure
celle de l'enregistrement en cours.
La fonction HLitPrcdent va lire l'enregistrement qui a la valeur de cl immdiatement infrieure
celle de l'enregistrement 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 et testez-la. Parcourez le fichier de donnes en cliquant sur chacun des
boutons.
// Bouton BTN_Suivant : appeler le suivant
HLitSuivant(Personne)
SI HEnDehors(Personne) = Vrai ALORS
Info("Fin du fichier atteinte")
SINON
FichierVersEcran()
FIN
// Bouton BTN_Dernier : appeler le dernier
HLitDernier(Personne)
SI HEnDehors(Personne) = Vrai ALORS
Info("Aucune fiche visualiser")
SINON
FichierVersEcran()
FIN
GAF WinDev.book Page 116 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 117 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.5. TABLE SUR UNE REQUTE
Ce que vous allez apprendre dans cette leon ...
Cration dune requte paramtre
Cration dune fentre avec une table base sur la requte
Cration dun tat automatique sur la table
Dure estime : 20mn
GAF WinDev.book Page 117 Jeudi, 5. juillet 2012 9:16 09
118 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Dans cette leon, nous allons apprendre manipuler les tables. Dans notre exemple, nous allons
crer une fentre contenant une table listant les mouvements effectus dans une priode don-
ne.
Cette table est base sur une requte que nous allons crer. La requte permet de slectionner
les enregistrements affichs dans la table.
La fentre est la suivante :
Cration dune requte paramtre
!
Pour crer une requte, nous allons utiliser lditeur de requtes.
1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration de 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 lcran suivant.
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.
N
o
t
e
Cette leon "survole" la cration de requte. Une partie entire de ce cours
dauto-formation est consacre la gestion des requtes (Crez une requte de
slection, page 307).
GAF WinDev.book Page 118 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 119 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous voulons afficher :
le numro de compte (rubrique NumCompte du fichier COMPTE),
la date du mouvement qui a t ralis (rubrique DateMvt du fichier MOUVEMENT),
son intitul (rubrique Intitul du fichier MOUVEMENT),
la nature du mouvement (rubrique Intitul du fichier NATUREMVT)
son montant (rubrique Montant du fichier MOUVEMENT).
La fentre de description de la requte est la suivante :
5. Nous allons trier les donnes par date. Slectionnez la rubrique "MOUVEMENT.DateMvt",
puis cliquez sur le bouton "Trier" et slectionnez loption "Trier sur la rubrique slectionne".
Indiquez un tri croissant sur la rubrique et validez.
6. Nous allons maintenant indiquer que la date correspond une priode saisie par lutilisa-
teur. Pour cela, slectionnez la rubrique "MOUVEMENT.DateMvt", puis cliquez sur le bouton
"Entre deux dates".
GAF WinDev.book Page 119 Jeudi, 5. juillet 2012 9:16 09
120 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les deux dates seront fournies par lutilisateur : indiquez que la valeur est comprise entre
deux paramtres et validez.
7. Notre requte est termine. Donnez un nom la requte (par exemple REQ_Mouvement, en
haut gauche de lcran). Validez la fentre de description de la requte.
8. Nous allons tester la requte : cliquez sur . La fentre qui saffiche demande les para-
mtres de la requte.
Slectionnez le paramtre "Param1" dans la table et saisissez sa valeur dans le champ de
saisie, par exemple 01/10/2011.
Slectionnez le paramtre "Param2" dans la table et saisissez sa valeur (par exemple 01/
12/2011).
9. Validez. Le rsultat saffiche automatiquement.
Nous allons maintenant crer la fentre contenant la table associe cette requte.
Cration dune fentre avec une table base sur la requte
La fentre que nous allons crer va permettre lutilisateur de saisir lintervalle de dates pour
lequel la liste des mouvements effectus doit tre affiche.
!
Pour crer la fentre avec le champ table :
1. Crez une nouvelle fentre (option "Fichier .. Nouveau .. Fentre"). Slectionnez une fentre
"vierge" et validez.
2. Donnez un nom et un titre votre fentre : par exemple : FEN_Mouvements et "Mouve-
ments pour une priode donne".
3. Crez un champ table (icne ). Lassistant de cration de table se lance.
4. Nous allons crer une table base sur la requte que nous venons de crer. Slectionnez
loption "Afficher les donnes dun fichier ou dune requte existante". Passez lcran suivant
de lassistant.
5. Slectionnez la requte qui sera la source de donnes de la table : REQ_Mouvement. Pas-
GAF WinDev.book Page 120 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 121 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
sez lcran suivant de lassistant.
6. Slectionnez toutes les rubriques proposes. Passez lcran suivant de lassistant.
7. Slectionnez la rubrique de parcours : "DateMvt". Passez lcran suivant de lassistant.
8. Saisissez les diffrents paramtres de la table : gardez les options proposes par dfaut et
dcochez loption "Gnrer le code dinitialisation des paramtres de la requte".
Passez lcran suivant de lassistant.
9. Slectionnez lorientation de la table : Vertical. Passez lcran suivant de lassistant.
10. Donnez un nom et un titre la table (par exemple "TABLE_Mouvements" et "Mouvements
raliss pour la priode donne"). Validez.
11. La table est automatiquement cre. Vous pouvez la redimensionner ou redimensionner
la fentre.
12. Enregistrez la fentre.
!
Pour crer les champs permettant de saisir lintervalle de dates, nous allons utiliser un super-
champ fourni par dfaut avec WinDev.
1. Affichez si ncessaire le volet "Assistants, exemples et composants" (option "Affichage ..
Barres doutils .. Volets .. Assistants, exemples et composants").
2. Slectionnez "Champs".
3. Slectionnez "Superchamp".
4. Slectionnez le superchamp "Saisie dune priode" et ralisez un "Glisser/dplacer" vers la
fentre : positionnez le superchamp par exemple au-dessus de la table.
!
Nous allons maintenant saisir le code qui va permettre dinitialiser la table. Ce code va tre
saisi dans un bouton spcifique.
1. Crez un nouveau bouton. Ce bouton a pour nom "BTN_Mouvement" et pour libell "Mouve-
ments de la priode".
2. Affichez le code du bouton (par exemple avec loption "Code" du menu contextuel du bou-
ton).
3. Saisissez le code suivant dans le code de clic du bouton :
Ce code permet dinitialiser les paramtres de la requte REQ_Mouvement avec les valeurs
saisies dans les champs Date.
La requte est ensuite excute, puis la table est affiche.
!
Il ne nous reste plus qu enregistrer et tester la fentre.
A
t
t
e
n
t
i
o
n
!
Loption "Gnrer le code dinitialisation des paramtres de la requte" permet
de gnrer le code dinitialisation du champ Table. Cette option est utiliser avec
prcaution car le code gnr utilise les valeurs par dfaut donnes lors du test
de la requte.
REQ_Mouvement.Param1 = SC_SlectionPriode.SAI_DateDbut
REQ_Mouvement.Param2 = SC_SlectionPriode.SAI_DateFin
HExcuteRequte(REQ_Mouvement)
TableAffiche(TABLE_Mouvements, taCourantPremier)
GAF WinDev.book Page 121 Jeudi, 5. juillet 2012 9:16 09
122 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Imprimer le contenu de la table
La fentre affiche correctement les mouvements effectus par compte entre deux dates. Pourquoi
ne pas mettre ces informations dans un tat pour les imprimer ? Mais comment faire ltat ?
Rien de plus simple avec WinDev ! Les donnes sont affiches dans une table ? La table propose
automatiquement un menu contextuel contenant une option "Imprimer".
!
Pour imprimer automatiquement le contenu de la table :
1. Lancez le test de la fentre (icne GO).
2. Saisissez la priode voulue pour afficher les mouvements. Cliquez sur le bouton "Mouve-
ments de la priode".
3. Lorsque les donnes sont affiches dans la table, affichez le menu contextuel de la table
(icne en haut droite ou clic droit sur la table). Cliquez sur loption "Imprimer". La fen-
tre suivante saffiche :
4. Slectionnez loption "Imprimer directement". Si ncessaire, choisissez dimprimer en mode
"Paysage" le contenu de la table. Ltat correspondant la table est aussitt affich dans une
fentre daperu.
5. Fermez la fentre daperu et arrtez le test de lapplication.
N
o
t
e
En mode test, vous avez la possibilit dimprimer directement le contenu de la
table ou de crer un tat sur table. Cette option cre automatiquement ltat cor-
respondant dans lditeur dtats.
En excution, lutilisateur final a la possibilit dimprimer directement ou de lan-
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 363.
GAF WinDev.book Page 122 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 123 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Est-ce que lon peut imaginer plus simple? En fait, vous venez dutiliser une FAA de lapplication
WinDev. Ces trois lettres correspondent Fonctionnalits Automatiques de lApplication. En effet,
une application WinDev contient par dfaut un ensemble de fonctionnalits qui sont
automatiques : aucun dveloppement supplmentaire nest ncessaire. WinDev est votre ser-
vice pour simplifier vos dveloppements.
Vous voulez personnaliser ltat propos par dfaut? Il suffit de crer un tat automatique sur la
table. Cet tat (sil existe) sera automatiquement utilis par loption dimpression de la table.
Cration dun tat automatique sur la table
Pour crer un tat imprimant les donnes dune table, il suffit de crer un bouton de type "Bouton
Etat sur table" et ltat correspondant la table est cr automatiquement.
!
Pour ajouter un bouton "Etat sur table" :
1. Slectionnez loption "Insertion .. Spcial .. Bouton tat sur table".
2. Ltat est immdiatement cr.
3. Une fentre saffiche proposant dajouter ltat au projet. Validez.
4. Revenez sur la fentre "FEN_Mouvements" (par exemple en cliquant sur le bouton
"FEN_Mouvements" prsent dans la barre des lments ouverts sous WinDev).
5. Le bouton "Imprimer" a t positionn en haut gauche de la fentre. Dplacez-le par
exemple au-dessus de la table.
6. Enregistrez la fentre et testez-la. Utilisez le bouton dimpression ou loption "Imprimer" du
menu contextuel de la table : ltat que vous venez de crer est utilis dans les deux cas.
N
o
t
e
La liste complte des FAA (Fonctionnalits automatiques de lapplication) est dis-
ponible dans le fichier WinDev FAA 17.PDF. Ce fichier est automatiquement int-
gr dans votre application si vous choisissez loption "Aide des FAA" lors de la
cration du menu automatique.
GAF WinDev.book Page 123 Jeudi, 5. juillet 2012 9:16 09
124 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.6. ETAT AVEC REQUTE INT-
GRE
Ce que vous allez apprendre dans cette leon ...
Crer un tat avec requte intgre.
Modifier un tat avec requte intgre.
Tester un tat avec requte intgre.
Dure estime : 20mn
GAF WinDev.book Page 124 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 125 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Dans la leon prcdente, nous avons cr un tat trs rapidement. Dans cette leon, nous allons
nous arrter sur la cration dun tat bas sur une requte. Mais au lieu de faire dabord la
requte, puis ltat, nous allons crer la requte pendant la description de ltat. Dans ce cas, la
requte sera intgre ltat : elle ne pourra pas tre utilise ailleurs dans le projet.
Ltat que nous allons crer est relativement simple : nous voulons afficher pour chaque compte
de chaque banque les oprations ralises.
Cration dun tat
!
Pour crer un tat :
1. Slectionnez loption "Fichier .. Nouveau". Survolez la catgorie "Etat" et slectionnez
loption "Etat". Lassistant de cration dun tat se lance automatiquement.
2. Slectionnez un tat de type "Tableau". Passez lcran suivant de lassistant.
3. Ltat va tre bas sur une requte que nous allons crer : slectionnez loption "Dune
nouvelle requte". Passez lcran suivant de lassistant.
4. Lcran de description de la requte apparat. Nous allons dfinir les rubriques qui vont
composer la requte :
La rubrique "Organisme" du fichier BANQUE : le nom de la banque
La rubrique "NumCompte" du fichier COMPTE : le numro de compte
La rubrique "Intitul" du fichier NATUREMVT : lintitul de lopration
La rubrique "DateMvt" du fichier MOUVEMENT : la date de lopration
La rubrique "Montant" du fichier MOUVEMENT : le montant de lopration
La rubrique "Sens" du fichier MOUVEMENT : le sens de lopration.
N
o
t
eCette leon "survole" la cration dun tat. Une partie entire de ce cours dauto-
formation est consacre la gestion des tats (Votre premier etat, page 329).
GAF WinDev.book Page 125 Jeudi, 5. juillet 2012 9:16 09
126 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5. Nous allons trier les donnes :
slectionnez la rubrique Organisme et dfinissez un tri croissant (bouton "Trier").
slectionnez la rubrique NumCompte et dfinissez un tri croissant (bouton "Trier")
6. Validez la requte. Lassistant de cration dtat continue.
GAF WinDev.book Page 126 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 127 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7. Ltat va contenir une rupture (cochez "Oui"). Les ruptures servent regrouper les donnes.
Dans ltat, les donnes vont tre regroupes par organisme bancaire. Passez lcran sui-
vant.
8. Lassistant propose automatiquement la rubrique Organisme et la rubrique NumCompte
comme rubriques de rupture. Ce sont les rubriques pour lesquelles nous avons dfini un tri
dans la requte. Slectionnez uniquement la rubrique Organisme et passez lcran suivant.
9. Cet cran est trs important. En effet, il permet dassocier les diffrentes rubriques asso-
cies ltat aux diffrentes zones de ltat. Dans cet exemple, lorganisme et le numro de
compte seront affichs en haut de rupture.
Nous allons galement changer lordre des rubriques : dans le "corps" de ltat (le bloc princi-
pal), le tableau affichera la date, lintitul, le sens et le montant. Utilisez les flches ct du
tableau pour rorganiser les rubriques.
GAF WinDev.book Page 127 Jeudi, 5. juillet 2012 9:16 09
128 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Passez lcran suivant.
10. Lcran suivant nous propose de faire un total sur la rubrique Montant chaque fin de
rupture. Acceptez en passant lcran suivant.
11. Pour les dimensions du papier, choisissez laffichage en mode paysage. Passez lcran
suivant.
12. Choisissez un gabarit pour votre tat (Elegant par exemple).
13. Donnez un nom et un titre ltat (par exemple ETAT_Opration, et "Oprations par
compte bancaire").
14. Validez.
15. Ltat est automatiquement cr.
16. Enregistrez ltat.
Test dun tat
!
Pour tester un tat :
1. Lancez le test grce licne .
2. Choisissez le mode dimpression "Aperu avant impression" :
3. Ltat apparat dans une fentre daperu.
!
Si vous regardez attentivement cet tat, vous vous rendrez compte que cet tat est faux! La
somme des montants calculs ne tient pas compte du sens du mouvement. Nous allons faire
quelques modifications dans ltat pour y remdier.
1. Editez le code du bloc CORPS (positionnez le curseur de la souris dans la partie CORPS de
ltat et slectionnez loption "Code du bloc" du menu contextuel).
2. Dans le code "Avant impression" du bloc, ajoutez le code suivant :
Ce code permet de prendre en compte les montants ngatifs.
3. Fermez lditeur de code (option "Fichier .. Fermer").
4. ditez la description du champ "CALC_Montant". Ce champ correspond au montant prsent
dans le bloc BAS DE RUPTURE. Ce champ affiche le montant total. Par dfaut, il est li la
rubrique "Montant" de la requte utilise par ltat.
// Affichage des montants ngatifs en cas de dbit
SI RUB_Sens = 1 ALORS
RUB_Montant = RUB_Montant*-1
FIN
GAF WinDev.book Page 128 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 129 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5. Modifiez la mthode de calcul du total : le total doit tre fait sur le champ "RUB_Montant".
Affichez longlet "Liaison" de la description du champ et slectionnez le champ de ltat
RUB_Montant" :
6. Validez.
7. Enregistrez ltat et testez-le.
Modification dun tat
Nous allons maintenant apporter une petite amlioration ltat que nous venons de raliser :
chaque nouvel organisme bancaire va safficher sur une nouvelle page. Lorganisme bancaire est
la rubrique qui sert de tri et de rupture. Nous allons donc ajouter un saut de page aprs chaque
rupture.
!
Pour ajouter un saut de page aprs chaque rupture :
1. Affichez ltat sous lditeur (si ncessaire).
2. Cliquez dans la zone "Bas de rupture 1".
3. Affichez le menu contextuel (clic droit) et slectionnez loption "Description du bloc".
4. Slectionnez longlet "Dtail" de la fentre de description.
5. Cochez loption "Saut de page aprs le bloc".
6. Validez.
7. Enregistrez et testez ltat.
GAF WinDev.book Page 129 Jeudi, 5. juillet 2012 9:16 09
130 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.7. LE GROUPWARE UTILISATEUR
Ce que vous allez apprendre dans cette leon ...
Qu'est-ce le groupware utilisateur?
Intgrer le groupware utilisateur
Configurer le groupware utilisateur
Tester le groupware utilisateur
Dure estime : 20mn
GAF WinDev.book Page 130 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 131 (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 d'une gestion commerciale, l'application pro-
pose les fonctionnalits suivantes :
Consultation du tarif
Modification du tarif
Saisie des commandes
Saisie des clients.
Selon l'utilisateur, 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 "Mes comptes" et le configu-
rer.
Intgrer le groupware utilisateur
!
Pour intgrer le groupware utilisateur dans le projet "Mes comptes" :
1. Slectionnez loption de menu "Atelier .. Paramtrer le groupware utilisateur". La fentre de
paramtrage du groupware utilisateur saffiche.
2. Cochez loption "Activer la gestion du groupware utilisateur".
3. Conservez les options par dfaut de longlet "Gnral" :
Intgration par dfaut : la fentre de login est automatiquement intgre lapplication.
GAF WinDev.book Page 131 Jeudi, 5. juillet 2012 9:16 09
132 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lancement automatique : le groupware est lanc ds le dmarrage de lapplication.
4. 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 HyperFileSQL Classic, dans lemplacement spcifi par dfaut.
5. Slectionnez loption "Activer lhistorique des connexions". Cette option permet au supervi-
seur de savoir qui sest connect, quand et quelle heure.
6. Validez. Le groupware utilisateur est intgr dans lapplication.
!
Nous allons tout de suite tester notre application :
1. Lancez le test du projet ( ). Une fentre de login apparat.
2. Connectez-vous en tant que superviseur.
3. Un nouveau menu apparat, permettant soit de tester lapplication, soit de configurer
lapplication.
4. Choisissez loption "Configurer le groupware". Nous allons configurer le groupware utilisa-
teur.
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.
N
o
t
e
Lintgration personnalise permet de personnaliser les fentres et le code du
groupware utilisateur. Cette option est destine aux dveloppeurs voulant par
exemple traduire les fentres du groupware utilisateur ou les personnaliser.
Si le client final utilise un annuaire LDAP, il est possible de lutiliser pour authen-
tifier les utilisateurs.
Lors de linstallation de lapplication, lutilisateur pourra saisir les paramtres de
son annuaire LDAP.
N
o
t
eSi vous utilisez (ou si lutilisateur final utilise) Windows Vista (ou un systme
dexploitation plus rcent), il est conseill dutiliser le rpertoire des donnes.
N
o
t
e
Par dfaut, un seul utilisateur existe, le superviseur. Pour se connecter en tant
que superviseur utilisez :
le nom: SUPERVISEUR
le mot de passe : SUPERVISEUR
N
o
t
e
La configuration des utilisateurs peut tre ralise :
lors du dveloppement de lapplication. Les fichiers de donnes ncessaires
(des utilisateurs et de leurs droits) pourront tre installs avec lapplication.
lorsque lapplication est installe, par ladministrateur de lapplication.
GAF WinDev.book Page 132 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 133 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour configurer le groupware utilisateur :
1. Crez les diffrents utilisateurs qui auront accs lapplication (bouton "Nouvel utilisa-
teur"). Par dfaut, seul le superviseur existe.
Crez le nouvel utilisateur TEST.
Dcochez loption "Saisie du mot de passe au premier lancement".
Indiquez le mot de passe : "test".
2. Associez si ncessaire les utilisateurs un groupe. Le bouton "Nouveau groupe" permet de
crer des groupes.
3. Paramtrez les droits des utilisateurs grce au bouton "Modifier les droits". La fentre qui
saffiche permet de slectionner chaque fentre de lapplication. Pour chaque lment de la
fentre, il est possible de dire si le champ aura le comportement de lapplication (dfaut) ou
sera inactif, invisible ou gris.
4. Fermez la fentre de configuration.
5. Si vous choisissez de lancer lapplication, lapplication fonctionne normalement.
6. Fermez lapplication et revenez sous lditeur.
!
Dans la suite de ce cours, nous nutiliserons plus le groupware utilisateur. Vous pouvez direc-
tement le dbrancher (option "Atelier .. Paramtrer le groupware utilisateur", dcochez loption
"Activer la gestion du groupware utilisateur").
N
o
t
e
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
login. Il suffit de renseigner loption "Login automatique en mode test" de la fen-
tre de paramtrage du groupware.
GAF WinDev.book Page 133 Jeudi, 5. juillet 2012 9:16 09
134 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.8. LE TABLEAU DE BORD
Ce que vous allez apprendre dans cette leon ...
Quest-ce que le tableau de bord?
Tests automatiques
Optimisation de requtes
Dure estime : 20mn
GAF WinDev.book Page 134 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 135 (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
tableau de bord permet davoir une vision globale et synthtique de ltat davancement dun pro-
jet.
Le tableau de bord est constitu de jauges, de voyants, de compteurs permettant de voir dun seul
coup dil ltat dun projet.
Dans cette partie, nous nous limiterons la gestion des tests automatiques et loptimisation des
requtes.
Le tableau de bord sera abord plus en dtail dans le chapitre Tableau de bord, page 419.
!
Pour afficher le tableau de bord du projet (si ce nest pas dj fait), cliquez sur licne .
Tests automatiques
Une des fonctionnalits intressante 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.
!
Cliquez sur le voyant test. La fentre de taux de validation de lapplication apparat.
Cette fentre recense tous les tests qui ont t effectus sur lapplication :
Tests manuels (cest les tests que nous avons dj effectus)
Tests automatiques.
GAF WinDev.book Page 135 Jeudi, 5. juillet 2012 9:16 09
136 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les tests automatiques sont une catgorie de tests spcifiques. Les tests automatiques permet-
tent 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.
!
Pour crer un test automatique sur une fentre, il suffit de tester la fentre :
1. Ouvrez la fentre "FEN_PersonneX" cre prcdemment.
2. Slectionnez loption "Tests automatiques .. Enregistrer un nouveau test".
3. Dans la fentre qui saffiche, cliquez sur "Commencer lenregistrement".
4. Le test de la fentre se lance.
5. Saisissez un nom dans la zone "Nom recherch" et cliquez sur le bouton "Recherche gnri-
que".
6. Cliquez sur le bouton "Fermer".
7. Le test est termin.
8. Lditeur de tests propose denregistrer une description pour le test. Le test sappelle "Test
gnrique" et sa description correspond "Test de la recherche gnrique". Validez.
9. Le code du test en WLangage apparat sous lditeur de code. Fermez cette fentre de
code.
10. Lditeur de tests apparat :
Le test est actuellement en cours de construction.
N
o
t
eLes tests automatiques peuvent tre raliss sur des fentres, des procdures,
des classes.
N
o
t
eLes fonctions WLangage permettant de raliser des tests automatiques sont les
fonctions PiloteXXX.
GAF WinDev.book Page 136 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 137 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
11. Nous allons rendre le test disponible (cliquez sur le lien "Terminer la construction du test
et le rendre disponible"). Maintenant, le test pourra tre lanc tout moment. Lditeur de
tests nous indique que le test nest jamais pass. Cliquez sur le lien "Lancer le test".
12. Le test sexcute automatiquement et lditeur de tests affiche le rsultat (le test est
pass avec succs dans notre cas).
13. 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 champ de recherche "SAI_Nom_Recherch". Nous allons ajouter un
code de vrification dans le code "A chaque modification".
1. Ajoutez le code suivant dans le code "A chaque modification" du champ
SAI_Nom_Recherch :
2. Enregistrez la fentre.
3. Passez le test associ la fentre en utilisant loption "Tests automatiques .. Lancer les
tests".
4. Le test est dsormais en erreur.
5. Modifiez le code du champ de recherche de la faon suivante :
6. Relancez le test. Le test passe maintenant correctement.
Une autre possibilit de lditeur de tests est la possibilit dutiliser un jeu de tests : cest le con-
cept des itrations. En effet, dans notre exemple, nous avons test uniquement la recherche sur
une personne. Nous allons modifier notre test pour rechercher les diffrentes personnes de notre
fichier. Ce test nest pas un cas rel de test, mais il permet de tester la fonctionnalit des itra-
tions.
1. Affichez lditeur de tests (par exemple double-cliquez sur "TEST_PersonneX" dans lexplo-
rateur de projet).
2. Affichez la description du test (Option "Description" du menu contextuel du "Test gnri-
que").
3. Longlet "Donnes" permet de saisir les paramtres prendre en compte dans le test. Dans
notre exemple, nous aurons uniquement en paramtre dentre, le nom recherch :
Cliquez sur le bouton "+" situ droite du tableau "Paramtres dentre".
Remplacez "Paramtre1" par "Individu".
Le type du paramtre est "Chane Ansi" (slectionnez ce type dans la liste).
SI Taille(SAI_Nom_Recherch)>=2 ALORS
BTN_GENERIQUE..Etat = Gris
SINON
BTN_GENERIQUE..Etat = Actif
FIN
SI Taille(SAI_Nom_Recherch)<=2 ALORS
GAF WinDev.book Page 137 Jeudi, 5. juillet 2012 9:16 09
138 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
En commentaire, indiquez "Personne recherche".
Validez la fentre de description.
4. Sous lditeur de tests, cliquez sur longlet "Donnes de test". Nous allons saisir les noms
des personnes prsentes dans notre fichier de donnes, par exemple :
Pour cela :
Cliquez sur le bouton "+" droite de la table.
Saisissez dans la colonne "Individu", Moulain.
Cliquez sur le bouton "+" droite de la table.
GAF WinDev.book Page 138 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 139 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Saisissez dans la colonne "Individu", Teste.
Cliquez sur le bouton "+" droite de la table.
Saisissez dans la colonne "Individu", Vini
5. Nous allons maintenant diter le code du test pour prendre en compte le paramtre. Slec-
tionnez loption "Code" du menu contextuel du test "Test gnrique". Il est ncessaire de rem-
placer le nom utilis pendant le test par la variable "Individu"
6. Lancez le test.
Lditeur de tests propose de nombreuses fonctionnalits que nous ne pourrons pas aborder
dans ce cours :
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.
Audit statique et optimisation des requtes
Revenons au tableau de bord de notre application (bouton ).
Nous allons lancer un audit statique de notre application. Laudit statique permet de dtecter rapi-
dement toutes les amliorations pouvant tre effectues : correction des fautes dorthographe,
optimisation des requtes, ...
GAF WinDev.book Page 139 Jeudi, 5. juillet 2012 9:16 09
140 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Dans le tableau de bord, cliquez sur le bouton "Audit statique". Dans lassistant, slectionnez
"Lancer laudit statique sur le projet complet". La fentre de compte-rendu de laudit saffiche :
Remarque : Il est possible de configurer les informations affiches dans laudit statique grce au
bouton .
Regardons la synthse de cet audit :
Lancement du profiler (galement appel lanalyseur de performances). Lanalyseur de perfor-
mances sera tudi dans une prochaine partie de ce cours dauto-formation.
Optimisation des requtes : laudit statique a dtect quune requte de notre application pou-
vait tre optimise. Nous allons effectuer cette opration immdiatement.
GAF WinDev.book Page 140 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 141 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour optimiser la requte :
1. Cliquez sur le bouton [...] de la ligne correspondante dans laudit statique.
2. La fentre doptimisation est automatiquement affiche.
Pour optimiser les requtes du projet, WinDev propose de crer des cls composes. Ces cls
composes doivent tre cres dans lanalyse. WinDev va raliser ces modifications automati-
quement.
3. Cliquez sur le bouton "Appliquer ces modifications dans lanalyse" et validez.
4. Pour prendre en compte les modifications, il est ncessaire de regnrer lanalyse puis
deffectuer la modification automatique des fichiers de donnes.
GAF WinDev.book Page 141 Jeudi, 5. juillet 2012 9:16 09
142 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.9. DPLOIEMENT DE LAPPLICA-
TION
Ce que vous allez apprendre dans cette leon ...
Cration de lexcutable
Aide des nouveauts
Cration de linstallation
Dure estime : 20mn
GAF WinDev.book Page 142 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 143 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Notre premire application est termine. 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 Win-
Dev.
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 con-
natre 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. Slectionnez loption "Atelier .. Excutable .. Gnrer lExcutable Windows (32 bits)" (ou cli-
quez sur licne ).
2. Lassistant de cration dexcutable se lance. Un premier cran prsentant ltat des tests
automatiques est affich. Dans notre cas, tous les tests automatiques ont t passs avec
succs. Passez lcran suivant.
3. Lcran suivant permet de dcrire 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. WinDev propose plusieurs types de splash screen. Par dfaut, un
splash screen avec texte anim est slectionn. Le bouton "Options" permet de le configu-
rer.
4. Passez lcran suivant. Pour le fonctionnement de lexcutable, nous garderons les
options par dfaut. Passez lcran suivant.
5. Lcran suivant permet de personnaliser le message derreur de lapplication. Nous garde-
rons le message propos par dfaut. Passez lcran suivant.
6. Lcran suivant permet de dfinir lutilisation du MCU dans notre application.
N
o
t
eWinDev permet galement de crer des excutables 64 bits, des excutables
Linux. des services, des applications Java, ...
N
o
t
e
Le MCU (Macro Code Utilisateur) donne la possibilit lutilisateur final de crer
ses propres procdures en WLangage pour modifier le fonctionnement dun
champ, dune fentre, ... Si le MCU est intgr dans lapplication, lutilisateur dis-
posera dun bouton supplmentaire dans la barre de titre pour saisir les codes
supplmentaires.
Pour plus dinformations, consultez laide en ligne (mot-cl "MCU").
GAF WinDev.book Page 143 Jeudi, 5. juillet 2012 9:16 09
144 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous garderons les options par dfaut. Passez lcran suivant.
7. Lcran suivant permet de dire si lexcutable prendra en compte les patchs.
Nous garderons les options par dfaut. Passez lcran suivant.
8. Lcran suivant permet de grer les langues de lexcutable. Nous aborderons le sujet du
multilingue dans une prochaine leon. Nous garderons les options par dfaut. Passez
lcran suivant.
9. Lcran suivant rcapitule tous les fichiers qui seront intgrs dans la bibliothque de lex-
cutable. Ce sont tous les lments de votre projet qui peuvent tre manipuls par lutilisateur
final. Nous garderons les options par dfaut. Passez lcran suivant.
10. Lcran suivant permet de grer les composants utiliss par lexcutable. Nous verrons la
cration et lutilisation des composants plus loin dans ce cours dauto-formation. Passez
lcran suivant.
11. Lcran suivant concerne le rpertoire des fichiers de donnes. Si votre application doit
tre dploye sur Windows Vista, il est conseill de choisir loption "Rpertoire des donnes de
lapplication".
Slectionnez loption correspondant votre systme. Passez lcran suivant.
12. Nous allons maintenant saisir les informations de lexcutable. Ces informations sont affi-
ches sous lexplorateur Windows en slectionnant les proprits du fichier.
N
o
t
e
Lors dune modification de lapplication, pour viter de livrer la totalit de lexcu-
table, il est possible de livrer des ressources complmentaires (fentres,
tats, ...) sous forme de patchs. Ces patchs sont en fait des bibliothques additi-
ves.
Si lexcutable a t cr avec l'option "Oui, lexcutable prendra en compte ces
mises jour par patch", lors du lancement de l'application, les lments pr-
sents dans le patch se substitueront aux lments prsents dans la bibliothque
de l'application.
Pour plus dinformations, consultez laide en ligne.
N
o
t
e
Sous Windows Vista et suprieur, le systme de lUAC implique lutilisation des
normes de programmation Windows.
Pour plus dinformations, consultez laide en ligne.
GAF WinDev.book Page 144 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 145 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Entrez par exemple les informations suivantes :
Cet cran permet galement de signer si ncessaire lexcutable.
Passez lcran suivant.
13. 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.
14. Lcran suivant concerne le framework WinDev.
Loption "Utiliser uniquement le framework propre lapplication" permet dutiliser unique-
ment les librairies ncessaires.
Loption "Utiliser le framework WinDev commun" permet dutiliser le framework commun tou-
tes les applications 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 tou-
tes les applications WinDev. Cochez cette option.
Passez lcran suivant.
15. Un cran concernant Windows Vista apparat. Cet cran permet dintgrer un manifeste
pour une utilisation sous Windows Vista.
Passez lcran suivant.
16. Lexcutable est cr. Il est possible de le lancer immdiatement, pour vrifier son fonc-
tionnement. Pour cela, cliquez sur le bouton "Lancer lexcutable").
N
o
t
eLe framework correspond aux diffrentes librairies ncessaires au fonctionne-
ment de lexcutable.
GAF WinDev.book Page 145 Jeudi, 5. juillet 2012 9:16 09
146 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Voil, la cration de lexcutable est termine. Beaucoup dtapes, mais aprs une premire con-
figuration de vos choix, vous pouvez valider ds le dbut toutes les tapes.
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 Installation dune application, page 477.
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 bou-
ton vert pour valider la totalit des crans de lassistant.
Pour crer le programme dinstallation :
1. Slectionnez loption "Atelier .. Crer la procdure dinstallation". Lassistant de cration
dexcutable et dinstallation se lance.
2. Un cran saffiche proposant de crer la page des nouveauts.
N
o
t
e
Il est galement possible de cliquer directement sur les tapes indiques dans
lassistant pour parvenir directement un cran. Les options par dfaut des
autres crans seront automatiquement valides.
N
o
t
eNous avons dj cr lexcutable, cliquez directement dans lassistant sur
lintitul "Complments".
GAF WinDev.book Page 146 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 147 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 logi-
ciel.
Slectionnez loption "Crer une documentation des nouveauts" et passez lcran suivant.
3. Lcran suivant permet de dfinir les lments qui seront automatiquement intgrs au
fichier daide. Conservez les options par dfaut et passez lcran suivant.
4. 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 informa-
tions cres par dfaut. Pour reprendre la cration du programme dinstallation, cliquez sur
loption "Poursuivre la cration de la procdure dinstallation".
Laide est automatiquement compile.
5. 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 lcran suivant.
6. Choisissez une installation standard. Passez lcran suivant.
7. Nous ne changeons pas le rpertoire dinstallation par dfaut. Passez lcran suivant.
8. Dans la liste des fichiers installs, conservez les fichiers proposs. Passez lcran sui-
vant.
9. Dans les paramtres de la base de donnes, dcochez toutes les options. Passez lcran
suivant.
N
o
t
eSi lapplication possde dj un systme daide, il est possible de lutiliser pour
le complter avec une page de nouveauts.
GAF WinDev.book Page 147 Jeudi, 5. juillet 2012 9:16 09
148 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
10. Dans les modules complmentaires, conservez les options suivantes :
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 lcran suivant.
11. Nous allons slectionner WDOptimiseur. Cet outil permet de rindexer rgulirement les
fichiers de donnes de lapplication.
12. 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-
rpertoire "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.
13. Validez. Le programme dinstallation est automatiquement cr.
14. Testez immdiatement le programme dinstallation cr.
Conclusion
Voil, nous avons ralis une application de sa conception sous lditeur danalyses sa distribu-
tion en clientle. Nous avons dcouvert de nombreuses fonctionnalits de WinDev. Les chapitres
suivants vont permettre dapprofondir certaines de ces fonctionnalits.
GAF WinDev.book Page 148 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 149 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 2.10. QUESTIONS / RPONSES
Ce que vous allez apprendre dans cette leon ...
Trucs et astuces
GAF WinDev.book Page 149 Jeudi, 5. juillet 2012 9:16 09
150 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Effectuez les oprations suivantes :
1. Crez une nouvelle fentre ou ouvrez une fentre existante.
2. Slectionnez l'option "Fentres .. Menu principal .. Ajouter le menu principal".
Une option est cre automatiquement.
3. Faites un clic droit sur cette option.
4. Cliquez sur "Description de loption" pour modifier l'option slectionne.
5. Cliquez sur "Ajouter aprs" pour ajouter une nouvelle option aprs.
6. Cliquez sur "Ajouter avant" pour insrer une nouvelle option avant.
7. Cliquez sur "Insrer un sous-menu" pour ajouter un sous-menu dans l'arborescence du
menu.
La fonction Ouvre permet d'associer une fentre une option de menu. Saisissez le code suivant
dans le code de clic de votre option de menu :
Pour insrer automatiquement un menu "?" dans votre application, slectionnez loption
"Fentres ... Menu principal .. Ajouter le menu ?" et slectionnez les options dsires dans
lassistant qui se lance.
Un menu contextuel peut tre ajout :
soit au niveau de la fentre.
soit au niveau d'un champ.
Pour une fentre :
1. Faites un clic droit sur la fentre et slectionnez loption "Description".
2. Cliquez sur l'onglet "IHM" et cliquez sur licne ct de la combo "Menu contextuel".
Question
Comment crer le menu principal de mon application?
Question
Comment lier une fentre une option de mon menu principal?
Ouvre(MAFENETRE)
N
o
t
e
s
Pour associer un tat une option de menu, utilisez la fonction iImprimeEtat :
iImprimeEtat(MONETAT)
Question
Comment insrer automatiquement le menu "?" ?
Question
Comment crer un menu contextuel ?
GAF WinDev.book Page 150 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 151 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour un champ :
1. Faites un clic droit sur le champ et slectionnez loption "Description".
2. Cliquez sur l'onglet "IHM" et cliquez sur licne ct de la combo "Menu contextuel".
Pour connatre ou modifier le menu contextuel dun champ ou dune fentre par programmation,
utilisez la proprit ..MenuContextuel.
Il suffit dutiliser un bouton et la fonction DlaiAvantFermeture. Par exemple :
Pour plus de dtails, consultez laide en ligne (mot-cl : "Fermer, Fermeture automatique (bou-
ton)").
Notez que vous pouvez galement utiliser loption "Validation automatique" disponible dans
longlet "Dtail" de la description de la fentre.
Il suffit dutiliser la fonction LigneCommande dans le code d'initialisation du projet.
Consultez l'aide en ligne pour plus de dtails sur cette fonctionnalit (mot-cl : "Ligne de com-
mande").
Question
Comment fermer une fentre automatiquement aprs une dure
prdfinie?
DlaiAvantFermeture("FENETRE", "BOUTON", 200)
Question
Comment rcuprer des paramtres passs en ligne de commande un
excutable?
A
s
t
u
c
e
Vous pouvez simuler le passage de paramtres en ligne de commande votre
projet en mode test. Dans l'diteur :
1. Cliquez sur l'option "Projet .. Mode test .. Paramtrage du mode test".
2. Saisissez les paramtres de la ligne de commande.
GAF WinDev.book Page 151 Jeudi, 5. juillet 2012 9:16 09
152 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lors de la cration du programme d'installation, il est possible de prvoir la dsinstallation de
lapplication.
Si cette option a t choisie, le programme de dsinstallation a automatiquement t cr. Votre
application a donc t enregistre auprs de Windows pour pouvoir la dsinstaller ultrieurement.
Pour dsinstaller une application :
1. Cliquez dans le menu "Dmarrer".
2. Slectionnez le choix "Panneau de configuration".
3. Slectionnez "Ajout/Suppression de programmes".
4. Slectionnez lapplication et cliquez sur "Dsinstaller".
Lors de la cration de linstallation (option "Atelier .. Crer la procdure dinstallation"), vous avez
la possibilit de choisir diffrents supports dinstallation. En slectionnant loption "Support avec
autorun", WinDev crera un dossier dans lequel tous les fichiers ncessaires une installation
par CD-ROM seront crs (fichier AUTORUN, fichiers dinstallation, ...).
Vous navez plus alors qu graver le contenu de ce dossier complet sur un CD-ROM vierge pour
distribuer votre application !
L'excutable de votre projet peut tre cr en slectionnant l'option "Atelier .. Excutable .. Gn-
rer l'excutable Windows (32 bits)". Il est galement possible de crer un excutable 64 bits grce
loption "Atelier .. Excutable .. Gnrer l'excutable Windows (64 bits)".
Lorsque lexcutable a t ralis (option "Atelier .. Excutable .. Gnrer lexcutable Windows
(32 bits)"), le rpertoire EXE prsent dans le rpertoire de votre projet contient tous les lments
permettant de faire fonctionner votre application.
Pour prparer une installation de votre application :
1. Slectionnez l'option "Atelier .. Crer la procdure dinstallation". L'assistant de prparation
d'une installation dmarre.
2. Suivez les instructions lcran.
Question
Comment dsinstaller une application ralise avec WinDev?
Question
Comment crer une installation par CD-ROM?
Question
Comment crer un excutable?
Question
Comment installer une application?
GAF WinDev.book Page 152 Jeudi, 5. juillet 2012 9:16 09
Partie 2 : Application avec donnes 153 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
L'icne qui est associe votre excutable peut tre dfinie lors de la cration de l'excutable.
Cette icne doit tre au format ICO.
L'image de lancement qui est associe votre excutable peut tre dfinie lors de la cration de
l'excutable. Cette image doit tre un format standard reconnu par WinDev (BMP, WMF, GIF,
JPEG, TIFF, )
Un catalogue d'images prdfinies est fourni en standard avec WinDev. Ce catalogue est accessi-
ble lors de la slection de l'image.
WinDev offre la possibilit de personnaliser directement cette image lors de la cration de lexcu-
table. Vous pouvez ainsi crire le texte de votre choix (avec la mise en forme voulue) sur cette
image.
Utilisez la fonction SysIconeAjoute. Exemple :
Pour rtablir votre application, utilisez la fonction SysIconeSupprime.
Pour plus de dtails sur ces fonctions, consultez laide en ligne (mot-cl : "SysIconeAjoute").
La fonction CreRaccourci permet de crer un raccourci dune application par programmation.
Cette fonction permet de crer aussi bien un raccourci sur le bureau que dans un groupe de pro-
grammes.
Question
Comment associer une icne mon excutable?
N
o
t
e
s
Un catalogue d'icnes prdfinies est fourni en standard avec WinDev. Ce catalo-
gue est accessible lors de la slection de l'icne.
Question
Comment associer une image de lancement (splash screen) mon
excutable?
Question
Comment mettre licne de mon application en bas droite dans la barre de
tches?
Res = SysIconeAjoute("C:\Icones\Icone.ICO","MenuContextuel",...
"Message survol", "Nom Procdure associe")
Question
Comment installer un raccourci dune application sur le bureau ?
GAF WinDev.book Page 153 Jeudi, 5. juillet 2012 9:16 09
154 Partie 2 : Application avec donnes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Par exemple, pour installer un raccourci sur le bureau :
Consultez l'aide en ligne pour la syntaxe dtaille de cette fonction (mot-cl : "Crer, Un rac-
courci").
Lors de la cration du programme dinstallation de lapplication, vous avez la possibilit de dire si
votre application partage le Framework WinDev avec les autres applications installes sur le
poste. Dans ce cas, le Framework WinDev sera install dans le rpertoire "C:\Program
Files\Fichiers communs\PC SOFT\17.0\Framework".
Consultez l'aide en ligne pour plus de dtails (mot-cl : "Framework").
Aprs quelques mois ou quelques annes de dveloppement et de maintenance, le rpertoire de
votre projet contient souvent plusieurs fichiers qui ne sont plus utiliss, mais que, dans le doute,
vous nosez pas supprimer.
Fichiers et fentres de test, images abandonnes, ... Un nettoyage simpose!
Un outil de WinDev permet dune part de dtecter automatiquement ces lments inutiliss et
dautre part de les supprimer du projet, sans aucun risque. Les lments supprims du projet
seront archivs (au format ZIP, ou dans un rpertoire de sauvegarde) pour le cas o une de ces
ressources aurait un jour une utilit ...
!
Pour utiliser cet assistant, slectionnez loption "Outils .. Nettoyer le rpertoire du projet".
Remarque : Il est possible de connatre le code mort et les lments orphelins respectivement
grce aux options "Projet .. Audit ddition .. Code mort" et "Projet .. Audit ddition .. Elments
orphelins".
CreRaccourci(raccourciBureau, "Libell de mon icne", ...
"C:\Program Files\Compta\Compta.EXE")
Question
Comment partager le framework WinDev entre les diffrentes applications
installes sur un mme poste?
Question
Comment dtecter les lments non utiliss par mon application?
GAF WinDev.book Page 154 Jeudi, 5. juillet 2012 9:16 09
PARTIE 3
Fentres et champs
GAF WinDev.book Page 155 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 156 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 157 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 3.1. LES DITEURS
Ce que vous allez apprendre dans cette leon ...
Les diteurs
Les volets
Les raccourcis
Les configurations denvironnement
Le menu personnalis
Personnalisation des assistants
Dure estime : 10 mn
GAF WinDev.book Page 157 Jeudi, 5. juillet 2012 9:16 09
158 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lenvironnement
Depuis le dbut de ce cours, nous avons cr/manipul des fentres. Ces manipulations ont t
effectues sous lditeur de fentres.
Lditeur de fentres permet de raliser simplement de superbes fentres relies ou non aux don-
nes.
WinDev possde de multiples diteurs, tous intgrs dans le mme environnement : diteur de
code, diteur de requtes, diteur dtats, ...
Tous les diteurs utilisent le mme environnement :
1. Barre de menu
2. Barre doutils
3. Volets
Voici quelques astuces pour profiter pleinement de lenvironnement de WinDev.
Les volets
WinDev propose diffrents volets affichables tout moment. Ces volets peuvent tre affichs ou
non, regroups dans lordre de votre choix. Vous pouvez ainsi dfinir la configuration qui corres-
pond le mieux votre environnement et la rappeler tout moment.
Les diffrents volets
Dans ce cours dauto-formation, nous avons dj vu plusieurs volets :
lexplorateur de projet, qui permet daccder simplement aux diffrents lments du projet.
Lexplorateur permet galement de raliser une recherche dans tous les lments du projet, de
crer directement de nouveaux lments, ...
le volet des "Assistants, champs et composants". Ce volet vous permet daccder directement :
un ensemble de champs prdfinis directement utilisables dans vos fentres,
aux exemples complets ou unitaires livrs avec le produit.
aux composants livrs en standard avec le produit et vos propres composants, ...
GAF WinDev.book Page 158 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 159 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
WinDev propose de nombreux volets pour vous aider dans vos dveloppements. Pour accder la
liste complte, utilisez loption "Affichage .. Barres doutils".
Manipuler les volets
!
Pour afficher des volets :
1. Slectionnez loption "Affichage .. Barres doutils .. Volets".
2. Slectionnez le volet afficher ou rendre invisible (une coche est prsente devant le nom
des volets actuellement affichs sous lditeur).
Chaque volet prsent dans linterface peut tre :
flottant : le volet peut tre redimensionn et dplac indpendamment. Les volets flottants sont
par exemple utiles si vous utilisez deux crans.
regroup avec dautres volets : il suffit de dplacer un volet vers un autre volet. Lorsque licne
reprsentant des onglets apparat ( ), il suffit de positionner le volet sur cette icne et de
relcher la souris.
ancr un des bords de linterface : il suffit de dplacer un volet vers un des bords de linter-
face. Lorsque licne reprsentant un des bords de linterface apparat ( ), il suffit de posi-
tionner le volet sur cette icne et de relcher la souris.
invisible : Si le volet est flottant, il suffit de cliquer sur la croix (x) de fermeture. Si le volet est
regroup, il suffit de faire un clic droit sur longlet correspondant et de slectionner "Fermer
longlet".
Les configurations denvironnement
La configuration de vos volets vous convient? Vous voulez la mmoriser? Rien de plus simple :
vous pouvez sauvegarder jusqu 4 configurations grce aux touches [CTRL] + [ALT] + [1], [CTRL] +
[ALT] + [2], ... Et pour afficher la configuration voulue, il suffit dutiliser la touche [CTRL] suivie du
numro de configuration voulue.
Le menu personnalis
Qui na jamais souhait disposer dun menu " soi", entirement personnalisable?
WinDev le propose en standard.
Pour comprendre comment a marche, rien ne vaut un exemple pratique.
Nous allons crer un menu personnalis permettant de :
lancer la calculatrice Windows
afficher la description du projet.
A
s
t
u
c
e
Une barre doutils spcifique pour la gestion des volets est disponible. Pour laffi-
cher, slectionnez loption "Affichage .. Barres doutils .. Contrle des volets".
A
s
t
u
c
e
La combinaison de touches [CTRL]+[W] permet de faire apparatre ou disparatre
les volets regroups et ancrs.
Il est ainsi possible davoir rapidement un espace de travail plus tendu.
GAF WinDev.book Page 159 Jeudi, 5. juillet 2012 9:16 09
160 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Premire tape : nous allons crer loption de menu permettant de lancer directement la cal-
culatrice de Windows depuis lditeur WinDev :
1. Slectionnez loption "PersoMenu .. Personnaliser le <PersoMenu>". La fentre de person-
nalisation du menu saffiche.
2. Cliquez sur le bouton "Ajouter une option".
3. Saisissez son nom dans le champ "Libell du menu" ("Calculette" par exemple).
4. Cliquez sur le bouton "Parcourir" et recherchez lexcutable de la calculette calc.exe (dans
"C:\Windows\system32" par exemple).
5. Saisissez le message afficher dans la barre de message lors du survol de loption ("Lance
la calculette directement" par exemple).
6. Slectionnez licne afficher gauche de loption dans le menu : il suffit de slectionner
nouveau lexcutable de la calculette dans le champ "Icne".
!
Seconde tape : nous allons rajouter une deuxime option afin de lancer directement le
fichier "<Nom du projet>.RTF" cr automatiquement lors de la cration dun nouveau projet.
Ce fichier contient la description du projet dfinie dans lassistant de cration du projet.
1. Cliquez sur le bouton "Ajouter une option".
2. Saisissez son nom dans le champ "Libell du menu" ("Description du projet" par exemple).
3. Ce fichier se trouve dans le rpertoire du projet en cours. Cliquez sur le bouton "Macro" et
double-cliquez sur "{$RepProjet} Chemin du rpertoire du projet en cours".
La chane "{$RepProjet}" apparat automatiquement dans le champ "Script de commande
(commandes DOS)".
4. Saisissez la suite de cette chane le caractre "\".
5. Cliquez sur le bouton "Macro" et double-cliquez sur "{$NomProjet} Nom du projet en cours".
La chane "{$NomProjet}" apparat automatiquement dans le champ "Script de commande
(commandes DOS)".
6. Saisissez la suite de cette chane les caractres ".RTF".
7. Saisissez le message afficher dans la barre de message lors du survol de loption ("Ouvre
la description du projet" par exemple).
8. Validez la fentre de configuration du menu personnalisable.
!
Votre menu personnalis est fini. Testez-le simplement en slectionnant "PersoMenu .. Calcu-
lette" par exemple.
N
o
t
e
Configuration ncessaire
Pour utiliser le "Perso-Menu", vous devez ractiver cette fonctionnalit.
Pour cela, effectuez les oprations suivantes :
1. Slectionnez loption "Outils .. Options .. Options de lenvironnement".
2. Cochez loption "PersoMenu".
3. Validez votre choix.
GAF WinDev.book Page 160 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 161 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Personnalisation des assistants
Pour aller plus loin dans la personnalisation de votre environnement de travail, WinDev propose
de personnaliser les diffrents assistants proposs par le produit. Comment?
Lors de lutilisation dun assistant (assistant de cration du champ liste par exemple), il suffit
deffectuer un clic droit sur limage. Plusieurs images sont alors affiches : il suffit de choisir celle
qui vous convient le plus.
Vous pouvez galement choisir de modifier limage alatoirement tous les jours ou choisir une
image personnelle.
GAF WinDev.book Page 161 Jeudi, 5. juillet 2012 9:16 09
162 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 3.2. LES FENTRES
Ce que vous allez apprendre dans cette leon ...
Comment crer une fentre?
Les caractristiques dune fentre
Dure estime : 10 mn
GAF WinDev.book Page 162 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 163 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Comment crer une fentre?
Depuis le dbut de ce cours, nous avons cr des fentres de diffrentes faons :
cration de fentres vierges bases sur un gabarit (partie 1 de ce cours).
cration de fentres de diffrents types (fiche, table, ...) bases sur les fichiers de donnes (par-
tie 2 de ce cours).
WinDev propose dautres possibilits pour crer des fentres. Ces possibilits sont regroupes
dans lassistant de cration de fentres, lanc par loption "Fichier .. Nouveau .. Fentre".
Lassistant de cration de fentres permet :
de crer des fentres RAD (Rapid Application Development) : ces fentres sont bases sur les
fichiers de donnes dcrits dans lanalyse et contiennent tout le code ncessaire leur fonc-
tionnement. Ces fentres sont associes un pattern RAD (qui fixe les fonctionnalits intgres
dans la fentre et si ncessaire linterface) et un gabarit (qui dfinit le look de la fentre). Ces
fentres peuvent tre utilises immdiatement. Plusieurs types de fentres sont proposs :
fentre de type fiche, fentre avec table, fentre avec zone rpte, ...
de crer des fentres RID (Rapid Interface Development) : ces fentres sont bases sur les
fichiers de donnes dcrits dans lanalyse. Elles contiennent uniquement les champs et les bou-
tons, et le code ncessaire aux lments intgrs par le pattern RID associ. La saisie du code
correspondant est effectue par le dveloppeur. Ces fentres sont lies un pattern RID et si
ncessaire un gabarit. Ces fentres peuvent tre utilises immdiatement. Plusieurs types de
fentres sont proposs : fentre de type fiche, fentre avec table, ...
de crer des fentres standard : Cet onglet permet de crer des fentres vierges standard.
de crer des fentres internes. Les fentres internes sont un type spcifique de fentre. Nous
dtaillerons leur fonctionnement dans la suite de cette partie.
de crer des fentres bases sur un modle de fentres. Les modles de fentres permettent
de dfinir un ensemble de critres (graphique, champ, code) devant tre repris dans chaque
fentre de lapplication. Nous dtaillerons la cration et lutilisation dun modle de fentres
dans la suite de cette partie.
dimporter une fentre existante (et non WinDev). Cette option permet de "recopier" linterface
dune fentre dans votre application WinDev. Vous slectionnez la fentre qui vous intresse et
WinDev se charge de tout. Loption "Gnrer des images pour les champs non reconnus" permet
de rendre linterface plus proche de la fentre importe.
Bien sr, vous avez toujours la possibilit de crer une fentre vierge, sans aucun champ, utilisant
ou non un gabarit.
Aprs avoir vu les diffrentes faons de crer une fentre, nous allons voir quelles sont les carac-
tristiques dune fentre.
GAF WinDev.book Page 163 Jeudi, 5. juillet 2012 9:16 09
164 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Description dune fentre : 8 onglets votre disposition
Ds le dbut de ce cours dauto-formation, vous avez cr des fentres. La premire chose que
vous avez affiche, cest la fentre de description afin de saisir le titre de la fentre, son nom et sa
description.
Mais la fentre de description renferme de nombreux paramtrages trs pratiques, qui vitent
bien souvent des dizaines de lignes de code.
Nous allons dtailler quelques-unes de ces fonctionnalits sur un exemple simple.
Exemple pratique
Pour manipuler les diffrents onglets des fentres, nous allons utiliser un projet exemple prpar
cet effet. 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
"Fentres et champs".
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dautoformation .. Fentres et champs".
3. Ouvrez la fentre "FEN_Manip" (prsente dans le dossier "Autres champs").
4. Affichez la description de la fentre (option "Description" du menu contextuel de la fentre).
Onglet "Gnral"
Le premier onglet de la fentre de description est longlet "Gnral". Cet onglet permet dindiquer
les paramtres gnraux de la fentre :
le nom de la fentre : ce nom sera utilis en programmation pour manipuler la fentre.
la description de la fentre : cette description est purement indicative pour le dveloppeur. Elle
permet de rsumer un peu plus longuement ce quoi sert la fentre. Elle sert galement
dcrire la fentre lors de limpression du dossier.
le titre de la fentre : comme nous lavons dj vu, le titre est affich dans la fentre et permet
dindiquer lutilisateur le sujet trait.
N
o
t
e
s
Ouvrir une fentre sous lditeur
Nous avons vu plusieurs mthodes pour ouvrir une fentre sous lditeur. Voici
un rcapitulatif des diffrentes possibilits :
Utilisation du raccourci clavier [CTRL] + [E] et slection de la fentre ouvrir.
Lavantage de cette mthode est la visualisation de laperu de la fentre.
Dans le volet "Explorateur de projet", double-clic sur le nom de la fentre
ouvrir.
Option "Fichier .. Ouvrir" et slection du fichier de la fentre ouvrir.
GAF WinDev.book Page 164 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 165 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Onglet "IHM"
Le second onglet de la fentre de description est longlet "IHM". Cet onglet permet de dfinir les
paramtres concernant linterface de la fentre. Cet onglet regroupe ainsi les caractristiques
concernant :
la taille et la position de la fentre
le menu contextuel de la fentre,
le curseur de survol et laction du clic droit sur la fentre, ...
Dans cet onglet, de nombreuses options sont intressantes :
Dplacement par le fond : cette option permet lutilisateur de dplacer la fentre en cliquant
nimporte quel endroit (et non uniquement par la barre de titre). Vous pouvez dailleurs tester
cette option directement sur la fentre de description.
Redimensionnable : grce cette option, lutilisateur pourra redimensionner la fentre. Mais
cette option ncessite une gestion prcise du redimensionnement des champs (appel
ancrage). Nous consacrerons un chapitre cette notion dans la leon concernant lergonomie
des fentres.
Mmoriser la taille et la position de la fentre : cette option est trs intressante car la position
de la fentre dtermine par lutilisateur sera automatiquement enregistre et utilise la pro-
chaine ouverture de la fentre. Ainsi, si lutilisateur dispose de plusieurs crans, laffichage de
la fentre sur un cran ou un autre sera automatiquement mmoris.
Assombrir la fentre lorsquelle devient inaccessible : encore une option trs apprcie par les
utilisateurs. Si des botes de dialogue sont affiches par lapplication, lutilisateur ne se
demande plus o il doit cliquer : en effet, la fentre en arrire-plan est automatiquement grise
pour que lutilisateur puisse se concentrer sur le message affich.
Adapter la taille en fonction du contenu : cette option permet dadapter automatiquement la
taille de la fentre en fonction des champs prsents dans cette fentre. Les zones vides sont
ainsi automatiquement limines.
Onglet "Dtail"
Dans cet onglet, les paramtres spcifiques au fonctionnement de la fentre sont regroups. On
retrouve les caractristiques concernant :
Le type de la fentre (nous reviendrons en dtail sur cette caractristique dans la leon sur
lergonomie),
Les paramtres avancs de la fentre (contexte HyperFileSQL, ...),
Lanimation de la fentre en ouverture et/ou en fermeture,
Excution automatique dun bouton de la fentre.
Arrtons-nous un instant sur ces deux derniers points.
Lanimation de fentre permet de donner un aspect dynamique votre application. Vous pouvez
paramtrer louverture et/ou la fermeture de votre fentre. Pour paramtrer lanimation ? Rien de
plus simple : il suffit de cliquer sur les caractristiques de lanimation. La fentre de paramtrage
apparat. Saisissez vos paramtres et testez-les immdiatement (et mme sur la fentre de para-
mtrage).
La fermeture automatique de la fentre ou la validation automatique permet de ne pas laisser
votre application bloque sur une fentre. En effet, un utilisateur peut par exemple afficher une
fiche Client et la laisser ouverte pendant une absence. Pour viter le blocage des autres utilisa-
teurs, il suffit de dfinir une dure et laction raliser au bout de cette dure (clic sur le bouton
Valider, Annuler, ...).
GAF WinDev.book Page 165 Jeudi, 5. juillet 2012 9:16 09
166 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Onglet "Image"
Cet onglet permet de dfinir les diffrentes images utilises par la fentre :
Limage de fond de la fentre et son mode daffichage.
Vous pouvez utiliser une image dfinissant la forme de votre fentre (par exemple pour crer
une fentre reprenant la forme dune tlcommande). Dans ce cas, il suffit de slectionner
loption "Dtourer la fentre" et de suivre les indications.
Il est galement possible dutiliser une image qui sagrandira avec votre fentre. Il suffit de dfi-
nir le mode "9 images" associ.
Limage de la poigne de redimensionnement de la fentre.
Licne associe la fentre : cette icne est visible dans le coin en haut gauche de la fentre
au niveau de la barre de titre. Elle personnalise la fentre. Si aucune icne nest indique, cest
licne associe au projet qui sera visible.
Onglet "Langue"
Cet onglet permet dindiquer les diffrentes langues grer dans la fentre (Cas des projets "mul-
tilingues"). Pour plus de dtails, consultez la leon Multilingue, page 492.
Onglet "Note"
Cet onglet permet de saisir du texte. Ce texte est imprim lors de ldition du dossier. Vous pouvez
par exemple, saisir des informations concernant le fonctionnement de la fentre, les diffrentes
rgles de gestion des traitements effectus.
Onglet "Aide"
Cet onglet permet dindiquer le nom du fichier daide contextuelle associ la fentre. Ce fichier
daide est utilis lors de lappui sur le bouton daide de la fentre pour activer une aide contex-
tuelle au clic sur la fentre.
Onglet "Style"
Cet onglet regroupe les paramtres relatifs au style de la fentre. On peut slectionner :
le gabarit
les icnes affiches (agrandissement, rduction, aide, menu systme, )
le type de bordure
la couleur de fond
le thme XP
lopacit (permet de dfinir la transparence dune fentre)
la prsence de la barre de message,
GAF WinDev.book Page 166 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 167 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 3.3. LES CHAMPS
Ce que vous allez apprendre dans cette leon ...
Les diffrents types de champs
Les champs les plus classiques
Les champs spcialiss
Dure estime : 45 min
GAF WinDev.book Page 167 Jeudi, 5. juillet 2012 9:16 09
168 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Introduction
WinDev met plus de 40 champs votre disposition pour communiquer avec lutilisateur final. Ils
permettent de saisir ou de visualiser des valeurs.
Les valeurs affiches peuvent provenir dun calcul effectu par programmation, dun fichier dune
base de donnes ou dune affectation.
Les valeurs saisies peuvent servir faire des calculs, tre enregistres dans un fichier de don-
nes ou tre affectes dautres champs.
Cette leon va vous permettre de connatre les diffrents types de champs disponibles, de les tes-
ter dans des cas dutilisation relle, et pour les plus courants, daborder leur programmation.
Pour simplifier cette leon, nous avons dcoup les diffrents champs en deux catgories :
les champs classiques : ce sont les champs les plus utiliss.
les champs spcialiss, qui permettent dobtenir une interface spcifique, ou de grer des
fonctionnalits spcifiques.
Exemple pratique
Pour apprendre utiliser ces diffrents types de champs, nous allons utiliser un projet exemple
prpar cet effet. Pour cela, slectionnez loption de menu "? .. Guide dauto-formation .. Fen-
tres et champs".
Les champs classiques
Sous lappellation "Champs classiques" nous avons regroup tous les champs les plus communs,
utiliss constamment dans les applications cres avec WinDev. Ces champs sont les suivants :
Libell
Champ de saisie
Bouton
Image
Zone de clicage
Slecteur
Interrupteur
Liste
Combo
Liste image
Table
Zone rpte
Table hirarchique
Arbre
Jauge
Graphe
Nous allons tudier ces champs un par un.
Dans lexplorateur de projet du projet exemple, les fentres contenant ces champs sont regrou-
pes dans le perso-dossier "Champs classiques".
GAF WinDev.book Page 168 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 169 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Les libells permettent dafficher du texte statique. Ils ne peuvent pas tre saisis en excution. Ils
peuvent tre modifis par programmation (comme tous les champs).
Les libells sont utiliss pour afficher une information, par exemple un titre en gros caractres. Le
contenu dun libell peut tre dfini sous lditeur lors de la description du libell ainsi que par
programmation.
Les libells permettent galement dafficher un texte en fonction de la langue utilise dans le pro-
jet, sans programmation particulire.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampLibelle.WDW" et testez cette fentre.
Cette fentre prsente :
- les diffrents types de libells pouvant tre utiliss.
- les diffrentes manipulations pouvant tre effectues sur un libell.
!
Testez les diffrentes manipulations des libells.
Le libell est affich en vert.
Le bouton "Couleur" change la couleur du libell.
Le bouton "Rcupre" rcupre le libell affich.
Les boutons "Change" et "Construit" modifient le libell affich.
!
Retournez sous l'diteur.
Les diffrents types de libells
WinDev propose plusieurs types de libells.
Dans longlet "Gnral" de la description du champ, il est possible de slectionner les types
prdfinis :
Libells multi-lignes : ce type de libell permet de grer les libells affichs sur plusieurs
lignes.
Libells RTF : ce type de libell permet de grer toutes les caractristiques du format RTF
(Gras, italique, soulign, couleurs, ...).
Remarque : Pour quun libell soit au format RTF, il est galement possible de cocher
loption "Texte avec mise en forme (R.T.F)" dans longlet "Dtail" de la description du champ.
Libell numrique : ce type de libell permet dafficher un numrique. Il est possible de sp-
cifier le masque de saisie/daffichage utilis par le libell.
Libell montaire : ce type de libell permet dafficher une valeur montaire. Il est possible
de spcifier le masque de saisie/daffichage utilis par le libell. Il est par exemple possible
dafficher la devise.
Libell date, heure, dure : ces types de libells permettent dafficher dans un champ une
date, heure, dure au format spcifi par le masque de saisie/daffichage. Dans ce cas, il
est galement possible de spcifier la valeur de retour (utilise par exemple si le champ est
manipul par programmation).
Type de champ : Libell
GAF WinDev.book Page 169 Jeudi, 5. juillet 2012 9:16 09
170 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Il est galement possible de dfinir dautres libells spcifiques :
les libells anims : Faire clignoter ou dfiler un libell est un jeu denfant. Il suffit de choisir
le mode danimation et de configurer les paramtres correspondants dans longlet "Dtail"
de la description du champ.
les libells avec ombre floue : une ombre floue apparat derrire le libell afin de crer un
effet de relief. La configuration de lombre floue est ralise dans longlet "Style" de la des-
cription du champ.
Manipulation des libells par programmation
Nous allons tudier le code des boutons permettant de modifier le champ libell.
Pour construire le libell "LIB_LibellManipul" (bouton "Construit"), il faut adopter la syntaxe sui-
vante (dans cet exemple la chane est construite partir de chanes et du rsultat de la fonction
DateDuJour qui retourne la date du jour).
Pour rcuprer le libell de "LIB_LibellManipul" (bouton "Rcupre"), la syntaxe est :
Il est mme possible de changer la couleur du texte du libell (bouton "Couleur") avec la proprit
..Couleur.
RougePastel est une constante WLangage correspondant la couleur Rouge Pastel.
LIB_LibellManipul = "Coucou" + RC + "Nous sommes le " + ...
DateVersChane(DateDuJour(), maskDateSystme)
Ch est une Chane
Ch = "Le libell est "+ RC + LIB_LibellManipul
// ou
// Info("Le libell est "+ RC + LIB_LibellManipul)
LIB_LibellManipul..Couleur = RougePastel
N
o
t
e
s
Les proprits permettent de modifier par programmation certaines caractristi-
ques des champs : couleur, libell, police, ... Nous ne citerons pas toutes les pro-
prits. Nous dcouvrirons quelques-unes des principales proprits au fur et
mesure de cette partie.
Toutes les proprits sont relatives un champ donn. Leur syntaxe d'utilisation
est :
Nom_Champ..Nom_Proprit
La liste des proprits disponibles sur les champs est prsente dans laide en
ligne de WinDev, mot-cl : "Proprits, Proprits des champs dune fentre".
GAF WinDev.book Page 170 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 171 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Les champs de saisie sont les premiers champs que vous avez manipuls. Ils permettent de saisir
ou d'afficher des donnes provenant de variables, de calculs ou de fichiers de donnes.
Ils permettent par exemple de saisir un mot de passe, une quantit commander, le nom dun
client, une adresse,
Si vous crez une fentre, il y a 9 chances sur 10 pour que vous utilisiez ensuite un champ de sai-
sie. Voyons un peu plus en dtail leurs fonctionnements et leurs possibilits.
Quelle que soit linformation saisir ou afficher, vous pouvez choisir le type correspondant :
texte, RTF, HTML, mot de passe,
numrique,
heure,
date,
dure,
montaire,
montaire+Euro.
chaque type de champ correspondent plusieurs masques de saisie (ou daffichage si le champ
est en affichage).
Nous avons vu lintrt de ce masque lors du dveloppement de lapplication "Mes comptes",
nous ny reviendrons pas.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampSaisie.WDW" sous lditeur. Cette fentre prsente la gestion
des champs de saisie de type texte et des champs numriques.
!
Testez la fentre.
!
Saisissez des valeurs dans les champs qui ont le libell "En saisie". Dans les autres champs, il
nest pas possible de saisir. En effet, ils ont t dcrits en affichage. Cliquez sur les diffrents
boutons et observez ce quil se passe.
En dtail
Pour afficher et rcuprer une valeur dans un champ de saisie une simple affectation suffit et ce
quel que soit le type du champ de saisie.
Quelques exemples dinitialisation :
Code dinitialisation dun champ de saisie texte :
Type de champ : Champ de saisie
R
a
p
p
e
l
Les champs de saisie numriques ne sont pas typs. C'est le masque slec-
tionn pour le champ qui va dfinir si le champ est un rel, rel double, entier, ...
SAI_EnAffichage = "Coucou" // Affiche Coucou dans le champ texte
GAF WinDev.book Page 171 Jeudi, 5. juillet 2012 9:16 09
172 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Code dinitialisation du champ de saisie numrique :
Quelques exemples de rcupration :
Code de clic dun bouton pour rcuprer la valeur dun champ de saisie texte :
Code de clic dun bouton pour rcuprer la valeur dun champ de saisie numrique :
Gestion de la couleur dans les champs de saisie
Dans la zone de saisie, la couleur du texte et la couleur du fond sont modifiables par programma-
tion avec les proprits ..Couleur et ..CouleurFond.
Caractristiques d'un champ de saisie
Comme pour les fentres, les champs possdent une fentre de description. Cette fentre de des-
cription permet de paramtrer de nombreuses options du champ, options daspect ou de fonction-
nement.
Nous allons dtailler les caractristiques du champ de saisie, sachant que de nombreuses
options sont reprises dans la description dautres champs. Nous ne dtaillerons pas toutes les
options ici (cest un cours, pas une documentation exhaustive). Pour plus de dtails sur chacune
des options des fentres de description, il est conseill de consulter laide contextuelle.
Onglet "Gnral"
Comme nous lavons dj vu, longlet "Gnral" du champ de saisie permet de dfinir :
le nom du champ
son libell
son type
son masque de saisie.
Quelques types peuvent se rvler utiles :
RTF : Ce type de champ de saisie permet davoir des mots en Italique, en Gras, en couleur,
de tailles et de polices diffrentes, ... Il suffit de copier/coller dans le champ un contenu au
format RTF ("Rich Text Format") pour que celui-ci soit pris en compte. Il est galement possi-
ble dassocier une barre doutils de formatage aux champs de saisie RTF.
// Affiche la valeur 20.6 dans le champ numrique
SAI_Numrique = 20.6
R
a
p
p
e
l
Il est galement possible dinitialiser la valeur dun champ de saisie en utilisant
longlet "Contenu" de la description du champ.
Ch est une Chane
Ch = SAI_EnSaisie // Rcupre le contenu du champ texte
Valeur est un Rel
// Rcupre le contenu du champ numrique
Valeur = SAI_Numrique_EnSaisie
// Change la couleur du texte
SAI_Manip..Couleur = RougeClair
// Change la couleur du fond
SAI_Manip..CouleurFond = JauneClair
GAF WinDev.book Page 172 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 173 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
HTML : Ce type de champ de saisie permet aussi bien dafficher un texte au format HTML
que de saisir un texte au format HTML. Il est galement possible dassocier une barre
doutils de formatage aux champs de saisie HTML.
Mot de passe : Si ce type de champ de saisie est slectionn, les caractres frapps sont
remplacs par des puces uniquement laffichage.
Texte multi-ligne : ce type permet de saisir un texte sur plusieurs lignes. Des RC (Retours
Chariots) peuvent tre insrs dans le texte.
Onglet "IHM"
Longlet IHM permet de dfinir les caractristiques dinterface du champ.
Nous allons dtailler les points suivants :
Etat initial
Gestion de la touche TAB
Eye magnet
Gestion de la lettre dappel et du clic droit
Ltat initial du champ correspond ltat du champ lors de lexcution de la fentre. Cette carac-
tristique se retrouve pour presque tous les types de champ.
Au lancement dune fentre, un champ de saisie peut tre :
En saisie : le champ est actif, il sera en saisie dans la fentre. Lutilisateur pourra saisir des
informations dans ce champ.
Affichage seul : le champ est inactif, aucune saisie ne sera possible. Ce champ se compor-
tera comme un champ de type libell. Il sera cependant possible de slectionner le contenu
du champ laide de la souris si loption "Avec slection en affichage" est coche dans
longlet "Dtail".
Gris : le champ est inactif et il apparat en gris. Cet tat est trs pratique pour indiquer
l'utilisateur que ce champ existe, mais quil n'est actuellement pas accessible.
Visible : Comme son nom lindique, le champ "existe" dans la fentre. Ce champ peut tre
visible ou non. Cet tat est souvent utile en programmation lorsquun champ doit apparatre
certains moments et disparatre dautres!
Cette option est indpendante des 3 options prcdentes. Vous pouvez rendre ainsi le
champ visible ou non tout en conservant les paramtres daffichage.
Ltat du champ peut tre modifi par la suite par programme en utilisant :
la proprit ..Etat pour les options "Saisie", "Affichage seul" et "Gris",
la proprit ..Visible pour loption "Visible".
La gestion de la touche TAB permet de configurer la prise en compte de la touche TAB dans la
fentre. Le plus souvent, la touche TAB du clavier permet lutilisateur de se dplacer entre les
diffrents champs de la fentre (option "Champ accessible par TAB"). Il est alors possible de dfi-
A
s
t
u
c
e
Ce type de champ est idal pour la saisie du mot de passe dun utilisa-
teur dans une fentre de login.
A
s
t
u
c
e
Ce type de champ est idal pour saisir un commentaire ou une observa-
tion. Lutilisation de ce paramtre est fondamentale pour lutilisation des
champs "Mmo" (tudis plus loin).
GAF WinDev.book Page 173 Jeudi, 5. juillet 2012 9:16 09
174 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
nir lordre de navigation dans la fentre (nous le verrons dans le chapitre Ergonomie de cette par-
tie).
WinDev permet cependant de ne pas grer la touche TAB ou daccepter les TAB en saisie. Cette
dernire option peut tre intressante dans des champs multi-lignes permettant de saisir de longs
textes.
Le "eye magnet" (appel galement mise en forme conditionnelle) consiste modifier l'aspect
visuel d'un champ afin d'attirer l'attention de l'utilisateur sur ce champ. WinDev permet de modi-
fier cet aspect visuel automatiquement en fonction d'une srie de conditions. Par exemple, un
champ dont la saisie est obligatoire s'affichera sur un fond rouge tant que son contenu sera vide.
La "lettre d'appel" permet l'utilisateur de se positionner directement sur le champ en tapant sim-
plement une combinaison de touches du clavier (par exemple [ALT] + [Lettre]).
Dans le libell d'un champ de saisie, si une lettre est prcde de "&", elle devient automatique-
ment "lettre d'appel".
Par exemple : "&Nom du client" dcrit [ALT]+[N] comme lettre d'appel.
Le traitement du "clic droit" (de la souris) permet d'associer une action au clic droit de la souris. Le
traitement est par exemple "validation des informations saisies", "appel de l'aide", ... Le traitement
est choisi parmi ceux des boutons (texte et graphique) prsents dans la fentre.
Onglet "Dtail"
Longlet permet de dfinir les diffrentes fonctionnalits sappliquant au champ de saisie.
Quelques points importants :
Dans le cas dune saisie multi-ligne, il est possible de slectionner le mode de dfilement
des informations dans le champ (onglet "Dtail" de la fentre de description).
Si le champ est en "Dfilement Horizontal ET Vertical", le passage la ligne suivante
seffectue par la combinaison de touches [CTRL] + [ENTREE] (standard Windows) ou
[ENTREE].
Il est galement possible dafficher et de rendre actifs les liens (URL par exemple) prsents
dans le texte multi-ligne.
Pour les champs de type numrique, il est possible de saisir une valeur minimale et maxi-
male (dans longlet "Dtail" de la fentre de description du champ). Lors de la saisie dans
ce champ, WinDev contrlera automatiquement que ces valeurs sont respectes. Il est
possible dinformer lutilisateur des valeurs saisir en affichant les bornes soit dans la
bulle daide, soit dans le texte dindication.
N
o
t
e
s
Parfois il est plus utile dutiliser les lettres dappel plutt que les actions de sou-
ris.
WinDev permet de raliser facilement des interfaces (IHM) o lutilisation de la
souris nest pas ncessaire. Par exemple, pour des applications de points de
vente (la place manque sur les comptoirs!) ou dans le domaine industriel : bor-
nes interactives, machine-outil, ...
N
o
t
e
s
Le saviez-vous? La taille maximale dune variable texte est de 2 Go. En
tapant 3 lettres par seconde, il faudrait ... plus de 22 ans pour remplir le
champ!
GAF WinDev.book Page 174 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 175 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Saisie obligatoire : si la saisie de ce champ est obligatoire, il sera possible de se position-
ner sur un autre champ uniquement si une valeur a t saisie.
Saisie assiste : si le champ est li une rubrique cl, la valeur trouve dans le fichier de
donnes et correspondant aux premires lettres saisies est automatiquement propose.
Vrifier lorthographe : si Open Office et ses dictionnaires sont installs sur le poste de
lutilisateur, la correction orthographique sera automatiquement propose lutilisateur.
Mmoriser la valeur : permet de mmoriser la dernire valeur saisie dans le champ avant
la fermeture de la fentre. Cette valeur sera automatiquement propose la prochaine
ouverture de la fentre.
Historique des saisies : permet de proposer les dernires valeurs saisies par lutilisateur
pour ce champ.
Retourne NULL si vide : retourne la valeur NULL si le champ na pas de valeur (Attention! Ni
0, ni chane vide!).
Mode ellipse : Permet de tronquer le contenu du champ si ncessaire. Si le champ est
tronqu "en fin", les caractres "..." remplaceront la fin du texte laffichage.
Rsum
Les boutons sont utiliss pour lancer des traitements. Le traitement associ au bouton sexcu-
tera lorsque le bouton sera activ (lorsque l'utilisateur clique sur le bouton).
Les boutons peuvent contenir un texte simple et/ou une image.
Vous avez dj cr plusieurs boutons. Revenons sur les types de boutons proposs par WinDev.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampBouton.WDW" sous lditeur. Cette fentre prsente les diff-
rents types de boutons. Nous allons tudier tous les types de boutons disponibles.
Les diffrents types de boutons
Un bouton peut tre de 5 types (informations renseigner dans la fentre de description, onglet
"IHM") :
1. Bouton de type Normal
2. Bouton de type Validation
3. Bouton de type Interruption
4. Bouton de type Abandon
5. Bouton de type Aide
A
s
t
u
c
e
La valeur NULL est trs utile pour grer le passage de paramtres une
requte et rendre les conditions optionnelles pour des recherches multi-
critres. Nous aborderons cela plus tard lors de la leon sur lditeur de
requtes.
Type de champ : Bouton
GAF WinDev.book Page 175 Jeudi, 5. juillet 2012 9:16 09
176 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Bouton NORMAL
Un bouton de type Normal est un bouton comme ceux que vous avez dj crs.
Ce type de bouton n'a pas d'action prdfinie particulire. Le code de sortie du champ qui tait en
cours lors de la validation du bouton est excut avant le traitement du bouton.
!
Pour le vrifier, cliquez sur le bouton "Normal". Le message "Code de sortie du champ NOM"
s'affiche et ensuite le message "Clic sur le bouton Normal" saffiche.
Bouton VALIDATION
Lorsqu'un bouton est en Validation, la frappe de la touche [RC] ou [Entre] excute le traitement
du bouton, le code de sortie du champ qui tait en cours est excut.
!
Pour le vrifier, repositionnez-vous sur le champ "Nom" puis cliquez sur le bouton "Validation".
Bouton INTERRUPTION
Un bouton en Interruption signifie que lorsque le bouton est activ, le code de sortie du champ qui
tait en cours n'est pas excut. Le code du bouton sexcute, puis le curseur est repositionn sur
le champ.
!
Pour le vrifier, repositionnez-vous sur le champ "Nom" puis cliquez sur le bouton "Interrup-
tion". Seul le code du bouton sexcute, le code de sortie du champ ne sexcute pas.
Bouton ABANDON
Lorsquun bouton est en Abandon, la frappe de la touche [ESC] ou [Echap] excute le traitement
du bouton, le code de sortie du champ qui tait en cours nest pas excut.
A
s
t
u
c
e
Les boutons de type NORMAL ne doivent pas tre utiliss dans des fentres con-
tenant des champs.
Les boutons de type NORMAL peuvent tre utiliss dans des barres doutils, des
barres dicnes ou dans des fentres sans champs de saisie.
A
s
t
u
c
e
Un bouton de type VALIDATION doit tre utilis pour effectuer la validation de la
saisie dune fentre.
Ds quune fentre permet de faire une saisie dans un champ de saisie, un bou-
ton de type VALIDATION doit tre prsent. Cest gnralement le type utilis pour
les boutons "OK".
A
s
t
u
c
e
Un bouton INTERRUPTION sera par exemple utilis pour appeler une fentre (afin
dinterrompre la saisie en cours sans valider) puis revenir pour continuer la sai-
sie.
Cest gnralement le type utilis pour les boutons "Aide".
GAF WinDev.book Page 176 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 177 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour le vrifier, repositionnez-vous sur le champ "Nom" puis cliquez la touche "Echap".
Bouton AIDE
Lorsquun bouton est de type Aide, la validation du bouton affiche automatiquement laide asso-
cie au champ en cours (active normalement par [F1]) sans excuter les codes de sortie et
dentre du champ en cours.
!
Pour le vrifier, cliquez sur le bouton "Aide".
Caractristiques dun bouton
Action associe un bouton
Un bouton peut tre associ une action prdfinie. WinDev propose de nombreuses actions
prdfinies : ouvrir une fentre du projet, fermer une fentre, ouvrir laperu avant impression
dun tat, lancer un site Internet, ... Pour toutes ces actions, aucune ligne de code nest saisir :
WinDev soccupe de tout.
Les actions peuvent tre associes aux boutons dans longlet "Gnral" de la fentre de descrip-
tion.
A
s
t
u
c
e
Un bouton ABANDON sera utilis pour "sortir" de la fentre en cours de saisie
sans effectuer aucune validation.
Dans une fentre de saisie, un bouton de type ABANDON est ncessaire pour
abandonner la saisie en cours sans la valider.
Cest gnralement le type utilis pour les boutons "Annuler".
A
t
t
e
n
t
i
o
n
!
La "croix" est identique un bouton de type Abandon. Lors du clic sur la "croix", la
fentre est ferme en excutant le code du bouton Abandon de la fentre. Le
code de fermeture de la fentre est ensuite appel. Lquivalent de cliquer sur la
"croix" est dappuyer sur la combinaison de touches [Alt]+[F4].
Rcapitulatif
Si votre fentre ne comporte pas de champs de saisie
Type de bouton utiliser Tous les boutons peuvent tre de type NORMAL
Si votre fentre a au moins un champ de saisie
Type de bouton utiliser Un bouton de type VALIDATION
Un bouton de type ABANDON
Un bouton de type AIDE (si les champs ont des
fentres daide associes)
Tous les autres boutons de type INTERRUPTION
GAF WinDev.book Page 177 Jeudi, 5. juillet 2012 9:16 09
178 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lettre dappel dun bouton
Un bouton peut tre associ une lettre dappel. Cette lettre dappel peut correspondre une tou-
che de fonction, une touche de dplacement ou encore une combinaison de touches.
La lettre dappel associe au bouton est indique dans les informations concernant lIHM du
champ. Le bouton doit tre de type "Interruption" (ou "Normal" dans une fentre ne permettant
pas la saisie). Cela permet par exemple dexcuter un traitement, douvrir une fentre, ... sous
laction dune touche.
!
Dans notre fentre, appuyez sur [F2] : une fentre de type "Info" saffiche.
Bouton minuterie
Un bouton de votre fentre peut tre dfini comme bouton minuterie : au bout dune certaine
dure, le bouton sexcutera automatiquement. Ce type de bouton est trs utile pour ne pas blo-
quer des enregistrements (par exemple, la fiche dun client, pendant la pause djeuner) : il suffit
de dfinir le bouton annuler comme bouton minuterie.
Image dun bouton
Il est possible dassocier des images aux boutons. Deux types dimages peuvent tre utiliss :
limage qui illustre le bouton. Dans ce cas, le bouton est un bouton graphique :
limage qui dfinit la forme et le fond du bouton :
Limage associe au bouton peut permettre de grer :
les tats du bouton (normal, enfonc, gris, focus, survol). Dans ce cas, limage contient les
diffrents dessins associs chaque tat. Ces images sont places horizontalement.
lanimation du bouton. Dans ce cas, limage du bouton contient les diffrents dessins de
lanimation pour chaque tat gr. Ces images sont places verticalement.
N
o
t
e
s
Fonctionnalit automatique de lapplication (FAA) : Vous avez oubli de mettre
un raccourci clavier ? En excution, lutilisateur a la possibilit de choisir lui-
mme le raccourci clavier associ un bouton. Il lui suffit dutiliser loption "Choi-
sir le raccourci clavier" du menu contextuel du bouton.
A
s
t
u
c
e
Dans certaines applications, pour viter lutilisation de la souris, les traitements
sont dclenchs par les touches de fonctions. Pour cela, il suffit de crer les bou-
tons hors cran et de leur associer une lettre dappel.
Pour crer un bouton hors cran, il suffit de placer ce bouton dans la fentre
hte de la fentre sous lditeur. La fentre hte correspond la fentre dans
laquelle la fentre WinDev est affiche.
Fentre daccueil
GAF WinDev.book Page 178 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 179 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Limage du bouton peut tre :
une image que vous avez cre.
choisie parmi celles proposes dans le catalogue de WinDev (dans les"Cliparts" ou dans les
"Boutons graphiques" par exemple).
Il est aussi possible dutiliser pour le bouton une image avec un fond transparent. Dans ce cas,
vous pouvez :
soit crer une image dont la couleur de fond est "Magenta clair".
soit dfinir que la couleur du point (pixel) en haut gauche de limage est la couleur trans-
parente.
Le libell dun bouton texte ou dun bouton graphique peut tre modifi par programmation avec
la proprit ..Libell. Si le libell contient le caractre "&", la lettre qui suit sera souligne et
deviendra la lettre d'appel du bouton :
De la mme faon, limage d'un bouton graphique peut tre modifie par programmation :
La proprit ..Libell reconnat automatiquement si cest le libell ou limage qui doit tre modifi.
Rsum
Les champs images permettent d'afficher des images, statiques ou animes. Il est ainsi possible
dafficher les images dun catalogue de produits, la photo dune personne, ...
Ces images peuvent tre au format BMP, JPEG, GIF, PCD, PSD, TGA, TIF, PNG, ICO (icnes Win-
dows), EMF, WMF, CUR, OS2 (BMP sous OS/2), PCX, SVG.
Tous les modes sont supports du mode "256 couleurs" au mode "couleurs vraies" (16 bits, 24
bits ou 32 bits).
Les champs images peuvent galement servir de zones de clicage.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampImage.WDW" sous lditeur. Cette fentre prsente diffrents
types dimages :
image statique.
gif anim et image anime.
image clicable.
!
Testez cette fentre.
A
s
t
u
c
e
Nous vous conseillons de :
ne pas donner de libell un bouton graphique dont limage comporte un
libell, sinon le bouton comportera deux libells.
ne pas mlanger dans une mme fentre, les boutons graphiques et les
boutons texte.
BTN_Texte..Libell = "Nouveau &libell"
BTN_Image..Libell = "MonImage.BMP"
Type de champ : Image
GAF WinDev.book Page 179 Jeudi, 5. juillet 2012 9:16 09
180 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les diffrents types dimages
Images statiques
Les images statiques sont les images les plus courantes. Pour utiliser une image statique dans
une application WinDev, il suffit de crer un champ image et dassocier ce champ un fichier
image. Cette image peut tre slectionne dans un des rpertoires de votre disque, ou provenir du
catalogue dimages.
WinDev permet de paramtrer directement le mode daffichage de limage (onglet "Gnral" de la
fentre de description) :
Mode daffichage Exemple Description
100 % Limage saffiche avec sa taille initiale. La taille du
champ peut tre modifie mais cela na aucune inci-
dence sur limage.
100 % Centr Limage est centre dans le champ image. La taille du
champ peut tre modifie. Si limage est plus petite (en
hauteur ou en largeur) que le champ, des bandes
apparaissent sur les cts.
Etir Limage est dforme pour occuper toute la surface du
champ. La taille de limage sadapte celle du champ.
Rpt Limage dans sa taille initiale est rpte autant de
fois que possible pour occuper toute la surface du
champ image.
Homothtique L'image est agrandie proportionnellement pour tre
affiche entirement dans le champ image. Limage
est cadre en haut gauche.
Homothtique
tendu
L'image est agrandie proportionnellement pour que le
plus petit cot de l'image soit affich entirement dans
le champ image
Homothtique
centr
Limage est agrandie ou rduite (selon le cas) en con-
servant les proportions hauteur/largeur pour occuper
la plus grande surface possible du champ. Limage
nest pas dforme.
GAF WinDev.book Page 180 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 181 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
L'option "Affichage Haute Qualit" permet en mode homothtique d'amliorer la qualit de l'image
lorsque celle-ci est rduite par rapport sa taille initiale.
WinDev gre des images avec un fond transparent. Dans ce cas, il faut :
soit crer une image avec une couleur de fond "Magenta Clair" (couleur RVB : 255, 0, 255).
Le magenta est automatiquement considr comme la couleur de transparence.
soit crer une image dont la couleur du pixel (point) en haut gauche est la couleur de rf-
rence pour la transparence. Vous tes matre de la couleur "transparente".
GIF anim et image anime
Pour animer une image, WinDev propose 2 solutions :
utiliser une image au format GIF anim : lanimation est contenue dans le fichier image.
utiliser une image contenant les diffrents dessins de lanimation.
!
Dans la fentre "FEN_ChampImage.WDW", affichez la description du champ contenant
limage de la terre. Longlet "Gnral" contient uniquement le nom de limage afficher. Ce
fichier est au format GIF. Lanimation est contenue dans le fichier.
!
La fentre "FEN_ChampImage.WDW" utilise galement une image anime par WinDev. Le
champ "Une image non anime" contient limage dans sa totalit : cette image est compose
de 6 dessins en largeur, et de 4 dessins en hauteur. Nous allons voir en dtail le paramtrage
utilis pour crer limage anime.
Homothtique
centr tendu
L'image est agrandie proportionnellement pour que le
plus petit cot de l'image soit affich entirement dans
le champ image, et centre dans le champ image.
Homothtique
sans agrandisse-
ment
Limage peut tre rduite si ncessaire mais ne dpas-
sera pas sa taille originale si le champ daccueil est
trop grand.
Homothtique
centr sans
agrandissement
Limage est centre. Limage peut tre rduite si
ncessaire mais ne dpassera pas sa taille originale si
le champ daccueil est trop grand.
A
t
t
e
n
t
i
o
n
!
La couleur "transparente" est analyse dans la totalit de limage. Il peut donc y
avoir des zones transparentes en plein centre de limage. Cela peut donner des
effets daffichage, vrifiez les images !
GAF WinDev.book Page 181 Jeudi, 5. juillet 2012 9:16 09
182 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le catalogue dimages
Ds quune image peut tre affiche dans un champ, une fentre, WinDev propose dutili-
ser le catalogue dimages grce au bouton "CATALOGUE". Ce catalogue contient plusieurs
milliers dimages, de cliparts, ...
Pour slectionner un clipart, vous pouvez effectuer une recherche selon un mot-cl.
Dans la fentre de recherche :
Saisissez un mot-cl (par exemple "Animaux")
Indiquez si ncessaire le thme, les dimensions et la catgorie de recherche.
Cliquez sur le bouton de recherche (les jumelles). Les images se rapprochant le plus du
mot-cl s'affichent dans la fentre.
Choisissez limage que vous prfrez en cliquant dessus (par exemple un poisson) et
validez.
Indiquez les caractristiques de limage gnrer : taille, luminosit, extension, ...
Le nom de limage spcifi s'affiche alors dans la fentre de description de limage et le
fichier de l'image (au format voulu) est copi dans le rpertoire du projet.
GAF WinDev.book Page 182 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 183 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Affichez la description du champ image contenant limage de limprimante anime. Dans
longlet "Dtail" du champ, loption "Anim la cration" est coche. Cette option permet
dindiquer que le champ contient une image animer ds laffichage du champ.
Cliquez sur le bouton [...] situ ct de loption "Animation : Image animer". La fentre de
configuration de lanimation saffiche.
Cette fentre contient tous les paramtres de lanimation. On retrouve dans cette fentre le
nombre de dessins utiliss en largeur et en hauteur. Pour tester ces paramtres sur limage
en cours, cochez la case "Utiliser limage du champ". Vous pouvez modifier les paramtres de
lanimation et tester immdiatement leur effet.
!
Fermez la description du champ image.
Image clicable
WinDev permet de transformer vos images en images clicables en ... un clic de souris. En effet, il
suffit de :
1. Afficher la description de limage.
2. Dans longlet "Dtail", slectionner les options :
"Cette image est une zone de clicage" : cette option permet de dfinir que limage peut tre
clique
"Prioritaire pour les clics souris" : cette option permet de grer le clic sur limage quelle que
soit laltitude du champ (premier plan ou non).
E
x
e
m
p
l
e
Pour plus de dtails sur lutilisation de tous les paramtres proposs, consultez
lexemple "WD Animated" (exemple didactique), livr avec WinDev (accessible
depuis le volet "Assistants, Exemples et Composants").
A
s
t
u
c
e
Les paramtres danimation peuvent tre dcrits directement dans le champ,
mais peuvent aussi tre modifis par programme laide des fonctions du
WLangage : AnimationChangeParamtre, AnimationChangeType et Animation-
LitParamtre. Consultez laide en ligne pour une utilisation approfondie de ces
fonctions (mots-cls : "Animation, Animer une image").
GAF WinDev.book Page 183 Jeudi, 5. juillet 2012 9:16 09
184 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3. Un nouveau code est alors associ limage : Code de clic sur limage. Dans ce code, vous
pouvez grer leffet du clic sur le champ.
!
Dans la fentre "FEN_ChampImage.WDW", les zones de clicage sont :
limage contenant la tte de tigre.
diffrents champs images placs sur la tte de tigre. Ces champs image nont pas dimage
associe et permettent de dfinir les zones de clic.
Rsum
Les slecteurs doptions sont galement appels "case d'options".
Ils permettent de slectionner une option et une seule, parmi celles
proposes.
Selon le mode daffichage slectionn, chaque option peut tre
constitue :
dune case de slection et dun libell
dune case de slection, dun libell et dun sous-libell
dune image, dun libell (et si ncessaire dun sous-libell).
Les diffrents lments constituant loption (image, libell et sous-libell) doivent tre saisis lors
de la description du slecteur sous l'diteur. Ils sont modifiables par programmation.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampSelecteur.WDW" sous lditeur.
!
Testez la fentre : cette fentre contient deux types de slecteur :
un slecteur standard
un slecteur au look Vista avec sous-libells.
Cliquez sur les diffrents boutons, modifiez les slecteurs. Constatez ce quil se passe. Pour
chaque bouton, vous pouvez visualiser le code excut.
!
Retournez sous l'diteur.
Caractristiques des slecteurs
WinDev propose quatre modes daffichage des slecteurs :
slecteur standard.
slecteur standard avec sous-libells.
slecteur au look Vista (avec possibilit dutiliser une image pour chaque option).
Type de champ : Slecteur
A
s
t
u
c
e
!
Comment diffrencier le slecteur et linterrupteur?
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.
GAF WinDev.book Page 184 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 185 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
slecteur au look Vista avec sous-libells (avec possibilit dutiliser une image pour chaque
option).
Pour tous ces types de slecteur, il est possible dassocier chaque option :
un entier (qui peut prendre une valeur de 1 N, N tant le nombre total doptions du slecteur).
La premire option a le numro 1, la deuxime le numro 2, ... Les options sont numrotes de
haut en bas et de gauche droite.
Dans notre fentre :
"SEL_Civilit = 1" signifie que loption "Monsieur" est slectionne,
"SEL_Civilit = 2" signifie que loption "Madame" est slectionne
et "SEL_Civilit = 3" signifie que loption "Mademoiselle" est slectionne.
une valeur renvoye spcifique. Cette valeur renvoye est spcifie dans lcran "Contenu".
Dans notre exemple :
SEL_PlatDuJour = "Moussaka" signifie que loption "Moussaka" est slectionne.
SEL_PlatDuJour = "Parmentier" signifie que loption "Parmentier" est slectionne.
SEL_PlatDuJour = "Confit" signifie que loption "Confit" est slectionne.
!
Etudiez le code des diffrentes actions proposes par la fentre : le code utilis pour la ges-
tion des deux slecteurs prsente quelques diffrences.
Rsum
Les interrupteurs sont galement appels "cases cocher". Ils permettent de
choisir si la valeur de chaque option propose est "vraie" ("Oui") ou "fausse"
("Non").
Selon le mode daffichage slectionn, chaque option peut tre constitue :
dune case cocher et dun libell
dune case cocher, dun libell et dun sous-libell
dune image, dun libell (et si ncessaire dun sous-libell).
Les diffrents lments constituant loption (image, libell et sous-libell) doivent tre saisis lors
de la description de linterrupteur sous l'diteur. Ils sont modifiables par programmation.
N
o
t
e
s
Utiliser la numrotation ou les valeurs renvoyes?
La programmation des slecteurs renvoyant un entier ou une valeur est diff-
rente. Lavantage de lutilisation des valeurs renvoyes est visible lors de linser-
tion ou du dplacement dune option dans le slecteur :
Si le slecteur renvoie un entier, linsertion ou le dplacement dune option
dans le slecteur oblige revoir tout le code de gestion de la valeur du slec-
teur (pour grer le dcalage des numros).
Si le slecteur renvoie une valeur spcifique, linsertion dune option dans le
slecteur entrane uniquement la prise en compte de la nouvelle option.
Linsertion dune option nentrane aucune modification.
Type de champ : Interrupteur
GAF WinDev.book Page 185 Jeudi, 5. juillet 2012 9:16 09
186 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
!
Ouvrez la fentre "FEN_ChampInterrupteur.WDW" sous lditeur.
!
Testez la fentre et cliquez sur les diffrents boutons, modifiez les deux interrupteurs. Consta-
tez ce quil se passe. Pour chaque bouton, vous pouvez visualiser le code excut.
!
Retournez sous l'diteur.
Caractristiques des interrupteurs
WinDev propose quatre modes daffichage des interrupteurs :
interrupteur standard
interrupteur standard avec sous-libells
interrupteur au look Vista (avec possibilit dutiliser une image pour chaque option)
interrupteur au look Vista avec sous-libells (avec possibilit dutiliser une image pour chaque
option)
Chaque option d'un interrupteur est "repre" par un indice (qui peut prendre une valeur de 1 N,
N tant le nombre total doptions de linterrupteur).
La premire option a le numro 1, la deuxime le numro 2, ... Les options sont numrotes de
haut en bas et de gauche droite :
"INT_Loisir[2] = Vrai" signifie : "Ecrire" est coche.
"INT_Loisir[3] = Faux" signifie : "Danser" n'est pas coch.
Lorsquil y a plusieurs options, linterrupteur se comporte comme un tableau doptions.
Pour accder une option, il suffit de passer lindice de loption en utilisant la syntaxe avec les
crochets [ ].
Pour initialiser une case cocher, il faut initialiser le choix correspondant avec la valeur "Vrai" ou
"Faux" selon le cas.
Pour connatre la valeur d'une option, il suffit de rcuprer la valeur du champ ("Vrai" ou "Faux").
INT_Loisir[2] = Vrai // pour cocher l'option 2 "Ecrire"
SI INT_Loisir[2] = Vrai ALORS
//option coche
SINON
//option non coche
FIN
N
o
t
e
s
Par dfaut, aucune option nest coche dans un interrupteur.
GAF WinDev.book Page 186 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 187 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Il est possible de modifier :
le libell d'un interrupteur ou dune option dun interrupteur avec la proprit ..Libell. Cepen-
dant, il n'est pas possible d'ajouter des options par programmation. Par exemple :
le sous-libell de loption (sil existe) avec la proprit ..SousLibell.
limage de loption (si elle existe) avec la proprit ..Image.
Par exemple :
Rsum
Les listes sont toujours droules. Cest pourquoi on les nomme gale-
ment "listes droules". Elles permettent de visualiser plusieurs l-
ments et d'en slectionner un ou plusieurs. Une liste peut contenir du
texte et/ou des graphismes.
Lors de la cration dun champ "Liste", un assistant dmarre et propose
de crer :
une liste dont le contenu est li un fichier de donnes ou une
requte (liste fichier).
une liste dont le contenu est li une variable (liste sur source).
une liste dont vous dfinissez le contenu dans lditeur ou par programmation (liste
mmoire).
A
s
t
u
c
e
Les programmeurs habitus manipuler des expressions boolennes peuvent
omettre le test avec la valeur "Vrai" ou "Faux" :
SI INT_Loisir[2] ALORS
//option coche
SINON
//option non coche
FIN
//Change le libell
INT_Loisir..Libell = "Vous aimez plutt"
//Change la seconde option
INT_Loisir[2]..Libell = "Ecrire avec un stylo"
INT_Dossier[2]..Libell = "Film"
INT_Dossier[2]..Image = "Film.png"
INT_Dossier[2]..SousLibell = "Films numriques (vacances)"
Type de champ : Liste
GAF WinDev.book Page 187 Jeudi, 5. juillet 2012 9:16 09
188 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
!
Ouvrez la fentre "FEN_ChampListe.WDW" sous lditeur.
!
Lancez le test de cette fentre.
La premire liste du haut est une liste mmoire mono slection.
la liste "Collaborateur" est une liste fichier. Cette liste est automatiquement remplie avec le
contenu du fichier de donnes associ.
la liste "Mois" est une liste sur source.
Les deux listes du bas sont des listes mmoire multi-slections.
!
Cliquez sur les diffrents boutons et observez ce quil se passe.
En excution, dans une liste multi-slections (selon le standard Windows) :
pour slectionner plusieurs lments un par un, appuyez sur la touche [CTRL] tout en slec-
tionnant les lments avec la souris.
pour slectionner plusieurs lments conscutifs en mme temps, cliquez sur le premier
lment, appuyez sur la touche [SHIFT], maintenez cette touche enfonce et cliquez sur le
dernier lment de la slection.
!
Le code WLangage correspondant aux diffrentes actions ralises est affich dans la zone
"Code excut".
!
Revenez sous l'diteur.
A
t
t
e
n
t
i
o
n
!
Rgles appliquer pour connatre le type de liste crer :
Utilisez une liste lie un fichier de donnes ou une requte lorsque vous
souhaitez proposer lutilisateur une liste de valeurs qui sont contenues dans
un fichier de donnes. Si la liste est lie un fichier de donnes, cest tout le
contenu du fichier de donnes qui est propos directement. Si la liste est lie
une requte, la liste contiendra une slection denregistrements du fichier de
donnes.
Utilisez une liste dont le contenu est dfini dans lditeur si les valeurs sont
"STATIQUES". Elles ne changent pas durant le droulement du programme.
Utilisez une liste remplie par programmation lorsque le contenu de la liste est
issu de calculs ou si la slection des lments intgrer la liste ne peut tre
ralise par une requte.
Utilisez une liste dont le contenu est li une variable lorsque le contenu de la
liste est par exemple issu de calculs raliss laide dune variable.
N
o
t
e
s
Liste mono slection
Une liste mono slection est quivalente une combo ou un slecteur.
Un seul choix est possible. Selon linterface de votre application, choisissez le
champ qui permet le plus facilement lutilisateur de slectionner son choix.
GAF WinDev.book Page 188 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 189 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mode de remplissage dune liste
Nous avons vu que lassistant de cration dune liste proposait de crer plusieurs types de liste :
liste relie un fichier de donnes ou une requte (appele liste fichier)
liste remplie par programmation (appele liste mmoire)
liste remplie partir dune variable (appele liste sur source)
chaque type de liste correspond un mode de remplissage spcifique.
Remplissage dune liste mmoire
Dans le cas dune liste mmoire, vous disposez de deux mthodes pour remplir la liste :
sous lditeur,
par programmation.
Sous lditeur, rien de plus simple : le contenu dune liste peut tre dfini directement dans la
fentre de description du champ (onglet "Gnral", champ "Contenu initial"). Vous pouvez bien
entendu saisir plusieurs valeurs. Pour aller la ligne suivante, appuyez sur la touche [Entre].
Pour remplir une liste par programmation, il faut utiliser la fonction ListeAjoute. Par exemple :
!
Dans lexemple pratique, linitialisation de la liste mmoire est ralise dans le bouton "Rem-
plir".
Remplissage dune liste partir dun fichier de donnes ou dune requte
Dans le cas dune liste fichier, le remplissage est effectu partir des lments fournis lors de la
cration de la liste. Ces informations sont galement disponibles dans longlet "Contenu". Ces
informations sont les suivantes :
le fichier de lanalyse ou la requte qui servira de source de donnes pour le remplissage.
Ce fichier de donnes ou cette requte sera lu(e) automatiquement sans avoir crire une
seule ligne de code.
la rubrique afficher dans la liste.
la cl de parcours utilise : cette rubrique sert de tri pour le remplissage de la liste et donc
indique lordre dans lequel seront visualises les valeurs de la liste.
la valeur rcupre : lors de la slection dun lment de la liste, la valeur rcupre pourra
tre :
soit lindice de la ligne slectionne,
soit une valeur du fichier de donnes.
Gnralement, on choisit comme valeur rcupre une rubrique du fichier de donnes. Il
sagit le plus souvent de la cl unique, ce qui permet de faire par exemple des recherches
dans les fichiers de donnes.
// Ajoute Lundi dans la liste LISTE_Jour
ListeAjoute(LISTE_Jour,"Lundi")
N
o
t
e
s
Si la requte nexiste pas lors de la cration du champ, il est possible de
crer la requte en mme temps que le champ. La requte sera alors
intgre la fentre qui contient le champ.
Attention : si vous utilisez une requte intgre, cette requte sera utili-
se uniquement pour ce champ. Elle ne pourra pas tre rutilise dans
votre projet.
GAF WinDev.book Page 189 Jeudi, 5. juillet 2012 9:16 09
190 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Dans lexemple pratique, consultez lcran "Contenu" de la liste "Collaborateur" pour vrifier
les caractristiques de la liste fichier utilise.
Remplissage dune liste sur source
Il est par exemple possible de remplir une liste avec des informations contenues dans un tableau
WLangage. Le tableau est une variable globale de la fentre :
Dans le cas dune liste sur source, le remplissage est effectu partir des lments fournis lors
de la cration de la liste. Ces informations sont galement disponibles dans longlet "Contenu".
Ces informations sont les suivantes :
le nom de la variable source,
la variable afficher dans la liste,
la variable mmorise.
!
Dans lexemple pratique, consultez lcran "Contenu" de la liste "MonTableauMois" pour vri-
fier les caractristiques de la liste sur source utilise.
Caractristiques de la liste
Lorsque la liste est cre, ses caractristiques sont modifiables directement dans la fentre de
description du champ (option "Description" du menu contextuel). Les diffrents onglets permet-
tent de prciser toutes les options des listes.
Par exemple, longlet "Dtail" permet de :
dfinir si la liste est multislection.
dfinir si la liste est trie.
si lascenseur doit afficher une bulle, si le dplacement doit tre ralis au pixel, ...
N
o
t
e
s
Les diffrents types de liste fichier
Deux types de liste fichier sont disponibles :
Liste fichier "Charg en mmoire" : Le contenu de la liste est charg en
mmoire, puis affich dans la liste. Laccs aux diffrents lments de
la liste est plus rapide. Ce mode est rserv pour des fichiers de don-
nes de moins de 100 000 enregistrements.
Liste fichier "Mode Accs direct (sans limite)" : La liste affiche directe-
ment le contenu du fichier de donnes ou de la requte. Lenregistre-
ment en cours correspond llment slectionn. Chaque
dplacement dans la liste entrane un accs au fichier li. Ce type de
liste est rserv aux fichiers de plus de 100 000 enregistrements.
MonTableauMois est un tableau de 12 chanes
MonTableauMois = ["Janvier", "Fvrier", "Mars", "Avril", ...
"Mai", "Juin", "Juillet", "Aot", "Septembre", ...
"Octobre", "Novembre", "Dcembre"]
GAF WinDev.book Page 190 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 191 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Programmation dune liste
La programmation des champs Liste est trs simple avec WinDev : il suffit dutiliser les fonctions
WLangage commenant par les lettres LISTE. Ces fonctions peuvent tre utilises sur les listes
mmoire, fichier ou sur source.
Modification dune liste (mmoire uniquement)
Pour modifier un lment dans une liste, deux mthodes sont disponibles :
la fonction ListeModifie
l'affectation directe en utilisant l'indice de l'lment modifier.
Remarque : Pour accder un lment dune liste, il faut prciser son indice. Le premier lment
dune liste a l'indice "1".
Rcupration de llment slectionn
Dans une liste mono-slection, pour rcuprer l'lment slectionn, il suffit de connatre l'indice
de l'lment slectionn. La fonction ListeSelect retourne lindice de llment slectionn. Si
aucun lment nest slectionn, la fonction ListeSelect retourne la valeur "1".
Remarque : dans le cas dune liste fichier, si la valeur rcupre correspond une valeur du
fichier de donnes, il suffira dutiliser directement le nom de la liste pour connatre la valeur slec-
tionne.
Dans une liste multi-slections, pour rcuprer toutes les options slectionnes, il faut utiliser la
fonction ListeSelect. Tant que la fonction ListeSelect ne renvoie pas la valeur "-1", cette fonction
retourne lindice de l'option slectionne.
Pour connatre le nombre dlments slectionns, il faut utiliser la fonction ListeSelectOccur-
rence.
N
o
t
e
s
Vous ne savez pas si la fonction peut tre utilise sur une liste mmoire, fichier
ou sur source ? Consultez laide en ligne! Utilisez la touche F1 sur le nom de la
fonction.
ListeModifie(LISTE_Jour,"LUNDI") // Modifie l'lment en cours
ListeModifie(LISTE_Jour,"LUNDI",1) // Modifie l'lment 1
LISTE_Jour[1] = "LUNDI" // Modifie l'lment 1
Indice est un entier
Jour est une chane
Indice = ListeSelect(LISTE_Jour)
Jour = LISTE_Jour[Indice] //Rcupre l'lment slectionn
// Lignes slectionnes dans une liste multi-slections
i est un entier = 1
LigneSelectionnee est un entier = ListeSelect(Liste1,1)
TANTQUE LigneSelectionnee <> -1
Trace("La ligne n"+ LigneSelectionnee +" est slectionne")
i++
LigneSelectionnee = ListeSelect(Liste1,i)
FIN
GAF WinDev.book Page 191 Jeudi, 5. juillet 2012 9:16 09
192 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour connatre le nombre dlments dans la liste, il faut utiliser la proprit ..Occurrence ou la
fonction ListeOccurrence :
Suppression (dans les listes mmoire uniquement)
Pour supprimer une valeur, il faut utiliser la fonction ListeSupprime.
Pour supprimer toutes les valeurs de la liste, il faut utiliser la fonction ListeSupprimeTout.
Recherche
Pour chercher un lment dans une liste, il faut utiliser la fonction ListeCherche.
Rsum
Une liste image est une liste permettant dafficher la fois du texte et des images. Un lment
dune liste image est compos de :
un libell
une miniature (ou image)
Une liste image peut tre affiche selon deux modes :
mode liste image : chaque lment de la liste est compos dun libell et dune image.
mode classique : seul le libell est affich dans la liste image.
Lors de la cration dun champ "Liste image", un assistant dmarre et propose de crer :
une liste image dont le contenu est li un fichier de donnes ou une requte (liste image
fichier).
une liste image dont le contenu est li une variable (liste image sur source).
une liste image dont vous dfinissez le contenu dans lditeur ou par programmation (liste
image mmoire).
SI LISTE_Jour..Occurrence = 0 ALORS //liste vide
//Supprime l'lment slectionn
ListeSupprime(LISTE_Jour)
SI ListeCherche(LISTE_Jour, Valeur) = -1 ALORS
//n'existe pas
SINON
//existe dj
FIN
Type de champ : Liste Image
GAF WinDev.book Page 192 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 193 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
On appliquera les mmes rgles que pour les listes pour choisir la mthode de remplissage.
Ce paragraphe prsente uniquement les spcificits des listes image. Pour tout ce qui concerne le
fonctionnement des listes image, consultez le paragraphe concernant les listes.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampListeImage.WDW" sous lditeur. Cette fentre prsente une
liste image mmoire et une liste image fichier.
!
Lancez le test de cette fentre.
!
Cliquez sur les diffrents boutons et observez ce qu'il se passe.
!
Revenez sous l'diteur et tudiez les traitements des boutons.
Mode de remplissage de la liste image
Comme une liste, une liste image peut tre une liste fichier (lie un fichier de donnes ou une
requte), une liste mmoire ou une liste sur source.
Remplissage dune liste image mmoire
Pour remplir une liste image mmoire, elle doit tre remplie par programmation grce la fonction
ListeAjoute. Par exemple :
Remplir une liste image partir dun fichier de donnes ou dune requte
Lors de la cration dun champ liste image remplie partir dun fichier de donnes ou dune
requte, vous devez indiquer le fichier de lanalyse ou la requte qui servira de source de donnes
pour le remplissage. Ce fichier de donnes (ou cette requte) doit contenir :
une rubrique qui correspondra au libell de llment affich dans la liste image.
une rubrique qui correspondra limage de llment affich dans la liste image.
Les autres lments indiquer dans lassistant de cration de la liste image sont identiques
ceux dune liste simple.
Remplissage dune liste image sur source
Il est par exemple possible de remplir une liste image avec des informations contenues dans un
tableau, une classe, une structure WLangage. Cet lment est une variable globale de la fentre
ou du projet.
ListeAjoute(LSI_ListeImg1,"image abandon.ico","abandon.ico")
// Ajoute limage "abandon.ico" et le libell "Image aban-
don.ico"
// dans la liste image LSI_ListeImage1
N
o
t
e
s
Si la requte nexiste pas lors de la cration du champ, il est possible de crer la
requte en mme temps que le champ. La requte sera alors intgre la fen-
tre qui contient le champ.
Attention : si vous utilisez une requte intgre, cette requte sera utilise uni-
quement pour ce champ. Elle ne pourra pas tre rutilise dans votre projet.
GAF WinDev.book Page 193 Jeudi, 5. juillet 2012 9:16 09
194 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dans le cas dune liste image sur source, le remplissage est effectu partir des lments fournis
lors de la cration de la liste image. Ces informations sont galement disponibles dans longlet
"Contenu". Ces informations sont les suivantes :
le nom de la variable source
la variable qui correspondra au libell de llment affich dans la liste image.
une rubrique qui correspondra limage de llment affich dans la liste image
Caractristiques de la liste image
Lorsque la liste image est cre, ses caractristiques sont modifiables directement dans la fen-
tre de description du champ (option "Description" du menu contextuel).
Vous retrouverez toutes les caractristiques indiques dans lassistant, et dautres options trs
intressantes.
Lcran "Gnral" permet de paramtrer la taille dune cellule de la liste image.
Lcran "Dtail" permet par exemple de :
dfinir si la liste image est multislection.
dfinir si la liste image est trie.
donner lorientation du champ.
Programmation
La programmation des champs Liste image est trs simple avec WinDev : comme pour les listes, il
suffit dutiliser les fonctions WLangage commenant par les lettres LISTE. Ces fonctions peuvent
tre utilises sur les listes image mmoire et/ou fichier.
De plus, certaines proprits spcifiques aux listes image peuvent galement tre utilises pour
manipuler les images ou le mode daffichage de la liste.
Modifier une liste image mmoire par programmation
Pour modifier un lment dans une liste image, vous pouvez utiliser :
la fonction ListeModifie.
les proprits ..Valeur et ..Miniature sur llment modifier.
Rcuprer la valeur dune liste image
Dans une liste image, il est possible de rcuprer :
le libell de llment grce la proprit ..Valeur.
limage associe llment, grce la proprit ..Miniature.
N
o
t
e
s
Vous ne savez pas si la fonction peut tre utilise sur une liste image? Consultez
laide en ligne! Utilisez la touche F1 sur le nom de la fonction.
//Modifie l'lment en cours
ListeModifie(LSI_ListeImg1,"image abandon.ico","abandon.ico")
//Modifie l'lment 1
ListeModifie(LSI_ListeImg1,"image abandon.ico",...
"abandon.ico", 1)
// Modifie llment 2
LSI_ListeImg1[2]..Valeur = "Image Aide.ico"
LSI_ListeImg1[2]..Miniature = "Aide.ico"
GAF WinDev.book Page 194 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 195 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Une combo est galement appele "combo box" ou encore "liste
droulante". Comme pour une liste, lors de la cration dun champ
"Combo", vous pouvez crer :
une combo "Fichier" dont le contenu est li un fichier de don-
nes ou une requte.
une combo "Mmoire" dont vous dfinissez le contenu dans
lditeur ou par programmation.
une combo sur source, lie une variable WLangage.
On appliquera les mmes rgles que pour les listes pour choisir la mthode de remplissage.
La partie droule de la combo peut correspondre :
une liste
une liste image
une table
une fentre popup
Le choix du type droul est effectu dans longlet "Contenu" de la description de la combo.
Caractristiques dune combo
La combo se droule lorsque le champ est slectionn. Il existe deux types de combos :
les combos dans lesquelles un lment peut tre slectionn dans la liste. Ces combos
sont appeles "combo sans saisie".
Lutilisateur droule la liste pour slectionner un lment.
les combos dans lesquelles un lment peut tre slectionn dans la liste ou directement
saisi dans le champ de la combo. Ces combos sont appeles "combo avec saisie".
Lutilisateur peut au choix saisir une valeur ou bien drouler la liste pour slectionner un l-
ment.
Le type de la combo se dfinit dans la fentre de description de la combo (onglet "Gnral").
Les combos peuvent contenir du texte et du graphisme.
Ce paragraphe prsente uniquement les spcificits des combos. Pour tout ce qui concerne le
fonctionnement des combos, consultez le paragraphe concernant les listes.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampCombo.WDW" sous lditeur. Cette fentre prsente les diff-
rentes possibilits des combos.
!
Lancez le test de cette fentre. Cette fentre contient :
Une combo sans saisie et trie,
Une combo avec saisie et trie,
Type de champ : Combo
A
t
t
e
n
t
i
o
n
!
Au contraire des listes, les combos ne sont pas multi-slections : un seul l-
ment peut tre slectionn dans la combo.
GAF WinDev.book Page 195 Jeudi, 5. juillet 2012 9:16 09
196 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Une combo fichier.
!
Cliquez sur les diffrents boutons et observez ce quil se passe.
!
Revenez sous l'diteur et tudiez les traitements des boutons.
Caractristiques de la combo
Lorsque la combo est cre, ses caractristiques sont modifiables directement dans la fentre de
description du champ (option "Description" du menu contextuel).
Vous retrouverez toutes les caractristiques indiques dans lassistant, et dautres options trs
intressantes.
Lcran "Gnral" permet de paramtrer si la combo est avec saisie ou non.
Lcran "Dtail" permet par exemple de :
dfinir les caractristiques de la combo avec saisie
dfinir si la combo est trie.
proposer lhistorique des slections, dans les premires valeurs de la liste droulante.
permettre lutilisateur de modifier la largeur et la hauteur de la combo une fois droule!
Programmation des combos
La programmation des combos est identique celle des listes. Les fonctions WLangage utiliser
commencent par les lettres LISTE. Des fonctions spcifiques aux combos (commenant par
COMBO) sont galement utilisables.
Le seul point particulier concerne le type de combo : "avec saisie" ou "sans saisie".
Cas dune combo avec saisie
Pour affecter ou rcuprer le champ dune combo avec saisie, la syntaxe est la mme que pour
affecter ou rcuprer un champ de saisie :
Cas dune combo sans saisie
Pour rcuprer llment slectionn dans la combo, la mthode est similaire une liste. Il faut
utiliser la fonction ListeSelect pour rcuprer lindice de llment slectionn. Ensuite, il faut uti-
liser cet indice pour rcuprer la valeur.
A
t
t
e
n
t
i
o
n

!
Contrairement au WEB, une combo na jamais dlment slectionn par dfaut,
donc elle est vide. Il est conseill de ne jamais laisser vide une combo, sauf si la
combo est en saisie.
//Affecte la slection de la combo
COMBO_Prnom = "Julie"
//Rcupre la slection de la combo
Ch est une Chane
Ch = COMBO_Prnom
GAF WinDev.book Page 196 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 197 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour slectionner un lment, il faut utiliser la fonction ListeSelectPlus.
Rsum
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). Ouf!
Le champ table WinDev permet de visualiser ou de modifier des donnes :
en mmoire : on parle alors de table mmoire ou table remplie par programmation.
provenant de fichiers de donnes ou de requtes : on parle alors de table fichier.
provenant de variables WLangage : on parle alors de table sur source.
Lavantage des tables est de pouvoir visualiser plusieurs donnes dans une seule fentre.
La gestion des tables est diffrente selon sil sagit dune table mmoire ou dune table fichier ou
dune table sur source. Le choix du type de table est ralis ds la cration de la table, dans
lassistant.
Nous allons dtailler les diffrents types de champs table.
Exemple pratique
Le projet "Fentres et champs" propose deux fentres prsentant les spcificits des tables.
!
Ouvrez la fentre "FEN_ChampTable.WDW" sous lditeur. Cette fentre prsente diffrents
traitements sur les tables mmoire et les tables fichier. Testez cette fentre.
!
Ouvrez la fentre "FEN_ChampTableAvance.WDW" sous lditeur. Cette fentre prsente luti-
lisation des tables fichier avec ruptures ainsi que les tables sur source.
//Rcupre l'lment slectionn
Indice est un entier
Ch est une chane
Indice = ListeSelect(COMBO_Combo1)
Ch = COMBO_Combo1[Indice]
//Rcupre le 3
me
lment de la liste
Ch est une Chane
Ch = COMBO_Combo1[3]
Type de champ : Table
GAF WinDev.book Page 197 Jeudi, 5. juillet 2012 9:16 09
198 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mode de remplissage de la table
Comme une liste, une table peut tre une table fichier (lie un fichier de donnes ou une
requte), une table mmoire ou une table sur source.
Remplissage dune table mmoire
Une table mmoire peut tre remplie par programmation grce la fonction TableAjouteLigne.
Cette fonction admet en paramtre le nom de la table et le contenu de la ligne. Le contenu de la
ligne est donn colonne par colonne : chaque valeur de colonne est spare par "une virgule".
Table relie un fichier de donnes ou une requte
Lors de la cration dun champ table remplie partir dun fichier de donnes ou dune requte,
vous devez indiquer plusieurs informations :
le fichier de donnes de lanalyse ou la requte qui servira de source de donnes pour le
remplissage.
Ce fichier de donnes ou cette requte sera lu automatiquement sans avoir crire aucune
ligne de code.
les rubriques affiches dans une ligne de la table.
la cl de parcours utilise : cette rubrique sert de tri pour le remplissage de la table et donc
indique lordre dans lequel seront visualises les valeurs de la table. Par exemple, vous
pourrez visualiser dans une table les produits avec leur libell.
// Ajout d'une ligne dans sa totalit
TableAjouteLigne(TABLE_Menu,"Lundi","uf meurette",...
"Blanquette", "Glace vanille")
N
o
t
e
s
Si la requte nexiste pas lors de la cration du champ, il est possible de
crer la requte en mme temps que le champ. La requte sera alors
intgre la fentre qui contient le champ.
Attention : si vous utilisez une requte intgre, cette requte sera utili-
se uniquement pour ce champ. Elle ne pourra pas tre r-utilise dans
votre projet.
N
o
t
e
s
Les diffrents types de tables fichier
Deux types de tables fichier sont disponibles :
Table fichier "Charg en mmoire" : Le contenu du fichier est charg en
mmoire, puis affich dans la table. Laccs aux diffrents lments du
fichier est plus rapide. Les donnes tant en mmoire, toutes les colon-
nes de la table sont triables. Ce mode est rserv pour des fichiers de
donnes de moins de 100 000 enregistrements.
Table fichier "Mode Accs direct (sans limite)" : La table affiche directe-
ment le contenu du fichier de donnes ou de la requte. Lenregistre-
ment en cours correspond llment slectionn. Chaque
dplacement dans la table entrane un accs au fichier de donnes li.
Ce type de table est rserv aux fichiers de plus de 100 000 enregistre-
ments.
GAF WinDev.book Page 198 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 199 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cas particulier : Table relie une requte paramtre
Si une table est lie une requte paramtre, lassistant de cration de table propose par
dfaut de "Gnrer le code dinitialisation des paramtres de la requte". Cette option gnre
automatiquement le code dinitialisation de la table, avec des paramtres par dfaut. Si vous avez
spcifi des donnes de test, ces donnes sont automatiquement reprises (nous lavons vu dans
la partie 2).
Remplissage dune table sur source
Lors de la cration dun champ table rempli partir dune variable, vous devez indiquer plusieurs
informations :
la variable tableau qui servira de source de donnes pour le remplissage.
Cette variable sera lue automatiquement sans avoir crire aucune ligne de code.
les variables utilises pour chaque colonne de la table.
Caractristiques de la table
Lorsque la table est cre, ses caractristiques sont modifiables directement dans la fentre de
description du champ (option "Description" du menu contextuel).
Vous retrouverez toutes les caractristiques indiques dans lassistant, et dautres options trs
intressantes.
Quelques informations intressantes :
Il est possible deffectuer des totaux automatiques dans les tables (onglet "Gnral" de la des-
cription de la table et onglet "Dtail" des colonnes). Nous verrons cette fonctionnalit en dtail
dans la partie Totaux dans les tables, page 225.
Les tables peuvent tre mono ou multi-slection (onglet "IHM" de la description de la table). La
slection peut tre effectue par lignes, par colonnes ou par cellules.
Longlet "Style" permet de dfinir les couleurs des lignes paires et impaires, la couleur de la
ligne slectionne (ou limage de fond utilise), ...
N
o
t
e
s
Rafrachir une table base sur une requte
Pour rafrachir laffichage dune table base sur une requte (paramtre ou
non), utilisez la fonction TableAffiche avec la constante taReExecuteRequte.
N
o
t
e
s
La fentre de description dune table est compose de deux zones :
la zone suprieure prsentant le nom de la table, des colonnes et leur type
la zone infrieure compose des diffrents onglets de description.
Si le nom de la table est slectionn, la partie infrieure prsente les caractris-
tiques de la table.
Si une colonne est slectionne, la partie infrieure prsente les caractristi-
ques des colonnes.
GAF WinDev.book Page 199 Jeudi, 5. juillet 2012 9:16 09
200 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Que la table soit une table fichier, mmoire ou sur source, les colonnes peuvent tre :
dplaables par lutilisateur (grce la souris)
avec recherche : une loupe sera affiche, permettant de rechercher dans la colonne une
valeur.
triables. Des flches apparatront dans le titre des colonnes, signalant lutilisateur que la
colonne peut tre trie, ainsi que le sens de tri.
Programmation dune table mmoire
Dans une table mmoire, chaque ligne de la table est identifie par un indice.
Pour manipuler une ligne comme pour manipuler une colonne, il faut prciser lindice de la ligne
concerne. Si lindice n'est pas prcis, cest la ligne slectionne qui est concerne.
Une table mmoire peut tre manipule ligne par ligne ou colonne par colonne.
Une table mmoire peut tre en saisie ou en affichage.
Une table mmoire peut tre en mono-slection ou en multi-slections.
Fonctions permettant de manipuler une table mmoire
La programmation des champs Table est trs simple avec WinDev : il suffit dutiliser les fonctions
WLangage commenant par les lettres TABLE. Ces fonctions peuvent tre utilises sur les tables
mmoire, sur source et/ou fichier.
Voici quelques-unes des fonctions les plus utiles pour manipuler une table mmoire :
TableModifieLigne modifie une ligne de la table (soit la ligne en cours, soit la ligne dont le
numro d'indice est prcis).
TableSelect retourne l'indice de la ligne en cours (slectionne) ou lindice dune des lignes
slectionnes dans le cas dune table multi-slections.
TableSelectPlus permet de slectionner par programmation une ligne de table en fonction
de son indice et/ou de slectionner plusieurs lignes.
TableSupprime permet de supprimer une ligne de table.
TableSupprimeTout vide toute la table mmoire.
tats dune table mmoire
Une table peut tre :
en affichage : aucune colonne n'est en saisie.
en saisie : au moins une colonne est en saisie.
Ces options sont dfinissables au niveau de chaque colonne (onglet "Dtail" de chaque
colonne dans la fentre de description de la table).
N
o
t
e
s
La loupe ou la flche de tri sont visibles sur toutes les colonnes dune table
mmoire, ou dune table sur source, ou dune table fichier charge en mmoire.
La loupe et la flche ne sont visibles que sur les colonnes lies une cl (index)
pour les tables fichier de type "Accs direct (sans limite)".
N
o
t
e
s
Vous ne savez pas si la fonction peut tre utilise sur une table mmoire, sur
source ou fichier? Consultez laide en ligne! Utilisez la touche F1 sur le nom de la
fonction.
GAF WinDev.book Page 200 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 201 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
L'tat d'une table ou de chaque colonne de la table est dfini sous l'diteur, il peut tre modifi
par programmation avec la proprit ..Etat.
Astuces et FAA sur les tables
!
Testez la fentre "FEN_ChampTable.wdw".
Si vous effectuez un clic droit sur une des tables, le menu contextuel par dfaut saffiche :
Les options "Graphique" et "Calculs automatiques" sont disponibles uniquement si le clic droit a
t effectu sur une colonne de type numrique.
Voici quelques astuces pour optimiser le look de vos tables :
Pour utiliser un titre de colonne multi-lignes, il suffit de cocher loption "Titre de colonne
multi-lignes" dans longlet "Dtail" de la fentre de description du champ Table.
Pour utiliser une couleur de fond dgrade, affichez longlet "Style " de la fentre de des-
cription du champ. Slectionnez llment "Cadre extrieur", puis slectionnez le cadre de
type "Dgrad".
Utilisation avance des tables : table avec ruptures
Pour amliorer le mode de visualisation des donnes dans une table, WinDev propose dutiliser
des tables avec ruptures. Il est ainsi possible dajouter un tri supplmentaire sur les donnes affi-
ches.
!
Ouvrez la fentre "FEN_ChampTableAvance.WDW" sous lditeur. Cette fentre prsente une
table fichier avec rupture.
Lancez le test de cette fentre.
Diffrents boutons permettent de manipuler les ruptures.
Arrtez le test et revenez sous lditeur.
!
Sous lditeur, ouvrez la fentre de description de la table : dans longlet "Contenu", les carac-
tristiques du fichier de donnes parcouru ainsi que de la rupture sont dfinies.
Pour plus de dtails sur le fonctionnement dune table fichier, mmoire ou sur donnes, consultez
laide en ligne (mot-cl : "Champ table").
GAF WinDev.book Page 201 Jeudi, 5. juillet 2012 9:16 09
202 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Les zones rptes permettent de rpter "n" fois un ensemble de champs. Lors de cette rpti-
tion, les champs de la zone rpte peuvent afficher des informations diffrentes. Il est ainsi pos-
sible dafficher, chaque rptition, des enregistrements dune base de donnes.
Les zones rptes peuvent tre de plusieurs types :
Zone rpte mmoire : la zone rpte est remplie par programmation.
Zone rpte fichier : la zone rpte est remplie partir dun fichier de donnes ou dune
requte, automatiquement, sans une seule ligne de code.
Zone rpte sur source : la zone rpte est remplie partir dune variable WLangage
sans aucune ligne de code.
Pour chaque champ de la zone rpte, plusieurs caractristiques peuvent tre modifies lors de
la rptition : valeur, libell, couleur du texte, tat, ...
La zone rpte peut tre dplace comme un champ. Lors de son dplacement, tous les champs
associs la zone rpte se dplacent en mme temps.
Lors de la cration dune zone rpte, il est possible de dfinir le nombre de colonnes qui seront
affiches. Cette option permet dobtenir une rptition horizontale dans la limite du nombre de
colonnes indiqu. Lorsque le nombre de colonnes est atteint, une nouvelle rptition verticale est
ajoute.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampZoneRpte.wdw". Cette fentre utilise une zone rpte lis-
tant des collaborateurs. Les donnes de cette zone rpte proviennent dun fichier de don-
nes HyperFileSQL.
La gestion des zones rptes est diffrente sil sagit :
dune zone rpte mmoire,
dune zone rpte relie un fichier de donnes ou une requte.
dune zone rpte relie des donnes WLangage.
Nous allons dtailler les types de zones rptes existants.
Type de champ : Zone rpte
GAF WinDev.book Page 202 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 203 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
En dtail
Zone rpte mmoire
Une zone rpte peut contenir plusieurs champs (libell, champ de saisie, image, ...). Chacun
des champs de la zone rpte peut tre associ un attribut.
Cet attribut permet de modifier une proprit du champ associ (sa valeur, son libell, sa couleur,
sa visibilit, ...). Il est galement possible de crer un attribut dans la zone rpte sans que celui-
ci ne soit associ un champ : on parle alors dattribut libre (cet attribut peut contenir la valeur
dun compteur par exemple).
Le comportement dune zone rpte mmoire est trs proche dun champ Table.
Dans une zone rpte mmoire, chaque ligne de la zone rpte est identifie par un indice.
Pour ajouter une ligne dans une zone rpte, il faut utiliser la fonction ZoneRpteAjouteLigne.
Cette fonction attend en paramtre :
le nom de la zone rpte,
les valeurs des attributs (dans lordre) spares par des virgules :
La fonction ZoneRpteModifieLigne modifie une ligne de la zone rpte.
Une ligne de zone rpte est supprime avec la fonction ZoneRpteSupprime.
Zone rpte relie un fichier de donnes ou une requte
Lors de la cration dun champ zone rpte fichier vous devez indiquer le fichier de donnes de
lanalyse ou la requte qui servira de source de donnes pour le remplissage.
Ce fichier de donnes ou cette requte sera lu automatiquement sans avoir crire aucune ligne
de code.
La cl de parcours slectionne sert de tri pour le remplissage de la zone rpte et indique donc
lordre dans lequel seront visualises les valeurs.
Par exemple, vous pourrez visualiser dans une zone rpte :
la photographie dun produit
la description du produit
le prix du produit, ...
Les caractristiques dune zone rpte sont disponibles dans la fentre de description de la
zone rpte (menu contextuel, option "Description").
Pour plus de dtails sur le fonctionnement dune zone rpte fichier, mmoire, ou sur source
consultez laide en ligne (mot-cl : "Zone rpte").
//Ajout dune ligne dans la zone rpte
//La zone rpte contient 4 attributs, associs respectivement
//aux champs : LIBMAQUETTE, IMGMAQUETTE, QUANTITE, PRIXUNI
ZoneRpteAjouteLigne(ZR_Maquette, ...
"Maquette n1", "IMAGE_MAQUETTE1.JPG", 10, 45.65)
GAF WinDev.book Page 203 Jeudi, 5. juillet 2012 9:16 09
204 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Aussi appel champ "Liste arborescente" ou champ "Treeview", un champ Arbre est comparable
une liste dont le contenu est class hirarchiquement. Plus simplement, les donnes sont clas-
ses comme lorsque vous utilisez lexplorateur de fichiers de Windows.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampArbre.wdw".
!
Lancez le test de cette fentre.
!
Cliquez sur les diffrents boutons et observez ce qu'il se passe.
!
Revenez sous l'diteur et tudiez le code des boutons.
En dtail
Dans cet exemple, le champ Arbre est gr par programmation. Les fonctions du WLangage qui
permettent de programmer un arbre commencent par ArbreXXX.
Ces fonctions sont comparables aux fonctions de gestion des tables remplies par programmation.
Par exemple, ArbreAjoute, ArbreSupprimeTout, ArbreSupprime, ArbreSelect,
Il est galement possible de manipuler le champ Arbre ligne par ligne pour modifier les proprits
dune ligne. Il est par exemple possible dutiliser :
la proprit ..Couleur pour modifier la couleur dune ligne,
la proprit ..CouleurFond pour modifier la couleur de fond dune ligne,
la proprit ..Police pour modifier les caractristiques de la police dune ligne, ...
De la mme manire que les champs Liste, Table, Combo ou Zone Rpte, les champs arbre
peuvent tre de plusieurs types :
Arbre mmoire : le champ arbre est rempli par programmation.
Arbre fichier : le champ arbre est rempli partir dun fichier de donnes ou dune requte,
automatiquement, sans une seule ligne de code.
Arbre sur source : le champ arbre est rempli partir dune variable WLangage sans aucune
ligne de code.
Nous ne dtaillerons pas les diffrentes caractristiques des champs Arbre ainsi que les fonctions
de manipulation des arbres. Pour plus de dtails, consultez laide en ligne (mot-cl : "Arbre, Mani-
puler un arbre par programmation").
Rsum
Une table hirarchique est le rapprochement entre un champ Table et un champ Arbre.
Ce champ se base sur la structure d'un champ table (colonne, ligne, cellule), et possde une
colonne de type Arbre, permettant d'introduire la notion d'arborescence, de hirarchie.
Cette notion est inexistante dans une table.
Type de champ : Arbre
Type de champ : Table Hirarchique
GAF WinDev.book Page 204 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 205 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Une table hirarchique peut tre base sur un fichier de donnes.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampTableHirarchique.WDW" sous lditeur. Cette fentre prsente
diffrents traitements sur les tables hirarchiques mmoire.
!
Testez cette fentre.
Rsum
Les jauges permettent de reprsenter la progression dun traitement. La valeur de la jauge peut
tre modifie par programme. La jauge peut tre horizontale ou verticale. Les couleurs et le dcor
sont entirement paramtrables.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampJauge.wdw".
Quelques astuces de programmation
!
Pour affecter le champ jauge avec une valeur, il suffit de faire une affectation, comme pour un
champ numrique.
!
Pour dfinir les bornes minimales et maximales dune jauge, utilisez les proprits ..BorneMin
et ..BorneMax :
Type de champ : Jauge
JAUGE_Copie = 75
JAUGE_Copie..BorneMin = 0
JAUGE_Copie..BorneMax = 100
GAF WinDev.book Page 205 Jeudi, 5. juillet 2012 9:16 09
206 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Voici le code du bouton "Excution" qui permet de faire voluer les jauges.
Rsum
Le champ Graphe permet dinclure simplement un graphique dans une fentre. La source de don-
nes de ce champ peut tre :
dfinie par programmation
un fichier de donnes ou une requte
une colonne de table
un champ Liste
un tableau WLangage
Il est possible de raliser plusieurs types de graphes en 2 ou 3 dimensions :
Secteur,
Histogramme,
Boursier
Courbe,
Nuage de points.
...
Pour chacun des types de graphes, des options d'affichage permettent d'avoir des rendus diff-
rents.
Pour plus de dtails, consultez laide en ligne (mot-cl : "Champ Graphe").
Exemple pratique
!
Ouvrez la fentre "FEN_ChampGraphe". Cette fentre utilise un champ Graphe. Les donnes
de ce graphe sont dfinies par programmation grce la fonction grAjouteDonne. La fentre
de description du champ Graphe permet de dfinir les principaux paramtres du champ.
n est un entier
POUR n = 1 A 100
JAUGE_Horizontale = n
JAUGE_Verticale = n
JAUGE_Image = n
JAUGE_Blue = n
JAUGE_LCD = n
Multitache(1) // pour rafrachir laffichage
FIN
JAUGE_Horizontale = 0
JAUGE_Verticale = 0
JAUGE_Image = n
JAUGE_Blue = 0
JAUGE_LCD = 0
Type de champ : Champ Graphe
GAF WinDev.book Page 206 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 207 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les champs spcialiss
Sous lappellation "Champs spcialiss" nous avons regroup tous les champs dune utilisation
rare ou spcifique. Ces champs sont les suivants :
Calendrier
Agenda
Planning
Organigramme
TreeMap
Carrousel
Cube
Tiroir
Forme
Code-barres
Ascenseur
Range Slider
Potentiomtre
Spin
Notation
WebCam
Confrence
HTML
OLE
Bote outils
Barre d'outils
Ruban
ActiveX
Xaml
Nous allons tudier rapidement ces diffrents types de champs. Le projet "Fentres et champs"
contient un exemple pour chacun de ces types de champs. Nous vous conseillons de tester la
fentre associe au champ, dtudier le code prsent dans cette fentre et de consulter laide en
ligne pour obtenir plus de dtails sur lutilisation de ces champs.
Dans lexplorateur de projet du projet exemple, les fentres contenant ces champs sont regrou-
pes dans le perso-dossier "Champs spcialiss".
GAF WinDev.book Page 207 Jeudi, 5. juillet 2012 9:16 09
208 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Le champ Calendrier permet de crer un calendrier. Ce calendrier permet lutilisateur de slec-
tionner une date.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampCalendrier". Cette fentre prsente les diffrents modes dutili-
sation dun calendrier.
Rsum
Le champ Agenda permet dafficher et de manipuler des agendas automatiquement. Laffichage
seffectue la journe, la semaine ou au mois.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampAgenda". Cette fentre utilise un champ Agenda. Les diffrents
boutons prsentent quelques manipulations pouvant tre effectues sur un champ Agenda.
Rsum
Le champ Planning permet dafficher et de grer un planning. La diffrence principale entre un
champ planning et un champ Agenda est la suivante : un agenda concerne une ressource alors
quun planning concerne plusieurs ressources.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampPlanning". Cette fentre utilise un champ Planning. Ce planning
permet de grer les rendez-vous de plusieurs personnes. Testez cette fentre pour dcouvrir
les possibilits du champ Planning.
Type de champ : Calendrier
N
o
t
e
s
Par dfaut, si un champ de saisie de type date est prsent en excution, lutilisa-
teur pourra ouvrir un calendrier pour slectionner la date grce loption "Calen-
drier" du menu contextuel.
Lors de la description dun champ de saisie de type date, il est galement possi-
ble dafficher un bouton Calendrier. Ce bouton permet lutilisateur de slection-
ner la date voulue.
Type de champ : Agenda
Type de champ : Planning
GAF WinDev.book Page 208 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 209 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Le champ Organigramme permet dafficher automatiquement un organigramme, une hirarchie
dlments. Les donnes affiches peuvent provenir dune base de donnes.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampOrganigramme". Cette fentre utilise un champ Organigramme.
Testez cette fentre pour dcouvrir les possibilits du champ Organigramme. Le menu contex-
tuel du champ permet de crer une image, qui pourra tre imprime.
Rsum
Le champ TreeMap permet de visualiser graphiquement des donnes hirarchises. Il peut tre
par exemple utilis pour visualiser lespace disque occup par les fichiers dun rpertoire.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampTreeMap". Cette fentre prsente les donnes affiches dans
une table fichier avec rupture sous forme de TreeMap.
!
Lancez le test de cette fentre.
!
Cliquez sur les diffrents champs et les diffrents boutons et observez ce quil se passe.
!
Revenez sous lditeur et tudiez le code des boutons.
En dtail
Le champ TreeMap est gr par programmation. Les fonctions du WLangage qui permettent de
programmer un TreeMap commencent par TreeMapxxx.
Ces fonctions sont comparables aux fonctions de gestion des arbres. Par exemple, TreeMapA-
joute, TreeMapInfoXY, TreeMapOccurrence, ...
Nous ne dtaillerons pas les fonctions de manipulation des TreeMaps. Pour plus de dtails, con-
sultez laide en ligne (mot-cl : "TreeMap").
Rsum
Le champ Carrousel permet de crer des menus et des listes originales.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampCarrousel". Cette fentre utilise un champ Carrousel. Les diff-
rents boutons prsentent quelques manipulations pouvant tre effectues sur un champ Car-
rousel.
Type de champ : Organigramme
Type de champ : TreeMap
Type de champ : Carrousel
GAF WinDev.book Page 209 Jeudi, 5. juillet 2012 9:16 09
210 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Le champ Cube est un champ de dcor, mobile, qui effectue automatiquement des rotations sur
tous les axes. Ce champ peut par exemple tre prsent en petite taille dans un coin dune fentre.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampCube".
Attention : le champ Cube utilise le Framework DotNet 3.0. Le lancement de ce framework
peut tre trs lent.
Remarque : Cette fentre ne peut pas tre utilise avec une version infrieure Windows XP.
Rsum
Le champ tiroir peut tre dpli afin d'afficher ou non les champs qu'il contient. Ce type de
champs est souvent utilis pour proposer des menus originaux.
Exemple pratique
!
Ouvrez la fentre "FEN_ChampTiroir".
Rsum
Les formes permettent de dessiner des lments aux formes gomtriques (cercle, ellipse, rectan-
gle, carr, ligne ou flche). Un assistant de cration de champs forme permet de dfinir toutes les
caractristiques dun champ forme :
couleurs.
formes, dimensions, ...
Exemple pratique
!
Pour obtenir un aperu de ces champs, ouvrez et testez la fentre "FEN_ChampForme.wdw".
Rsum
Le champ Code-Barres permet dafficher simplement des codes-barres dans vos fentres.
Il est possible par exemple de lire le code-barres dun produit laide dun appareil spcialis,
dafficher le code-barres lcran et denregistrer sa valeur dans un fichier de donnes.
Type de champ : Cube
Type de champ : Tiroir
Type de champ : Forme
Type de champ : Champ Code-Barres
GAF WinDev.book Page 210 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 211 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite

Pour plus de dtails, consultez laide en ligne.
Rsum
Dans certains traitements particuliers, il peut tre intressant de crer des champs de type
"Ascenseur".
Le principe de gestion des ascenseurs est le suivant :
la valeur de la cage de l'ascenseur (le petit carr qui bouge !) est rcupre dans une variable.
une valeur peut tre affecte cette cage.
Pour dplacer l'ascenseur, lutilisateur peut cliquer sur un des boutons flchs ou dplacer direc-
tement la cage elle-mme. Lutilisateur peut mme cliquer entre la cage et les flches pour avoir
une avance rapide.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampAscenseur.wdw".
Les ascenseurs permettent de dplacer limage dans la fentre.
Par dfaut, lascenseur varie entre les valeurs 1 et 100. Chaque clic sur un des boutons fl-
chs dplace de 1 la cage et chaque clic entre la cage et le bouton dplace de 10.
Ces valeurs peuvent tre modifies dans la fentre de description de l'ascenseur ou en pro-
grammation grce aux proprits ..BorneMin, ..BorneMax et ..AvanceRapide.
Rsum
Le champ Range Slider permet de slectionner simplement un intervalle de donnes ou un zoom.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampRangeSlider.wdw".
Cette fentre permet de mieux comprendre lutilisation dun champ Range Slider :
le premier exemple permet de manipuler la cage du Range Slider et de voir les diffrentes
valeurs des proprits associes.
le second exemple permet dutiliser des champs Range Slider pour grer une zone de zoom
sur une image.
Nhsitez pas consulter le code des diffrents lments de cette fentre pour comprendre son
fonctionnement.
Pour plus de dtails, consultez laide en ligne.
N
o
t
e
s
Les codes-barres peuvent tre imprims soit depuis lditeur dtats, soit par pro-
grammation (fonction iImprimeCodeBarre).
Type de champ : Ascenseur
Type de champ : Range Slider
GAF WinDev.book Page 211 Jeudi, 5. juillet 2012 9:16 09
212 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Un champ Potentiomtre correspond un objet graphique circulaire ou linaire permettant de
faire varier une valeur. La valeur en cours du potentiomtre peut tre rcupre par programma-
tion dans une variable et tre ainsi exploite dans des calculs.
Exemple pratique
!
Pour affecter le champ potentiomtre avec une valeur, il suffit de faire une affectation, comme
pour un champ numrique.
!
Pour dfinir les bornes minimales et maximales dun potentiomtre, utilisez les proprits
..BorneMin et ..BorneMax :
Rsum
Un champ Spin permet de grer lincrmentation et la dcrmentation dune valeur. Un Spin est
constitu de 2 boutons colls.
Contrairement un bouton, si lon clique sur le champ Spin et que lon garde le bouton de la sou-
ris enfonc, lvnement de clic est rpt automatiquement.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampSpin.wdw".
Les spins permettent de :
incrmenter/dcrmenter une valeur.
dplacer limage dans la fentre.
Rsum
Un champ Notation permet :
lutilisateur de donnes une note.
lapplication dafficher une note.
La notation peut tre visualise grce des toiles ou toute autre image.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampNotation.wdw".
Type de champ : Potentiomtre
POT_Son = 75
POT_Son..BorneMin = 0
POT_Son..BorneMax = 100
Type de champ : Spin
Type de champ : Notation
GAF WinDev.book Page 212 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 213 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Un champ Web camra permet de visualiser une source vido provenant dune camra extrieure
relie lordinateur.
Exemple pratique
Les fonctions permettant de grer le champ Web camra commencent par VidoXXX :
Pour visualiser :
une image capture avec la fonction VidoCapture, utilisez un champ Image.
une squence vido capture avec la fonction VidoCapture, utilisez un champ ActiveX per-
mettant de lire une vido.
!
Pour afficher en direct la vido en provenance de la Web camra, utilisez la fonction VidoAffi-
che.
!
Pour comprendre le fonctionnement du champ Web camra, vous allez simplement charger
une fentre exemple et lexcuter.
!
Ouvrez et testez la fentre "FEN_ChampWebCamra.WDW".
Attention : Une Web Camra doit tre accessible depuis le poste en cours.
Pour plus de dtails sur les fonctionnalits des champs Web camra et la syntaxe des fonctions
voques ici, consultez laide en ligne (mot-cl : "WEB, Champ Web Camra").
Type de champ : Web camra
E
x
e
m
p
l
e
Lexemple "Webcam" (exemple complet) livr avec WinDev montre lutilisation
dun champ Web camra dans une fentre. Cet exemple est accessible depuis le
volet "Assistants, Exemples et Composants" de WinDev.
// Sauvegarde de la vido retransmise dans le champ Web Camra
// "CAM_WebCamera" sous forme d'un fichier AVI de 60 secondes
Res est un boolen = VidoCapture(CAM_WebCamera,...
"C:\Temp\MaVideo.AVI",...
viCaptureVido,60)
SI Res = Vrai ALORS
Info("Vido correctement sauvegarde")
SINON
Erreur("Impossible denregistrer la vido")
FIN
N
o
t
e
s
Seule la squence vido actuellement retransmise peut tre visualise dans un
champ Web camra.
GAF WinDev.book Page 213 Jeudi, 5. juillet 2012 9:16 09
214 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Un champ Confrence permet de visualiser et/ou d'couter de la vido et/ou du son en temps
rel.
Il est ainsi possible de faire communiquer deux utilisateurs entre eux. L'image et la voix des utilisa-
teurs sont retransmises en temps rel sur chaque poste connect.
En dtail
Les fonctions permettant de grer le champ Confrence commencent par FluxXXX.
Pour plus de dtails sur les fonctionnalits des champs Confrence, consultez laide en ligne (mot-
cl : "WEB, Champ Confrence").
Rsum
Un champ HTML permet dintgrer une page HTML dans une fentre WinDev.
Remarque : Le champ HTML permet uniquement dafficher une page HTML alors que le champ de
saisie HTML permet dafficher et de modifier du code HTML.
Exemple pratique
!
Pour comprendre le fonctionnement du champ HTML, ouvrez et testez la fentre
"FEN_ChampHTML.wdw".

Champ ActiveX
Rsum
Le champ ActiveX permet de grer simplement les contrles ActiveX. Les contrles ActiveX sont
des composants rutilisables utilisant la technologie ActiveX et pouvant tre intgrs dans une
fentre.
En dtail
Un ActiveX est associ des proprits et des mthodes. Ces proprits et mthodes peuvent
tre utilises en WLangage pour manipuler directement le champ ActiveX. Il suffit d'utiliser la syn-
taxe Automation du WLangage.
Type de champ : Confrence
E
x
e
m
p
l
e
Lexemple "VisioConfrence" (exemple complet) livr avec WinDev montre lutili-
sation dun champ Confrence. Cet exemple est accessible depuis le volet "Assis-
tants, Exemples et Composants" de WinDev.
Type de champ : HTML
Type de champ : OLE, ActiveX
GAF WinDev.book Page 214 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 215 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Par exemple :
Pour connatre les proprits et mthodes associes un ActiveX, vous pouvez :
soit consulter directement la documentation du contrle ActiveX.
soit utiliser l'utilitaire WDXVIEW livr avec WinDev.
Champ OLE
Rsum
Le Champ OLE permet de manipuler un objet OLE.
Rappel : OLE est un protocole d'change de donnes et de commandes dont le principe consiste
imbriquer et lier des objets. Ds que l'objet incorpor est ouvert, la connexion client/serveur est
ouverte.
Un objet OLE est un fichier qui contient :
la rfrence du Serveur OLE qui a cr l'objet.
l'objet lui-mme (image, document feuille ...).
En dtail
Plus techniquement, un objet OLE correspond des donnes encapsules contenant des don-
nes diverses telles que des textes, des images, des sons, ... L'encapsulation de donnes dans
des objets OLE permet d'incorporer ces objets sans avoir besoin de connatre leur structure.
WinDev est un client OLE. Les applications dveloppes avec WinDev demandent des donnes,
affichent et stockent les objets OLE.
Les serveurs OLE mettent disposition des objets aux clients qui en font la demande. Ce sont par
exemple Paint Brush, Excel, WinWord, ...
En tant que client, WinDev sait grer des objets OLE. Il permet de :
dessiner un objet dans un champ OLE. Un objet peut tre par exemple une feuille Excel, une
image de Paint Brush ...
diter un objet OLE dans un champ OLE. L'objet OLE peut tre :
- choisi sous l'diteur ou par programmation.
- dfini en fonction d'un serveur ou d'un fichier.
Remarques :
En programmation, un champ OLE est manipul par des fonctions spcifiques. Une application
WinDev ne peut pas tre serveur OLE.
OLE version 1 et OLE version 2 sont grs (les versions suprieures ne sont pas gres).
Un objet OLE ne peut pas tre imprim avec WinDev. La mise jour de l'objet s'effectue la
demande.
// AX_LecteurAVI est un champ ActiveX
AX_LecteurAVI>>Zoom = 12 // Affectation d'une proprit
AX_LecteurAVI>>Pause(10) // Appel de mthode
E
x
e
m
p
l
e
Les exemples "Pilotage dExcel", "Pilotage de Word", "Recherche sur Internet"
(exemples didactiques et complets), livrs avec WinDev utilisent un champ Acti-
veX. Ces exemples sont accessibles depuis le volet "Assistants, Exemples et
Composants" de WinDev.
GAF WinDev.book Page 215 Jeudi, 5. juillet 2012 9:16 09
216 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Un champ OLE ne peut contenir qu'un seul objet OLE.
Nous nallons pas dtailler le fonctionnement de ces deux types de champ.
Pour plus de dtails, consultez laide en ligne (mots-cls : "OLE", "Champ OLE", "ActiveX (champ)").
Rsum
Un champ Bote outils est constitu de plusieurs volets. Chaque volet peut contenir tous les
types de champs (y compris une autre bote outils).
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampBAO.wdw".
Rsum
Le champ Barre d'outils est un type de champ avanc, li une fentre. Une barre d'outils con-
tient plusieurs champs (bouton, champ de saisie, combo, ...) permettant l'utilisateur de lancer
rapidement certaines fonctionnalits de son application. Une barre d'outils peut tre :
Ancre : la barre d'outils est "colle" un des bords de la fentre.
Flottante : la barre d'outils est une fentre indpendante.
L'utilisateur peut changer la position de la barre d'outils en utilisant la souris.
En dtail
Pour associer des champs existants la barre d'outils :
Mthode 1 : Ralisez un "Drag and Drop" du champ vers la barre d'outils.
Mthode 2 : Dans la description de la barre doutils (onglet "Gnral"), cliquez sur le bouton
"Ajouter" et slectionnez le champ ajouter la barre d'outils. Appliquez les modifications, le
champ slectionn est automatiquement positionn dans la barre d'outils.
Pour associer des nouveaux champs la barre d'outils :
Mthode 1 : Ralisez un "Drag and Drop" du champ vers le champ "Barre d'outils".
Mthode 2 : Dans la description de la barre doutils (onglet "Gnral"), cliquez sur le bouton
"Crer" et slectionnez le type de champ ajouter la barre d'outils. Le champ slectionn est
automatiquement cr dans la barre d'outils. Pour le modifier, utilisez le bouton "Editer" : la
description du nouveau champ apparat.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampBarreOutils". Cette fentre utilise deux barres doutils :
une barre doutils ancre et une barre doutils flottante.
Remarque : L'espace entre les champs de la barre d'outils peut tre configur dans l'cran
"Dtail" de la description de la barre d'outils.
Type de champ : Bote outils
Type de champ : Barre doutils
GAF WinDev.book Page 216 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 217 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Rsum
Le champ Ruban permet dafficher des menus de manire originale. Il permet de prsenter dans
une petite surface de lcran un grand nombre de champs rangs avec logique afin deffectuer
des choix.
Un champ ruban est constitu de plusieurs volets permettant de regrouper les champs.
Exemple pratique
!
Ouvrez et testez la fentre "FEN_ChampRuban". Agrandissez et rduisez la fentre pour voir
les diffrentes options du ruban.
Rsum
Le champ Xaml permet de grer simplement le langage Xaml.
Pour utiliser ce champ, nous vous conseillons fortement de vous reporter la documentation de
Microsoft.
Type de champ : Ruban
Type de champ : Xaml
GAF WinDev.book Page 217 Jeudi, 5. juillet 2012 9:16 09
218 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 3.4. ERGONOMIE DE LAPPLICA-
TION
Ce que vous allez apprendre dans cette leon ...
Amliorer lergonomie des champs et des fentres
Amliorer lergonomie des applications
Dure estime : 20 mn
GAF WinDev.book Page 218 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 219 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Amliorer lergonomie des champs et des fentres
WinDev propose de nombreux outils pour amliorer lergonomie de vos fentres et de vos champs.
Nous vous prsentons ici quelques solutions simples pour amliorer efficacement lutilisabilit de
vos fentres.
Style/gabarit
Chaque projet WinDev est associ une feuille de styles. La feuille de styles permet de dfinir les
caractristiques de chaque type de champ du projet.
Pour simplifier lutilisation des styles, WinDev est livr avec de nombreux gabarits. Les gabarits uti-
lisent une feuille de styles spcifique, contenant la description de linterface de tous les types de
champs pouvant tre utiliss.
Lors de la cration du projet, il est possible de dfinir la charte graphique du projet. Cette charte
graphique correspond au gabarit qui sera utilis. A tout moment, il est possible de modifier la
charte graphique utilise :
soit directement dans les options du projet (option "Projet .. Description du projet", onglet
"Style"). Le changement est alors effectu pour toutes les fentres du projet.
N
o
t
e
s
Lors de la modification du style dun champ (onglet "Style"), WinDev propose de
surcharger les proprits du style en cours avec les options modifies : cest le
mcanisme de surcharge des styles. Pour plus de dtails, consultez laide en
ligne.
GAF WinDev.book Page 219 Jeudi, 5. juillet 2012 9:16 09
220 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
soit directement depuis lditeur de fentres (option "Fentres .. Appliquer un gabarit"). Le chan-
gement est alors effectu pour la fentre en cours.
Redimensionnement des fentres
Les fentres des applications WinDev peuvent tre redimensionnes. Dans ce cas, lutilisateur
pourra utiliser la poigne de redimensionnement pour modifier la taille de la fentre. La poigne
de redimensionnement est place en bas de la fentre.
Pour permettre le redimensionnement dune fentre, il suffit de slectionner loption "Redimen-
sionnable" dans longlet "IHM" de la description de la fentre.
Lors du redimensionnement de la fentre, les champs de la fentre doivent suivre le redimension-
nement de la fentre. Cette fonctionnalit sappelle lancrage des champs. Cest ce que nous
allons tudier maintenant.
Il est conseill de rendre les fentres redimensionnables uniquement si les fentres contiennent
des champs qui peuvent sagrandir : table, liste, image, bote outils, zone rpte, sparateur,
onglet, arbre, liste image, HTML, ...
Ancrage
Lancrage permet de lier la taille et/ou la position des champs la taille de la fentre. Si lutilisa-
teur de lapplication a la possibilit de modifier la taille (largeur et hauteur) de la fentre, vous
pourrez lier certains champs de la fentre ce redimensionnement.
Le champ pourra :
se dplacer
sagrandir
rester tel quel
Lancrage peut tre mis en place en faisant un clic droit sur un champ et en slectionnant
"Ancrage" dans le menu contextuel :
N
o
t
e
s
WinDev permet de crer vos propres gabarits. Vous pouvez ainsi dfinir entire-
ment la charte graphique de votre application. Pour plus de dtails, consultez
laide en ligne.
GAF WinDev.book Page 220 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 221 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lancrage est symbolis par des flches rouges sur les cts du champ :
Remarque : Si votre fentre est redimensionnable et si vos champs ne sont pas ancrs, une AAD
apparat automatiquement aprs analyse de votre fentre (une dizaine de secondes est nces-
saire) pour vous signaler le problme et vous aider ancrer les champs.
Tabulation/ordre de saisie
Lordre de saisie des champs est lordre dans lequel lutilisateur pourra saisir 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 tre modifi :
soit en donnant un ordre de saisie automatique : le premier champ en saisie 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.
!
Pour dfinir un ordre de navigation automatique, slectionnez l'option "Fentres .. Ordre de
navigation .. Dfinir en automatique".
!
Pour diter lordre de saisie des champs, slectionnez loption "Fentres .. Ordre de
navigation .. Editer".
La fentre qui saffiche prsente lordre de navigation utilis dans la fentre en cours. Il est
possible de voir galement lordre de navigation utilis pour les champs dun plan spcifique
ou de rechercher le nom dun champ (pour les fentres comprenant beaucoup de champs).
N
o
t
e
s
Il ne faut pas mettre systmatiquement lancrage sur tous les champs dune
fentre. Il faut choisir judicieusement les champs et les fentres sur lesquels
lancrage est utile.
Par exemple, dans une fentre contenant un champ Table, il peut tre intres-
sant de lier le redimensionnement de la table lorsque la fentre sagrandit.
Autre cas, une image contenant une photo pourra aussi tre redimensionne si
la fentre est agrandie.
Par contre, on vitera de redimensionner des champs de saisie, les boutons, les
slecteurs ou les interrupteurs.
GAF WinDev.book Page 221 Jeudi, 5. juillet 2012 9:16 09
222 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Par exemple :
!
Pour dfinir un ordre de saisie par slection :
1. Slectionnez les champs dans l'ordre de saisie que vous souhaitez tout en maintenant la
touche [CTRL] enfonce.
2. Slectionnez l'option "Fentres .. Ordre de navigation .. Dfinir par la slection".
Pour connatre lordre de saisie des champs de votre fentre, pas besoin de tester votre fentre : il
suffit dutiliser la touche [F5].
Rgles/Correcteur dinterface/Alignement
Un aspect important de linterface dune application rside dans laspect de linterface. Un point
important est lharmonie des diffrents champs, leur alignement dans la fentre.
Pour vous aider raliser des interfaces respectant les normes de programmation, WinDev met
votre disposition plusieurs outils : grille, rgles, options dalignement, positionnement
automatique, ... Voici quelques pistes pour choisir loutil qui vous convient le mieux.
Vous avez sans doute remarqu, lors de la cration de nos fentres dans les leons prcdentes,
des traits en pointills apparaissant lors du dplacement de vos champs dans la fentre. Cest le
positionnement automatique. Ces "rgles" vous aident positionner en temps rel vos champs.
Vous pouvez tout de suite voir si le champ est align avec le champ prcdent.
Pour paramtrer le positionnement automatique, il suffit de slectionner loption "Affichage ..
Options .. Modifier les options" et de slectionner longlet "Magntisme".
Mais il se peut que vous vouliez aligner certains champs de votre fentre aprs les avoir crs
(aprs leur dplacement par exemple). Vous pouvez utiliser les options dalignement. Ces options
sont toutes regroupes dans une barre doutils. Pour lafficher, slectionnez loption "Affichage ..
Barres doutils .. Alignement".
N
o
t
e
s
Pour dplacer vos champs sans utiliser le magntisme ou les rgles, maintenez
la touche [SHIFT] enfonce pendant le dplacement.
GAF WinDev.book Page 222 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 223 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour utiliser les fonctionnalits de cette barre doutils, il suffit de slectionner plusieurs champs (
laide du lasso de la souris ou bien avec la touche CTRL) et de choisir un des alignements prdfi-
nis. Le champ pris pour base pour effectuer lalignement est le premier champ slectionn.
Si aucun des alignements prdfinis ne vous convient, vous pouvez toujours effectuer un aligne-
ment entirement personnalis : licne de la barre doutils permet de paramtrer toutes les
options.
Si vous souhaitez positionner vos champs au pixel prs, vous pouvez galement utiliser les rgles.
Les rgles sont affichables par les touches [CTRL] + [R].
Et enfin, si vos interfaces doivent respecter toutes les options dfinies pour les interfaces Win-
dows (taille des champs, ...), vous pouvez utiliser le correcteur dinterface (icne de la barre
dalignement). Ce correcteur tudie votre interface et vous propose toutes les modifications
ncessaires. Son utilisation est avance et est trs rare.
Plan/Onglet
Votre fentre contient un nombre de champs important ? Pourquoi ne pas utiliser les plans ou les
onglets pour regrouper les informations.
Les onglets
Les onglets permettent de regrouper les informations par thmes. Lutilisateur peut accder direc-
tement un thme en cliquant sur "le volet" voulu.
Les onglets ressemblent quelque chose de connu ? En effet, cest le systme utilis dans toutes
les fentres de description disponibles dans WinDev.
Le principe de fonctionnement des onglets est trs simple. Il faut :
1. Crer le champ onglet (icne ).
2. Crer autant de volets que ncessaire et donner un libell chaque volet (onglet "Gnral"
de la description du champ).
3. Associer les champs sur les onglets voulus. Un champ peut tre commun tous les onglets
ou associ un onglet spcifique.
!
Pour associer le champ un onglet, deux solutions :
1. En dplaant le champ :
Cliquez sur longlet souhait pour rendre un des volets actifs.
Cliquez sur le champ associer et dplacez-le vers le volet actif.
Le champ est alors directement associ longlet et au volet donglet.
2. En utilisant le menu contextuel :
Dplacez si ncessaire le champ associer sur votre onglet.
Cliquez avec le bouton droit de la souris sur le champ associer et choisissez loption
"Associer un onglet..." du menu contextuel.
Slectionnez longlet et le volet donglet souhait et validez.
Le champ est automatiquement associ longlet et au volet donglet spcifi.
Un champ ne peut tre associ qu un seul volet donglet. Le champ sera actif et visible lorsque
N
o
t
e
s
WinDev permet de visualiser directement leffet de loption dalignement sans
lappliquer. Il suffit pour cela de slectionner les champs aligner puis de survo-
ler licne dalignement voulu. Pour appliquer loption, il suffit de cliquer sur
licne dalignement.
GAF WinDev.book Page 223 Jeudi, 5. juillet 2012 9:16 09
224 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
le volet donglet sera activ.
Votre onglet est prt fonctionner, aucune programmation spcifique nest ncessaire.
Les plans
Les plans permettent galement de regrouper les champs, tout en vitant la multiplication des
fentres. Mais avec les plans, ce nest plus lutilisateur qui dcide dafficher les champs, cest le
dveloppeur.
Les plans sont souvent utiliss dans les fentres de type "Assistant". Des boutons "Suivant" et
"Prcdent" permettent de passer dun plan un autre.
Les plans sont trs faciles manipuler sous lditeur de fentres de WinDev. En effet, lorsque
vous souhaitez dcrire un nouvel cran sans changer de fentre, utilisez la touche [Page Suivante]
pour passer au plan suivant et la touche [PagePrcdente] pour passer au plan prcdent. Par
dfaut, le premier plan dune fentre est nomm "Plan 0". Chaque plan suivant est numrot :
"Plan 1", "Plan 2", ...
Pour changer de plan par programmation, il suffit dutiliser la proprit ..Plan. Par exemple :
Sparateur
Le sparateur est un champ permettant de dcouper une fentre en plusieurs zones. Ces zones
sont redimensionnables par lutilisateur final. Le dcoupage peut tre horizontal, vertical ou une
combinaison des deux.
E
x
e
m
p
l
e
Lexemple "Assistant" (exemple didactique) livr avec WinDev montre lutilisation
des plans dans une fentre. Cet exemple est accessible depuis le volet "Assis-
tants, Exemples et Composants" de WinDev.
N
o
t
e
s
Pour simplifier la manipulation des plans sous lditeur de fentres, le numro
du plan en cours est affich sous lditeur de fentres (dans la fentre daccueil
et dans la barre de message de lditeur).
// Code de clic du bouton PRECEDENT
MaFentre..Plan = MaFentre..Plan - 1
// Code de clic du bouton SUIVANT
MaFentre..Plan = MaFentre..Plan + 1
N
o
t
e
s
MaFentre est un mot-cl qui retourne le nom de la fentre qui contient le traite-
ment o est excut MaFentre. Il peut tre utilis dans les traitements des
champs de la fentre, les traitements de la fentre et galement dans les proc-
dures locales de la fentre.
N
o
t
e
s
La mise en place de sparateurs dans une fentre ncessite la mise en place de
la gestion des ancrages : la dimension des champs doit sadapter dans les diff-
rentes zones de la fentre.
GAF WinDev.book Page 224 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 225 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Grce aux sparateurs, lutilisateur peut ainsi personnaliser son environnement de travail selon
ses besoins.
Animation de fentres
Pour doter vos applications d'un ct ludique, ou tonner favorablement un utilisateur au lance-
ment, les fentres peuvent tre animes leur ouverture et/ou leur fermeture : une fentre
peut souvrir en tournant, en venant du fond de l'cran, (un peu comme des effets de montage
vido).
Leffet peut tre fix ou alatoire.
Cette fonctionnalit peut tre dfinie dans les options du projet, dans la description de la fentre
ou par programmation.
Si une fentre charge de nombreux lments, une "animation" (qui seffectue indpendamment
des traitements en cours) permet lutilisateur de patienter sans sen rendre compte!
Cette fonctionnalit est utiliser avec parcimonie, pour ne pas agacer l'utilisateur. Vous pouvez
par exemple la rserver la premire fentre de l'application ou demander de nafficher qu'une
fentre sur 20 avec un effet visuel.
Il est possible danimer :
soit toutes les fentres de lapplication (option "Projet .. Description du projet", onglet
"Avanc", bouton "Animations de fentre"),
soit uniquement la premire fentre de lapplication (option "Projet .. Description du pro-
jet", onglet "Avanc", bouton "Animations des fentres"),
soit une ou plusieurs fentres donnes (onglet "Dtail" de la description de chaque fen-
tre).
Grisage automatique des fentres
Votre application ouvre plusieurs fentres simultanment et vos utilisateurs ne savent plus quelle
fentre est celle utiliser ? L o les fentres inactives peuvent se griser automatiquement. Ainsi,
vous devinez instinctivement la fentre utiliser. Cette fonctionnalit s'appelle GFI pour Grisage
des Fentres Inaccessibles.
Cette fonctionnalit est activable dans la description du projet (option "Projet .. Description du pro-
jet", onglet "Avanc").
Totaux dans les tables
Vous utilisez des tables mmoire ou fichier dans vos applications ? Vous voulez afficher un total
mais vous vous demandez comment faire ? Faut-il parcourir le fichier de donnes li la table ?
Faire une requte ?
Il y a une solution beaucoup plus simple : utiliser les calculs automatiques des colonnes : somme,
comptage ou moyenne. Il suffit de :
1. Slectionner la position daffichage du calcul (onglet "Gnral" de la description de la
table) :
GAF WinDev.book Page 225 Jeudi, 5. juillet 2012 9:16 09
226 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Slectionner la colonne sur laquelle le calcul portera.
3. Dans longlet "Dtail" de cette colonne, cocher le calcul souhait.
Images des champs paramtrables dans le style
WinDev offre la possibilit de personnaliser linterface de vos champs sans pour autant refaire
entirement la feuille de style ou le gabarit de lapplication. Comment ? Cest trs simple, il suffit
de prciser les images utiliser dans le style du champ.
Par exemple, dans longlet "Style" dune table, il est possible de paramtrer limage de fond de la
ligne slectionne :
Transparence des champs, transparence des fentres
Pour obtenir des effets sur vos champs et sur vos fentres, vous pouvez jouer sur la transparence.
Il est par exemple possible dutiliser la transparence pour afficher une fentre dalerte ou daver-
tissement "par-dessus" une fentre sans perturber lutilisation en cours.
La dfinition de la transparence se fait :
sous lditeur pour les fentres (option "Opacit" de longlet "Style" de la description de la fen-
tre) et pour les champs (option "Opacit" de longlet "IHM" de la description du champ)
par programmation pour les fentres et les champs grce la proprit ..Opacit.
Sauvegarde de la position dans les colonnes dans les tables
Une autre option qui sera vivement apprcie de vos utilisateurs, sans dveloppement
particulier : la mmorisation automatique de la configuration des colonnes de table. En effet, quel
confort de retrouver chaque lancement de lapplication, la dernire configuration effectue pour
les colonnes : position, largeur des colonnes, ...
Aucune programmation nest ncessaire : il suffit de cocher loption "Mmoriser la config des
colonnes" dans longlet "Dtail" de la fentre de description de la table.
N
o
t
e
s
Lutilisateur a galement la possibilit dajouter un calcul automatique sur la
table grce au menu contextuel automatique de la table.
GAF WinDev.book Page 226 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 227 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ergonomie de lapplication
Nous venons de voir comment amliorer lergonomie de vos champs et de vos fentres. Mais il
faut galement tenir compte de lergonomie gnrale de lapplication. En effet, des lments
comme le menu, le mode douverture des fentres de lapplication sont des lments importants
intervenants dans lapprciation de lutilisateur final dans lapplication. Nous avons dj vu la
cration dun menu, nous allons voir en dtail, les modes de gestion du multi-fentrage.
WinDev propose plusieurs modes dutilisation du multi-fentrage :
utilisation dune interface MDI
multi-fentrage partir de fentres libres.
Nous allons voir immdiatement un exemple de chacun de ces modes de gestion.
Exemple de programme grant le multi fentrage de fentres libres (non MDI)
Pour illustrer les diffrents modes d'ouverture, nous allons travailler avec le projet "MULTIFEN".
!
Ouvrez ce projet en slectionnant loption de menu "? .. Guide dauto-formation .. Gestion du
multi-fentrage".
Lancez le test de ce projet par le bouton GO ( ).
Cet exemple est volontairement simple : il ne fait quouvrir et fermer des fentres. Il ne gre
pas de saisie ni de fentre MDI. Il a pour but dillustrer les diffrents modes d'ouverture des
fentres libres.
!
La premire fentre contient un bouton "Catalogue". Ce bouton ouvre une fentre en ouver-
ture modale.
!
Cliquez sur ce bouton.
Remarquez que vous ne pouvez pas cliquer en dehors de la fentre fille (le catalogue) et que
la fentre mre d'introduction ne peut pas tre en saisie tant que la fentre fille est ouverte.
GAF WinDev.book Page 227 Jeudi, 5. juillet 2012 9:16 09
228 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Cliquez sur une des images de polo, la fiche du polo (fentre fille du catalogue) s'affiche.
Remarquez que la fentre du catalogue (fentre mre) reste en saisie.
!
Cliquez sur la fentre fiche pour qu'elle passe en saisie.
Vous pouvez ouvrir en parallle toutes les fiches en cliquant dans le catalogue sur chaque
polo.
!
Depuis une fiche de polo, vous pouvez galement ouvrir une autre fiche (fentre sur) en
slectionnant le polo dans la combo et en cliquant sur le bouton "Voir".
!
Si vous cliquez sur le bouton "Fermer" d'une fiche d'un polo, seule la fiche se ferme.
Par contre si vous cliquez sur le bouton "Fermer" du catalogue, toutes les fiches se ferment en
mme temps que la fentre du catalogue.
En effet, la fermeture de la fentre mre ferme toutes ses fentres filles.
GAF WinDev.book Page 228 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 229 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dtail des traitements
!
Terminez le test de lapplication et revenez sous lditeur.
!
Ouvrez la fentre "FEN_Multi1.WDW". Les traitements associs chaque champ image sont
les suivants :
La fentre fiche du polo est affiche par la fonction OuvreFille. De cette faon, plusieurs fiches
pourront tre ouvertes en parallle.
Pour que la fentre d'un polo ne soit pas ouverte plusieurs fois, la fentre n'est ouverte que si elle
est inexistante. La fonction FenEtat permet de vrifier si une fentre est dj ouverte ou non.
La fentre fiche du polo qui a pour nom "FEN_Multi2" peut tre ouverte plusieurs fois. Il faut alors
pouvoir distinguer chaque fentre ouverte. Pour cela il suffit d'utiliser un alias.
Qu'est ce qu'un alias?
Un alias permet de diffrencier la mme fentre ouverte plusieurs fois.
L'alias est donn lors de l'ouverture de la fentre avec la fonction OuvreFille ou OuvreSoeur.
Dans la fentre fiche d'un polo, le traitement du bouton permettant d'ouvrir une autre fiche est le
suivant :
La fentre fiche du polo est affiche par la fonction OuvreSoeur. De cette faon, plusieurs fiches
pourront tre ouvertes en parallle.
-- Initialisation de IMG_CLICAGE1
MoiMme = "polo1.png"
-- Clic sur IMG_CLICAGE1
NomImage est une chane
NomImage = MoiMme
NomFentre est une chane = "IMG_CLICAGE1"
SI FenEtat(NomFentre) = Inexistant ALORS
OuvreFille("IMG_CLICAGE1" + "=FEN_Multi2,0,0", NomImage)
FIN
// Ouvre la fentre des polos slectionns dans la combo
// aprs avoir vrifi qu'elle n'est pas dj ouverte
// Rcupre le polo slectionn
Indice = ListeSelect(COMBO_Polo)
NomImage = Minuscule(COMBO_Polo[COMBO_Polo]) + ".PNG"
// polo slectionn
SI FenEtat(NomImage) = Inexistant ALORS
OuvreSoeur(NomImage+ ...
"=FEN_Multi2,"+(50*Indice)+","+(50*Indice),NomImage)
FIN
GAF WinDev.book Page 229 Jeudi, 5. juillet 2012 9:16 09
230 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple de programme grant des fentres MDI
Pour illustrer la gestion des fentres MDI, nous allons travailler avec le projet "MDI.WDP".
!
Ouvrez ce projet en slectionnant loption de menu "? .. Guide dauto-formation .. Gestion des
fentres MDI".
Lancez le test de ce projet par le bouton GO ( ).
La premire fentre est une mre MDI (elle a pour nom "FEN_MDICatalogue").
Elle contient une zone barre d'icnes.
La zone barre d'icnes contient :
7 boutons
1 champ de saisie
6 zones de clicage
Chaque zone de clicage permet d'ouvrir une fentre fille.
Par exemple, pour la premire zone de clicage, on trouvera dans le code de clic :
NomImage est une chane
NomImage=MoiMme
NomFentre = "IMG_CLICAGE1"
SI FenEtat(NomFentre) = Inexistant ALORS
MDIOuvre(FEN_MDIPolo,"IMG_CLICAGE1","Polo1",NomImage)
FIN
GAF WinDev.book Page 230 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 231 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les filles sont des filles MDI, elles s'affichent dans la fentre mre.
Les icnes permettent (de gauche droite) :
Douvrir toutes les filles (les filles sont alors empiles)
De fermer toutes les filles ouvertes :
Dafficher les filles ouvertes en mosaque :
Dafficher les filles ouvertes en cascade :
De rduire en icne toutes les filles ouvertes :
De restaurer toutes les filles iconises :
Daligner les icnes dans la fentre mre :
MDIMenuFentre(mdiFermeTout)
MDIMenuFentre(mdiMosaique)
MDIMenuFentre(mdiCascade)
MDIMenuFentre(mdiIconiseTout)
MDIMenuFentre(mdiRestaureTout)
MDIMenuFentre(mdiArrange)
GAF WinDev.book Page 231 Jeudi, 5. juillet 2012 9:16 09
232 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Affichage en mosaque :
Affichage en cascade :
GAF WinDev.book Page 232 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 233 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le champ "en cours" indique quelle est la fille active. La fille active est la fille qui se trouve en pre-
mier plan, celle dont laltitude est la plus leve par rapport aux autres fentres.
La fonction MDIActive retourne le nom de la fentre fille en avant-plan.
Dans notre exemple, une procdure appele par "timer" affiche le nom de la fentre fille active.
L'utilisation des timers est explique dans la leon Timer, page 380.
La fonction MDIMre permet de connatre le nom de la mre MDI.
GAF WinDev.book Page 233 Jeudi, 5. juillet 2012 9:16 09
234 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 3.5. RUTILISABILIT
Ce que vous allez apprendre dans cette leon ...
Rutiliser les lments dun projet
Dure estime : 10 mn
GAF WinDev.book Page 234 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 235 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quest-ce que la rutilisabilit?
Vous avez cr un slecteur de rpertoire que vous aimeriez rutiliser dans tous vos projets? Vous
souhaitez utiliser toujours les mmes boutons "Fermer" placs au mme endroit dans vos
applications?
WinDev vous offre diffrents moyens de grer la rutilisabilit des fonctionnalits que vous crez.
Rutiliser un ensemble de champs
Vous voulez rutiliser un ensemble de champs? WinDev met votre disposition les outils
suivants :
Superchamps
Modle de champs
Fentres internes
Nous allons voir ces trois outils en dtail, avec un tableau rcapitulatif pour chaque outil pour
vous aider choisir loutil le mieux adapt vos souhaits.
Pour chaque outil, le projet "Fentres et champs" contient une fentre permettant de visualiser et
de tester la fonctionnalit dcrite.
Le superchamp
Le superchamp est un type de champ avanc. Un superchamp regroupe un ensemble de champs
dans un but spcifique (par exemple slecteur de dates, slecteur de fichiers, ...). Le superchamp
contient :
les champs ncessaires
le code ncessaire son fonctionnement.
Tableau rcapitulatif
Cration Cration dun superchamp :
1. Crer le superchamp (icne ).
2. Mettre les champs dans le superchamp.
Refactoring : Slectionner les champs et faire "Champ .. Refactoring .. Crer
un superchamp avec la slection".
Rutilisabilit Via le dictionnaire
Mise jour Via le dictionnaire (grce au systme dabonnement)
Travail en
groupe
Partage du dictionnaire par rseau.
Gestionnaire de sources non disponible.
GAF WinDev.book Page 235 Jeudi, 5. juillet 2012 9:16 09
236 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
Pour tester lutilisation des superchamps, nous allons utiliser le projet "Fentres et champs". Pour
cela :
1. Slectionnez loption de menu "? .. Guide dautoformation .. Fentres et champs". Le projet
"Fentre et champs" souvre sous lditeur.
2. Sous lexplorateur de projet, ouvrez la fentre "FEN_ChampSuperChamp" (prsente dans le
perso-dossier "Autres champs"). Cette fentre utilise un superchamp permettant de slection-
ner un fichier.
3. Testez la fentre.
Fentre interne
Le champ Fentre interne permet dinclure une fentre (et son code) dans une autre fentre.
A lexcution, la fentre fusionner sera dynamiquement fusionne la fentre de rception.
Une fentre interne est une fentre spcifique (pas de barre de titre, pas de menu, ...). Dans cette
fentre, vous pouvez mettre tout type de champs. Une fentre interne est un fichier dextension
"WDW".
Le champ "Fentre interne" permet de partager dynamiquement une mme partie dinterface au
sein dune ou de plusieurs applications.
Tableau rcapitulatif
Exemple dutilisation : fentre dont linterface ne va pas changer quel que soit le projet : Fentre
doptions.
Cration Cration dune fentre interne :
1. Crer la fentre interne (option "Fichier .. Nouveau .. Fentre .. Fentre
interne")
2. Dfinir les champs et le code.
3. Enregistrer.
Refactoring : Slectionner les champs et faire "Champ .. Refactoring .. Crer
une fentre interne avec la slection".
Rutilisabilit Via le champ "fentre interne".
Mise jour Via le dictionnaire (grce au systme dabonnement) ou via le GDS.
Travail en
groupe
Partage par le rseau ou par le GDS
Avantages Possibilit de modifier dynamiquement (par programmation) la fentre
interne utilise dans le champ Fentre interne.
Inconvnients - Pas amliorable dans linterface daccueil : pas de surcharge, pas de
dplacement de champs.
- Zone rectangulaire.
GAF WinDev.book Page 236 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 237 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
Pour tester lutilisation des fentres internes, nous allons utiliser le projet "Fentres et champs".
Pour cela :
1. Slectionnez loption de menu "? .. Guide dautoformation .. Fentres et champs". Le projet
"Fentre et champs" souvre sous lditeur.
2. Sous lexplorateur de projet, ouvrez la fentre "FEN_ChampFenetreInterne" (prsente dans
le perso-dossier "Autres champs"). Cette fentre utilise plusieurs fentres internes pour visuali-
ser les adresses.
3. Testez la fentre.
Modle de champs
Un modle de champs est un ensemble de champs, rutilisables dans plusieurs fentres. 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".
Tableau rcapitulatif
Dans la majorit des cas, il est conseill dutiliser un modle de champs.
Cration Cration dun modle de champs :
1. Crer le modle de champ (option "Fichier .. Nouveau .. Fentre .. Modle
de champs")
2. Dfinir les champs et le code.
3. Enregistrer.
Refactoring : Slectionner les champs et faire "Champ .. Refactoring .. Crer
un modle de champs avec la slection".
Rutilisabilit Via le champ "Modle de champs".
Mise jour Via le dictionnaire (grce au systme dabonnement) ou via le GDS.
Travail en
groupe
Partage par le rseau ou par le GDS
Avantages 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 tre modifis.
GAF WinDev.book Page 237 Jeudi, 5. juillet 2012 9:16 09
238 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple pratique
Pour voir lintrt des modles de champs, nous allons utiliser le projet "Fentres et champs".
Pour cela :
1. Slectionnez loption de menu "? .. Guide dautoformation .. Fentres et champs". Le projet
"Fentre et champs" souvre sous lditeur.
2. Sous lexplorateur de projet, ouvrez la fentre "FEN_ModeleChamps" (prsente dans le
perso-dossier "Autres champs"). Cette fentre utilise un modle de champs permettant de sai-
sir une priode. Deux modes dutilisation du modle de champs sont disponibles :
modle de champs sans surcharge. Le modle de champs est utilis tel quel.
modle de champs avec surcharge. Des carrs bleus permettent didentifier les champs sur-
chargs.
Loption "Fentres .. Liste des champs surchargs" permet de visualiser les diffrents champs
surchargs et les proprits de ces champs qui ont t surcharges.
3. Testez la fentre.
GAF WinDev.book Page 238 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 239 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 3.6. QUESTIONS/RPONSES
Ce que vous allez apprendre dans cette leon ...
Astuces sur la manipulation de champs
Dure estime : 10 mn
GAF WinDev.book Page 239 Jeudi, 5. juillet 2012 9:16 09
240 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le "clonage humain" nest pas encore en vogue, mais avec WinDev, il est dj possible de cloner
les champs. La fonction ChampClone permet de dupliquer par programmation un champ dans
une fentre ou un tat.
Le champ est dupliqu avec les mmes caractristiques mais avec un nom diffrent.
La fonction ChampSupprime permet de supprimer par programmation un champ dans une fen-
tre ou un tat.
Les plans d'une fentre permettent de rpartir des champs dans diffrentes "couches" afin d'vi-
ter les crans trop chargs ou la multiplication des fentres dans un projet.
Pour associer un champ un plan :
1. Faites un clic droit sur le champ.
2. Slectionnez l'option "Associer un plan".
3. Choisissez le numro du plan auquel le champ doit tre associ.
Pour passer d'un plan l'autre dans l'diteur, utilisez les touches [Page Suivante] et [Page Prc-
dente] du clavier. Le numro du plan en cours est affich :
dans la barre de message de lditeur (en bas gauche).
dans la fentre daccueil de la fentre en cours (en haut droite).
Seuls les champs du plan en cours et les champs n'appartenant aucun plan sont visibles en di-
tion et en excution.
Vous pouvez galement utiliser la proprit ..Plan pour :
connatre et changer le plan actif dune fentre.
connatre et changer le plan associ un champ.
Le volet "Mode Plan" (option "Affichage .. Barres doutils .. Volets .. Autres volets .. Mode plan") per-
met dditer lensemble des libells des champs de tous les plans dune fentre pour les visuali-
ser et ventuellement les modifier simultanment.
Question
Comment dupliquer un champ dans une fentre par programmation ?
Question
Comment supprimer un champ dans une fentre par programmation?
Question
Comment grer les plans dune fentre?
A
s
t
u
c
e
Pour viter de dupliquer un mme champ dans une fentre, vous pouvez asso-
cier le champ "aucun plan". Le champ est alors visible dans tous les plans.
GAF WinDev.book Page 240 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 241 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Un onglet est une sorte de bouton constitu de plusieurs zones clicables nommes "Volets".
Pour grer et dterminer sur quel volet un clic est ralis, utilisez la syntaxe suivante dans le code
de clic de longlet :
Pour afficher la progression d'un traitement, on utilise le plus souvent une jauge.
Pour cela, utilisez un champ Jauge dans une fentre (option "Insertion .. Champ .. Jauge").
Dans le code dinitialisation du champ Jauge :
1. Initialisez la valeur minimale de la jauge :
2. Initialisez la valeur maximale de la jauge :
Dans le code du traitement voulu, incrmentez la jauge chaque tape du traitement :
Avec WinDev, vous pouvez facilement insrer une liaison Internet dans vos applications. Pour
cela :
1. Insrez un champ HTML dans une fentre (option "Insertion .. Champ .. Champ HTML").
2. Initialisez le champ HTML avec l'adresse du site auquel vous souhaitez vous connecter :
Bien videmment, votre poste (ainsi que le poste de lutilisateur final) doit avoir une connexion
Internet active.
Question
Comment grer le clic sur un volet dun onglet?
SELON NomChampOnglet
CAS 1 // premier volet
//...Traitement effectuer...
CAS 2 // deuxime volet
//...Traitement effectuer...
AUTRES CAS
//...Autres traitements effectuer...
FIN
Question
Comment afficher la progression dun traitement ?
NomJauge..BorneMin = ValeurMini
NomJauge..BorneMax = ValeurMaxi
NomJauge ++
// ou NomJauge = NomJauge + 1
Question
Comment afficher un site Internet dans une fentre?
NomChampHTML = "http://www.pcsoft.fr"
GAF WinDev.book Page 241 Jeudi, 5. juillet 2012 9:16 09
242 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La couleur dun champ se dfinit dans le style du champ (option "Champ .. Choisir un style").
Cependant, il est possible de modifier la couleur de ce champ par programmation. La syntaxe est
la suivante :
La fonction RVB permet de dfinir une couleur partir des diffrentes valeurs des composantes
Rouge, Vert et Bleu.
Il est galement possible de modifier les couleurs des lignes, des colonnes ou dune cellule d'un
champ Table. La syntaxe est la suivante :
Un bouton peut tre rendu invisible par programmation avec la syntaxe suivante :
Donnez la valeur "Vrai" pour rendre le champ nouveau visible.
Cette syntaxe peut galement tre applique sur tous les types de champs et sur les groupes de
champs.
Question
Comment modifier la couleur dun champ?
// Colorier le texte en rouge
NomChamp..Couleur = RougePastel
// Colorier la couleur de fond du libell en vert
NomChamp..CouleurFond = VertClair
// Remettre la couleur d'origine (celle du style)
NomChamp..Couleur = iCouleurDefaut
N
o
t
e
s
Cette syntaxe s'applique tous les types de champs.
<CodeCouleur> = RVB(<rouge>,<vert>,<bleu>)
// Modification de la couleur d'une colonne
NomColonne..Couleur = <CodeCouleur>
// Modification de la couleur d'une ligne
NomTable[IndiceLigne]..Couleur = <CodeCouleur>
// Modification de la couleur d'une cellule
NomColonne[IndiceLigne]..Couleur = <CodeCouleur>
// ou
// NomTable[IndiceLigne, IndiceColonne]..Couleur = <CodeCouleur>
Question
Comment rendre un bouton invisible?
NomBouton..Visible = Faux
GAF WinDev.book Page 242 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 243 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Effectuez les oprations suivantes :
1. Crez une nouvelle fentre ou ouvrez une fentre existante.
2. Slectionnez l'option "Fentres .. Menu principal .. Ajouter le menu principal".
Une option est cre automatiquement.
3. Faites un clic droit sur cette option.
4. Cliquez sur "Description de loption" pour modifier l'option slectionne.
5. Cliquez sur "Ajouter aprs" pour ajouter une nouvelle option aprs.
6. Cliquez sur "Ajouter avant" pour insrer une nouvelle option avant.
7. Cliquez sur "Transformer pour drouler un sous-menu" pour ajouter un sous-menu dans
l'arborescence du menu.
Un menu contextuel peut tre ajout :
soit au niveau de la fentre.
soit au niveau d'un champ.
Pour une fentre :
1. Faites un clic droit sur la fentre et slectionnez loption "Description".
2. Cliquez sur l'onglet "IHM" et cliquez sur licne ct de la combo "Menu contextuel".
Pour un champ :
1. Faites un clic droit sur le champ et slectionnez loption "Description".
2. Cliquez sur l'onglet "IHM" et cliquez sur licne ct de la combo "Menu contextuel".
Pour connatre ou modifier le menu contextuel dun champ ou dune fentre par programmation,
utilisez la proprit ..MenuContextuel.
Un curseur de survol peut tre dfini :
soit au niveau de la fentre.
soit au niveau d'un champ.
Pour dfinir le curseur de survol :
1. Faites un clic droit sur llment (fentre ou champ) et slectionnez loption "Description".
2. Cliquez sur l'onglet "IHM" et slectionnez le curseur de survol voulu dans la combo "Cur-
seur".
Vous pouvez choisir parmi des curseurs prdfinis ou slectionner un curseur que vous avez cr.
Pour modifier le curseur de survol par programmation, utilisez la proprit ..CurseurSouris.
Question
Comment crer le menu principal de mon application ?
Question
Comment crer un menu contextuel ?
Question
Comment modifier le curseur de survol pour un champ ou une fentre?
GAF WinDev.book Page 243 Jeudi, 5. juillet 2012 9:16 09
244 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La mthode pour passer des paramtres une fentre est similaire au passage des paramtres
une procdure.
Dans le code de dclaration des globales de la fentre, saisissez la syntaxe du code WLangage
suivante :
Lors de l'ouverture de la fentre avec la fonction Ouvre, passez les paramtres aprs le nom de la
fentre, par exemple :
Si vous initialisez un paramtre lors de la dclaration dans la fentre, ce paramtre devient
optionnel :
Effectuez la manipulation suivante :
1. Slectionnez plusieurs champs avec la souris.
2. Dans le menu de l'diteur, slectionnez l'option "Champ .. Groupes .. Associer la slection".
3. Vous pouvez :
Associer la slection un groupe existant.
Associer la slection un nouveau groupe (bouton "Nouveau"). Il suffit dindiquer le nom
du groupe et de valider.
Les groupes de champs sont utilisables aussi bien dans les fentres que dans les tats.
Les champs seront associs ce groupe. Vous pourrez ensuite modifier les proprits des
champs de ce groupe par la syntaxe :
Question
Comment passer des paramtres une fentre?
PROCEDURE NomFentre(NomParam1, NomParam2, ...)
Ouvre(Nomfentre, ValeurParam1, ValeurParam2, ...)
// NomParam2 est un paramtre optionnel
PROCEDURE NomFentre(NomParam1, NomParam2 = "Test")
N
o
t
e
s
Il est prfrable de passer des paramtres une fentre plutt que de dclarer
des variables globales dans le projet.
Question
Comment regrouper des champs pour modifier leurs proprits par
programmation?
NomGroupe..<NomProprit> = Valeur
A
t
t
e
n
t
i
o
n
!
Seules les proprits communes tous les champs sont modifiables.
GAF WinDev.book Page 244 Jeudi, 5. juillet 2012 9:16 09
Partie 3 : Fentres et champs 245 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
L'option de menu "Champ .. Permuter .. Slecteur/Interrupteur" inverse les deux types de champs.
!
Slectionnez en premier le bouton servant de rfrence pour la taille (largeur et hauteur), puis
les autres boutons redimensionner.
!
Slectionnez les options d'alignement "Mme largeur, Mme hauteur" dans les outils d'aligne-
ment (option "Champ .. Alignement").
!
Pour grer la persistance des champs, slectionnez loption "Mmoriser la valeur" dans
longlet "Dtail" de la fentre de description du champ.
Remarque : lutilisateur peut galement mmoriser la valeur dun champ grce au menu contex-
tuel du champ.
Sur la fentre :
1. Faites un clic droit et slectionnez l'option "Description".
2. Slectionnez l'onglet "Image". Vous pouvez choisir une image et son mode d'affichage.
Sur la fentre :
1. Faites un clic droit et slectionnez l'option "Description".
2. Slectionnez l'onglet "Style".
3. Dfinissez lopacit de la fentre grce au potentiomtre.
Il est galement possible de dfinir lopacit dune fentre ou dun champ grce la proprit
WLangage ..Opacit.
Question
Comment transformer un champ interrupteur en un champ slecteur ?
N
o
t
e
s
Cette opration peut galement tre effectue entre une combo et une combo
avec table ou entre un champ Potentiomtre et un Potentiomtre rotatif.
Question
Comment mettre des boutons la mme taille?
Question
Comment grer la persistance des champs?
Question
Comment ajouter une image en fond dans une fentre?
Question
Comment grer la transparence dune fentre?
GAF WinDev.book Page 245 Jeudi, 5. juillet 2012 9:16 09
246 Partie 3 : Fentres et champs (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
GAF WinDev.book Page 246 Jeudi, 5. juillet 2012 9:16 09
PARTIE 4
Bases de donnes
et analyses
GAF WinDev.book Page 247 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 248 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 249 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.1. INTRODUCTION
Ce que vous allez apprendre dans cette leon ...
Vocabulaire utilis.
Les diffrents modes daccs aux bases de donnes.
Dure estime : 20mn
GAF WinDev.book Page 249 Jeudi, 5. juillet 2012 9:16 09
250 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 (ou tables) contenant les donnes de lapplica-
tion.
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 que
seront stockes les donnes.
WinDev sait grer diffrents formats de base de donnes (pour ne pas dire tous). Les plus couran-
tes sont :
HyperFileSQL, systme de base de donnes intgre WinDev et livre en standard. La
base de donnes HyperFileSQL est disponible en mode Classic ou Client/Serveur.
AS/400, Access, Sybase, Informix, ...
Oracle, SQL Server, MySQL, xBase,
Toute base accessible en langage SQL sous Windows.
Texte (fichiers ASCII).
Pour accder aux donnes, il existe diffrentes techniques (appeles "modes daccs") :
Accs Natif
Accs OLE DB
Accs ODBC direct
Accs ODBC via OLE DB
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 :
HyperFileSQL 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)
N
o
t
e
s
Plusieurs outils de maintenance des bases de donnes HyperFileSQL sont livrs
en standard avec WinDev. Ils sont accessibles depuis le Centre de Contrle
HyperFileSQL.
GAF WinDev.book Page 250 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 251 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Sybase (optionnel)
Informix (optionnel)
DB2 (optionnel)
Progress (optionnel)
MySQL (optionnel et gratuit)
PostGreSQL (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 por-
table et indpendant de la base de donnes.
Accs ODBC direct
Un accs via ODBC direct utilise un standard daccs multi-bases. Vous devez installer la couche
ODBC 32 bits sur votre machine. Cette couche est en gnral dj installe sur les versions rcen-
tes de Windows. Vous pouvez le vrifier dans le panneau de configuration de Windows en choisis-
sant loption "Administrateur ODBC".
Attention : 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 ODBC.
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.
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.
Quel accs utiliser?
!
Pour obtenir plus dinformations sur les diffrents modes daccs aux bases de donnes et
savoir quel type daccs utiliser, slectionnez loption "? .. Aide lutilisation des bases de don-
nes" dans le menu de WinDev.
A
t
t
e
n
t
i
o
n
!
Si vous utilisez un accs OLE DB, vous devez obligatoirement installer le MDAC
sur les postes utilisateurs (version 2.6 minimum).
GAF WinDev.book Page 251 Jeudi, 5. juillet 2012 9:16 09
252 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.2. PARCOURS DE FICHIERS DE
DONNES ET DE REQUTES
Ce que vous allez apprendre dans cette leon ...
Parcours de type HLitPremier
Parcours de type HLitRecherche
Parcours de type POUR TOUT
Parcours de type POUR TOUT AVEC
Dure estime : 20mn
GAF WinDev.book Page 252 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 253 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Parcours de type HLitPremier
Le parcours de type HLitPremier permet de parcourir un fichier de donnes selon une rubrique cl
(ou index) de parcours. Dans ce cas, la fonction HLitPremier est combine la fonction HLitSui-
vant qui permet, comme son nom lindique de lire lenregistrement suivant.
Par exemple, le code suivant permet de parcourir le fichier Client selon la rubrique cl "Nom", du
premier enregistrement au dernier.
Dans ce code, la boucle de parcours teste la valeur de la fonction HEnDehors. La fonction HEnDe-
hors permet de savoir si la fin du fichier de donnes est atteinte ou non.
Lors du parcours dune requte, la fonction HLitPremier r-excute automatiquement la requte.
Parcours de type HLitRecherche
Le parcours de type HLitRecherche permet de se positionner dans le fichier de donnes pour ra-
liser un parcours des enregistrements correspondant une condition. Cette condition porte sur la
cl de parcours (par exemple, toutes les commandes dun client). La fonction HLitSuivant permet
de lire lenregistrement suivant correspondant la condition.
Par exemple, le code suivant permet de rechercher les clients dont le nom commence par
"Dupont" :
Dans ce code, la boucle de parcours teste la valeur de la fonction HTrouve.
La fonction HTrouve permet de savoir si un enregistrement correspondant la condition a t
trouv.
HLitPremier(Client, Nom)
TANTQUE PAS HEnDehors(Client)
// Traitement de l'enregistrement
HLitSuivant(Client, Nom)
FIN
R
e
m
a
r
q
u
e
Il est possible de raliser de la mme faon un parcours du fichier du dernier
enregistrement au premier. Il suffit dutiliser les fonctions HLitDernier et HLitPr-
cdent.
HLitRecherche(Client, Nom, "Dupont")
TANTQUE HTrouve(Client)
// Traitement de l'enregistrement
HLitSuivant(Client, Nom)
FIN
R
e
m
a
r
q
u
e
Par dfaut, la fonction HLitRecherche effectue une recherche gnrique : tous
les enregistrements commenant par la valeur indique sont recherchs (dans
notre exemple, Dupont et Dupontel seront trouvs).
Pour faire une recherche lidentique :
utilisez la fonction HLitRecherchePremier.
utilisez la constante hIdentique avec la fonction HLitRecherche.
GAF WinDev.book Page 253 Jeudi, 5. juillet 2012 9:16 09
254 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Parcours de type POUR TOUT
Le parcours de type POUR TOUT permet deffectuer un parcours complet dun fichier de donnes,
dune requte ou dune vue HyperFileSQL.
Le parcours peut tre effectu :
sur la meilleure cl du fichier de donnes, dtecte automatiquement par le moteur HyperFi-
leSQL.
sur une cl spcifique.
Par exemple, le code suivant permet de parcourir le fichier Client selon la rubrique "Nom", du pre-
mier enregistrement au dernier.
Ce code est quivalent au code prsent pour le parcours de type HLitPremier :
Il est possible deffectuer le parcours du dernier enregistrement au premier, en prcisant le sens
de parcours :
Parcours de type POUR TOUT AVEC
Le parcours de type POUR TOUT AVEC permet de parcourir un fichier de donnes HyperFileSQL
selon une condition.
Le parcours peut tre effectu :
sur la meilleure cl du fichier de donnes, dtecte automatiquement par le moteur HyperFi-
leSQL.
sur une cl spcifique.
Par exemple, le code suivant permet de parcourir le fichier Client selon le numro de client et en
donnant une condition sur le nom du client.
POUR TOUT Client SUR Nom
// Traitement des enregistrements
FIN
HLitPremier(Client, Nom)
TANTQUE PAS HEnDehors(Client)
// Traitement des enregistrements
HLitSuivant(Client, Nom)
FIN
POUR TOUT Client SUR Nom DepuisFin
// Traitement des enregistrements
FIN
// Parcours avec filtre
POUR TOUT Client SUR NumClient "Nom = 'Dupont'"
// Ajout des clients dans la liste
ListeAjoute(ListeClient, Client.NumClient)
FIN
GAF WinDev.book Page 254 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 255 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ce code est quivalent au code prsent pour le parcours de type HLitRecherche :
Quel type de parcours choisir?
Tous les types de parcours prsents se valent. Le choix de lun ou lautre va dpendre des cls
prsentes dans le fichier de donnes, de la taille du fichier, du type de recherche effectue
(recherche de type "Contient" ou non).
HLitRecherche(Client, Nom, "Dupont")
TANTQUE HTrouve(Client)
// Traitement de l'enregistrement
HLitSuivant(Client, Nom)
FIN
GAF WinDev.book Page 255 Jeudi, 5. juillet 2012 9:16 09
256 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.3. GESTION DES ERREURS
Ce que vous allez apprendre dans cette leon ...
La gestion automatique des erreurs
La gestion programme des erreurs
Dure estime : 20mn
GAF WinDev.book Page 256 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 257 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Lors de la gestion dune base de donnes, plusieurs types derreurs peuvent apparatre lors de
lajout ou de la modification dun enregistrement :
Erreur de mot de passe sur un fichier de donnes
Erreur de saisie obligatoire
Erreur de doublons
Erreur dintgrit, ...
WinDev propose plusieurs modes de gestion de ces erreurs :
le mode automatique : pour chaque erreur rencontre lors de la gestion des enregistre-
ments de la base de donnes, une fentre spcifique est affiche lutilisateur. Cette fen-
tre permet lutilisateur de modifier directement ses donnes.
le mode programm avanc : pour chaque erreur rencontre lors de la gestion des enregis-
trements de la base de donnes, une procdure ou une fentre personnalise de gestion
des erreurs est appele.
Nous allons dtailler ces modes de gestion des erreurs laide dun exemple simple. Cet exemple
est constitu de deux fichiers de donnes(Produit et TVA) nous permettant de tester simplement
les erreurs de doublons et les erreurs dintgrit.
!
Ouvrez le projet "ErreursHF.WDP". Pour cela :
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
"Gestion des erreurs HyperFileSQL".
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Gestion des erreurs HyperFileSQL".
Gestion des erreurs en mode automatique
Par dfaut, le mode automatique est activ. Dans ce mode, WinDev propose des fentres stan-
dard pour chaque type derreur. Ces fentres indiquent lutilisateur le problme.
Aucun code spcifique nest ncessaire dans lapplication.
Testons immdiatement le type derreur pouvant tre affich dans notre exemple simple.
!
Excutez le projet "ErreursHF" grce au bouton "GO".
!
Cliquez sur le bouton "Gestion des erreurs de doublons et dintgrit en mode automatique".
!
Nous allons tout dabord tester les erreurs de doublons. Pour cela, saisissez les informations
suivantes :
Rfrence : TEST1
Libell : Produit1
Description : Produit1
P.U. HT : 50
Taux de TVA : 5,5%
GAF WinDev.book Page 257 Jeudi, 5. juillet 2012 9:16 09
258 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Cliquez sur le bouton "OK". Lcran suivant saffiche :
Cette fentre explique clairement le problme : vous avez saisi une donne pour la rubrique
"Rfrence" qui existe dj. Une erreur de doublon apparat. Cette fentre permet lutilisa-
teur de corriger directement la valeur.
Le bouton "OK" permet de valider la saisie dans la fentre derreur.
Le bouton "Annuler" permet de revenir lcran ayant provoqu lerreur.
Cliquez sur le bouton "Annuler".
!
Testons maintenant les erreurs dintgrit. Pour cela, saisissez les informations suivantes :
Rfrence : TEST2
Libell : Produit2
Description : Produit2
P.U. HT : 50
Taux de TVA : slectionnez "<pas de taux de TVA>"
!
Cliquez sur le bouton "OK". Lcran suivant saffiche :
Cette fentre indique quune erreur dintgrit est rencontre (dans notre cas, la saisie du
taux de TVA na pas t ralise).
Le bouton "Modifier" permet de revenir lcran en cours de saisie.
Dans le mode automatique, ds quune erreur de gestion de base de donnes est rencontre, les
fentres dassistance saffichent. Il peut tre intressant dans certains cas de grer plus ou
moins manuellement ces erreurs. Dans ce cas, le programmeur peut intervenir de manire plus
prcise sur les erreurs rencontres.
!
Cliquez deux fois sur le bouton "Annuler". Le menu de lexemple est affich.
GAF WinDev.book Page 258 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 259 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Gestion des erreurs en mode programm avanc
La gestion des erreurs en mode programm avanc consiste personnaliser compltement le
traitement de lerreur par programmation. WinDev offre la possibilit dutiliser :
soit une fentre de gestion des erreurs compltement personnalise.
soit une procdure spcifique.
Dans notre exemple, nous avons choisi dutiliser une fentre spcifique.
!
Excutez le projet "ErreursHF" grce au bouton "GO".
!
Cliquez sur le bouton "Gestion des erreurs de doublons et dintgrit en mode programm
avanc".
!
Nous allons tout dabord tester les erreurs de doublons. Pour cela, saisissez les informations
suivantes :
Rfrence : TEST1
Libell : Produit1
Description : Produit1
Prix : 50
Taux de TVA : 5,5%
!
Cliquez sur le bouton "OK". Lcran suivant saffiche :
Cette fentre affiche la raison du problme avec une interface personnalise.
Slectionnez loption "Je souhaite continuer le traitement en cours" et validez.
!
Testons maintenant les erreurs dintgrit. Pour cela, saisissez les informations suivantes :
Rfrence : TEST2
Libell : Produit2
Description : Produit2
Prix : 50
Taux de TVA : laissez le champ vide.
GAF WinDev.book Page 259 Jeudi, 5. juillet 2012 9:16 09
260 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Cliquez sur le bouton "OK". Lcran suivant saffiche :
Slectionnez loption "Je souhaite continuer le traitement en cours" et validez.
!
Regardons maintenant le code qui a permis dafficher ces messages :
1. Sous lditeur, ouvrez la fentre "FEN_Erreurs_Programme" (double-cliquez sur le nom de la
fentre dans le volet "Explorateur de projet".
2. Affichez les traitements de la fentre (clic droit sur la fentre, option "Code"). Le code dini-
tialisation de la fentre contient la ligne de code suivante :
Cest encore la fonction HSurErreur qui permet de paramtrer le mode de gestion des erreurs
de la base de donnes. Les paramtres de la fonction permettent de spcifier ltendue de la
modification :
"*" pour indiquer que tous les fichiers de donnes de lanalyse sont concerns.
la constante hErrDoublon pour indiquer que seules les erreurs de doublons sont concer-
nes. Il est ncessaire de spcifier ensuite le nom de la fentre utiliser dans ce cas
(FEN_Doublon2).
la constante hErrIntgrit pour indiquer que seules les erreurs dintgrit sont concernes.
Il est ncessaire de spcifier ensuite le nom de la fentre utiliser dans ce cas
(FEN_Integrite2).
3. Fermez cette fentre de code.
Nous ne dtaillerons pas ici le code des fentres utilises. Nous vous conseillons de consulter
laide en ligne pour plus de dtails ainsi que lexemple "WD Detection Erreurs" fourni en standard
avec WinDev.
HSurErreur("*",hErrDoublon,FEN_Doublon2)
HSurErreur("*",hErrIntgrit,FEN_Integrite2)
GAF WinDev.book Page 260 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 261 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.4. LA JOURNALISATION
Ce que vous allez apprendre dans cette leon ...
Quest-ce que la journalisation ?
Utilisation de la journalisation.
Dure estime : 15mn
GAF WinDev.book Page 261 Jeudi, 5. juillet 2012 9:16 09
262 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quest-ce que la journalisation?
Cette leon concerne uniquement la journalisation de base de donnes HyperFileSQL. Pour les
bases de donnes externes (Oracle, ...) consultez la documentation de ces bases de donnes.
La journalisation pour quoi faire?
Le journal est un fichier particulier qui vous permettra de rpondre aux besoins suivants :
remettre la base de donnes dans ltat o elle tait tel jour telle heure suite un pro-
blme physique, des erreurs de traitements ou de saisie, ...
avoir un suivi sur les oprations effectues sur un fichier de donnes "sensible" (qui a modi-
fi ou consult le fichier? par exemple).
grer la rplication (voir La rplication, page 273)
Le journal est une scurit pour votre base de donnes. Il vous permettra de remettre rapidement
votre base de donnes dans le dernier tat connu avant le problme rencontr, depuis la dernire
sauvegarde, sans avoir tout ressaisir.
Comment mettre en place la journalisation
La mise en place de la journalisation est rellement simple avec WinDev. Pour chaque fichier de
donnes voulu, il suffit dindiquer le type de journalisation appliquer (onglet "Divers" de la fen-
tre de description du fichier de donnes).
Par exemple ici sur le fichier "Produit" :
Il suffit de choisir le type de journalisation souhaite :
Si votre objectif est de pouvoir rapidement restaurer votre base de donnes suite un pro-
blme physique ou une erreur de traitement il suffit de choisir "Journal des critures".
GAF WinDev.book Page 262 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 263 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Si vous souhaitez juste conserver une trace des accs la base vous choisissez "Historique
des accs au fichier (Ordres HyperFileSQL)".
Si vous souhaitez combiner les deux options, choisissez "Journal des critures + Historique
des accs".
Physiquement, comment se matrialise la journalisation?
Tous les accs tous les fichiers journals dune analyse donne sont archivs dans un fichier
nomm "Table des oprations" (1 par analyse).
Ce fichier unique garantit la squentialit des oprations.
Toutes les modifications sur un fichier de donnes sont stockes dans le fichier de journal corres-
pondant (1 par fichier journal). Par exemple pour un fichier de donnes "PRODUIT", le fichier jour-
nal sera "PRODUITJNL".
Ces fichiers "journaux" sont situs par dfaut dans le rpertoire dfini lors de la description des
fichiers de lanalyse :
Si vous navez rien spcifi, ils se trouveront dans le sous-rpertoire "JNL" du rpertoire des
fichiers de donnes.
Si vous avez spcifi un dossier, ils se trouveront dans le rpertoire que vous aurez indiqu.
Le nom des rpertoires est stock dans le fichier lui-mme.
Il est possible de modifier les rpertoires des journaux aprs la mise en place de la journalisation :
avec WDJournal, livr avec WinDev (option "Information sur un fichier")
par programmation. Vous pouvez modifier cet emplacement en utilisant les fonctions
HChangeRepJNL, HChangeRepRPL, ... (consultez laide en ligne pour plus de dtails, mot-
cl : "Journalisation").
A
t
t
e
n
t
i
o
n
!
La journalisation de type "Historique des accs au fichier (Ordres HyperFi-
leSQL)" ne permet pas de restaurer votre base de donnes en cas de pro-
blme. Cette option sert effectuer des contrles sur les accs aux
fichiers "sensibles" ou tout simplement pour des besoins statistiques.
Ce type de journalisation est nanmoins dconseill.
A
t
t
e
n
t
i
o
n
!
La modification des rpertoires des journaux est une opration "critique".
Vous devez absolument suivre le mode opratoire ci-dessous :
1. Interdire les accs la base (tous les fichiers).
2. Dplacer les fichiers journaux et/ou tables des oprations dans les nou-
veaux rpertoires.
3. Modifier le nom des rpertoires dans TOUS les fichiers de donnes con-
cerns (option "Divers", dans lcran de description des fichiers).
4. R-autoriser les accs la base de donnes.
GAF WinDev.book Page 263 Jeudi, 5. juillet 2012 9:16 09
264 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Comment russir la mise en place de la journalisation?
La mise en place de journaux pour une base de donnes est lie la gestion des sauvegardes de
cette mme base (sauvegardes des fichiers de donnes).
En effet, un journal ne peut tre "jou" que sur un tat donn de la base. Ltat qui correspond
la cration ou re-cration du journal.
Vous pouvez raliser ces diffrentes oprations sans programmation en utilisant WDJournal, livr
avec WinDev.
Nous vous conseillons galement de suivre les modes opratoires suivants :
!
Mise en place de la journalisation :
1. Sauvegarde des fichiers de donnes initiaux (sils existent).
2. Mise en place de la journalisation.
!
Sauvegarde dune application avec des fichiers journals :
1. Sauvegarde des fichiers de donnes.
2. Sauvegarde ventuelle des fichiers journaux.
3. R initialisation des fichiers journaux.
!
Restauration suite un problme :
1. Restaurer la dernire sauvegarde.
2. Rejouer le journal en cours jusqu lopration souhaite.
3. Refaire une sauvegarde et rinitialiser les journaux.
Pour plus de dtails sur la journalisation, consultez laide en ligne (mot-cl : "Journalisation").
N
o
t
e
s
WDJournal est redistribuable avec vos applications.
N
o
t
e
s
Journalisation et HyperFileSQL Client/Serveur
La journalisation est disponible en HyperFileSQL Client/Serveur. Pour plus de
dtails sur les spcificits de la journalisation en mode Client/Serveur, consultez
laide en ligne.
GAF WinDev.book Page 264 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 265 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.5. LES TRANSACTIONS
Ce que vous allez apprendre dans cette leon ...
Quest-ce quune transaction ?
Comment utiliser les transactions ?
Dure estime : 15 mn
GAF WinDev.book Page 265 Jeudi, 5. juillet 2012 9:16 09
266 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Quest-ce quune transaction?
Une transaction est un ensemble d'oprations indissociables sur un ou plusieurs fichiers de
donnes :
soit toutes les oprations de la transaction sont ralises.
soit aucune opration n'est ralise.
La gestion des transactions est le meilleur moyen d'assurer la cohrence d'un ensemble d'critu-
res indissociables sur des fichiers de donnesHyperFileSQL.
Les transactions sont galement un moyen sr et fiable de scuriser vos traitements sur des
fichiers HyperFileSQL.
Un exemple simple de la ncessit des transactions pour certains types de traite-
ments
Lors dune opration bancaire de virement, un compte est dbit pour en crditer un autre. Pen-
dant les oprations qui sont effectues, il peut survenir tout moment une panne sur le rseau
(panne lectrique, dfaillance des systmes informatiques). Cest pourquoi il est alors indispensa-
ble de grer ce traitement par une transaction. Si une panne survient, toutes les oprations
effectuer sont alors annules. On ne se retrouve donc pas avec un compte dbit et un compte
non crdit!
GAF WinDev.book Page 266 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 267 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les transactions sur HyperFileSQL
Chaque opration d'criture effectue lors d'une transaction est mmorise dans un fichier sp-
cial. A tout moment, il est possible d'annuler la transaction : toutes les oprations effectues
depuis le dbut de la transaction seront annules.
Les transactions seront annules dans les cas suivants :
erreur du programme.
fin de programme.
panne de courant ou arrt brusque de lapplication.
Lorsque lapplication sera relance, la cohrence de la base de donnes pourra tre rtablie
grce :
loutil WinDev "WDTRANS".
au premier appel de la fonction HTransactionDbut.
au premier appel de la fonction HTransactionAnnule.
Lorsque les oprations d'criture incluses dans la transaction sont termines, le programme peut
valider les oprations de la transaction.
Utilisation des transactions
Mettre en place la gestion des transactions
1. Si vos fichiers de donnes sont protgs par mot de passe, ouvrez tous les fichiers de don-
nes utiliss pendant la transaction (fonction HOuvre) avant le dbut de la transaction ou sp-
cifiez les mots de passe avec HPasse.
Si vos fichiers de donnes ne sont pas protgs par mot de passe, les fichiers de donnes
manipuls aprs la fonction HTransactionDbut seront automatiquement mis en transaction.
2. Commencez la transaction avec la fonction HTransactionDbut. Cette fonction permet
ventuellement de dfinir le nom du journal des transactions.
3. Effectuez vos oprations. Toutes les oprations d'criture sur les fichiers de donnes en
transaction sont automatiquement enregistres dans le fichier de transaction.
4. Annulez si ncessaire les oprations ralises pendant la transaction (fonction HTransac-
tionAnnule).
5. Spcifiez la fin de la transaction avec la fonction HTransactionFin : la transaction est vali-
de.
Pour plus de dtails sur les fonctions de gestion des transactions, consultez laide en ligne (mot-
cl : "Transactions HyperFileSQL").
A
t
t
e
n
t
i
o
n
!
Les traitements raliss sont relativement plus lents (puisque chaque
opration est galement enregistre dans un fichier spcifique).
GAF WinDev.book Page 267 Jeudi, 5. juillet 2012 9:16 09
268 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Manipuler les enregistrements lors d'une transaction : les rgles suivre
Les enregistrements modifis pendant la transaction peuvent tre lus avant ou aprs le dbut de
la transaction : ils seront toujours pris en compte dans le journal des transactions.
La gestion des transactions n'exclut pas la gestion des blocages des enregistrements en transac-
tion.
En effet, les enregistrements manipuls pendant la transaction sont automatiquement bloqus
en criture.
Dans une application en rseau, si l'utilisateur tente de modifier un enregistrement en transac-
tion, un message apparatra lui demandant de retenter l'opration.
Il est donc ncessaire que la transaction soit la plus courte possible, pour viter tout blocage des
utilisateurs. Pensez donc limiter le nombre dinstructions de parcours, modification... sur le
fichier entre les appels aux fonctions HTransactionDbut et HTransactionFin.
Que faire si une transaction a t interrompue?
Si une panne (coupure de courant, redmarrage du poste, ...) survient pendant une transaction,
les fichiers de donnes risquent d'tre incohrents : la transaction n'a t ni valide, ni abandon-
ne. Le fichier de transaction est toujours prsent sur le poste.
Il est dans ce cas ncessaire de rtablir la cohrence de la base de donnes. Cette opration peut
tre automatiquement ralise :
lors du prochain appel la fonction HTransactionAnnule ou HTransactionDbut.
avec WDTRANS, utilitaire de gestion des transactions livr avec WinDev.
Pour savoir si la restauration de la cohrence de la base est ncessaire, testez le rsultat de la
fonction HTransactionInterrompue dans le code d'initialisation du projet par exemple.
Pour plus de dtails, consultez laide en ligne (mot-cl : "Transactions HyperFileSQL").
N
o
t
e
s
Transactions et HyperFileSQL Client/Serveur
Les transactions sont disponibles en HyperFileSQL Client/Serveur. Pour plus de
dtails sur les spcificits des transactions en mode Client/Serveur, consultez
laide en ligne.
GAF WinDev.book Page 268 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 269 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.6. CRYPTAGE DE DONNES
Ce que vous allez apprendre dans cette leon ...
A quoi sert le cryptage des donnes?
Utiliser le cryptage de donnes.
Dure estime : 15 mn
GAF WinDev.book Page 269 Jeudi, 5. juillet 2012 9:16 09
270 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
A quoi sert le cryptage des donnes?
Une des nombreuses fonctionnalits de WinDev sur les fichiers de donnes HyperFileSQL est de
garantir la confidentialit des donnes contenues dans les fichiers de donnes HyperFileSQL.
Le cryptage des fichiers de donnes permet dassurer cette confidentialit.
Le cryptage des fichiers de donnes permet den rendre le contenu illisible pour toute personne
ne possdant pas la cl de dcryptage (" Ssame, ouvres toi !"). En effet, un fichier de donnes
est crypt selon une cl (appele galement "mot de passe").
Ce mot de passe est (et doit tre) connu de vous seul.
Cest lors de la description du fichier de donnes sous lditeur danalyses que vous avez la possi-
bilit de dfinir si un cryptage doit tre ralis :
sur le fichier de donnes lui-mme
sur lindex
sur les fichiers mmos dpendants du fichier de donnes.
Il existe plusieurs types de cryptage :
cryptage 128 bits (performant)
cryptage RC5 (128 bits, 12 boucles, moins performant mais plus scuris)
cryptage RC5 (128 bits, 16 boucles, idem)
La cl (ou "mot de passe") que vous allez dfinir sera valable uniquement sur le fichier de don-
nes lui-mme, et non pas pour lanalyse en totalit. Vous avez alors la libert de dfinir un cryp-
tage sur tout ou partie des fichiers de donnes de votre analyse.
Les donnes contenues dans le fichier de donnes (et/ou dans lindex et/ou dans les fichiers
mmos) seront "codes" en fonction de la cl (ou "mot de passe") que vous aurez dfinie lors de la
gnration des fichiers.
Lors du dcodage du fichier de donnes, le mot de passe pourra tre :
demand lutilisateur par lintermdiaire dune bote de dialogue automatiquement gre par
WinDev. Dans ce cas, lutilisateur devra connatre le mot de passe pour utiliser le fichier de don-
nes.
prsent directement dans le code du programme. Toute personne possdant le programme
pourra utiliser le fichier de donnes, mais seulement pour les traitements que vous aurez pr-
vus. Dans ce cas lutilisateur naura pas connaissance du mot de passe.
activ par un mode opratoire avanc : mot de passe lu dans un fichier, activ par un traitement
spcial...
La gestion de ce mot de passe incombe totalement au dveloppeur, cest--dire vous ! WinDev se
charge de coder ou dcoder en fonction du mot de passe que vous indiquez.
Comment crypter les fichiers de donnes?
Mettre en place le cryptage des fichiers de donnes
!
Pour utiliser le cryptage sur fichier de donnes :
1. Chargez lanalyse de votre projet avec lditeur danalyses (option "Projet .. Charger lana-
lyse").
2. Slectionnez le fichier de donnes que vous souhaitez crypter.
GAF WinDev.book Page 270 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 271 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3. Dans la description du fichier (option "Structure de fichiers .. Description des fichiers de
donnes", onglet "Dtail"), choisissez le type de cryptage pour votre fichier de donnes, votre
mmo ou votre index.
Vous avez galement la possibilit dactiver la scurit renforce. Grce ce mode, le mot de
passe de cryptage devra tre saisi chaque modification automatique des donnes (nouvelle ins-
tallation, mise jour, gnration...).
Lors de la gnration de votre analyse, lassistant vous propose de saisir ou de modifier (si vous
aviez dj crypt votre fichier de donnes) le mot de passe de cryptage.
GAF WinDev.book Page 271 Jeudi, 5. juillet 2012 9:16 09
272 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Vous obtiendrez alors la liste des fichiers de donnes pour lesquels vous avez demand un cryp-
tage. Vous avez la possibilit de slectionner les fichiers de donnes crypter, et de saisir les
mots de passe pour chacun des fichiers de donnes.
Gestion du cryptage en WLangage
Pour grer un mot de passe de cryptage en WLangage, vous pouvez :
soit indiquer le mot passe avec les fonctions douverture et de cration des fichiers de donnes
(fonctions HCration, HCrationSiInexistant, HOuvre).
Exemple dutilisation de la fonction HCrationSiInexistant :
soit utiliser la fonction HPasse avant la premire opration de lecture ou dcriture dans le
fichier de donnes crypt.
Exemple dutilisation de la fonction HPasse :
Pour plus de dtails sur le cryptage des donnes, consultez laide en ligne (mots-cls : "HPasse",
"CryptageFIC", "CryptageMMO", "CryptageNDX").
HCrationSiInexistant(CLIENT, "Motdepasse")
SI HErreurMotDePasse() ALORS
Erreur("Mot de passe invalide")
FIN
// Ouverture dun fichier avec mot de passe et contrle d'erreur
HPasse(CLIENT, "MotDePasse")
HCrationSiInexistant(CLIENT)
SI ErreurDtecte ALORS
Erreur("Erreur HyperFileSQL : " + HErreurInfo())
RETOUR
FIN
GAF WinDev.book Page 272 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 273 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.7. LA RPLICATION
Ce que vous allez apprendre dans cette leon ...
A quoi sert la rplication de donnes ?
Mise en uvre de la rplication de donnes.
Dure estime : 30 mn
GAF WinDev.book Page 273 Jeudi, 5. juillet 2012 9:16 09
274 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
A quoi sert la rplication de donnes?
La rplication de donnes est une fonctionnalit trs puissante. La rplication est l'opration per-
mettant de maintenir jour des bases de donnes distantes de structures identiques. Chacune
de ces bases de donnes volue indpendamment.
Grce la rplication, les oprations effectues sur chacune des bases de donnes sont repor-
tes sur toutes les autres bases de donnes.
WinDev permet de raliser ces oprations trs simplement.
WinDev propose deux types de rplication :
La rplication journale (base sur la journalisation). Ce type de rplication permet de rpliquer
uniquement des bases de donnes HyperFileSQL entre elles. Ce type de rplication peut tre
mis en place grce aux fonctions WLangage ou grce loutil WDReplic.
La rplication universelle qui permet de rpliquer nimporte quel type de base de donnes (par
exemple une base de donnes HyperFileSQL avec une base de donnes Oracle).
Nous ne prsenterons ici que la rplication universelle.
Mise en uvre de la rplication de donnes
Le but de la rplication universelle est de conserver plusieurs bases de donnes synchronises.
Ces bases de donnes peuvent tre de types diffrents ou non. Il est par exemple possible de ra-
liser une rplication entre une base de donnes HyperFileSQL et une base de donnes Oracle, ou
entre deux bases de donnes HyperFileSQL.
La rplication universelle utilise un modle centralis : toutes les bases de donnes se synchroni-
sent avec une base de donnes matre. La base de donnes matre rpercute ensuite les modifi-
cations vers les autres bases de donnes.
La rplication universelle utilise plusieurs types de fichiers :
Fichier .RPM : fichier permettant de dcrire une base matre, et les bases qui lui sont abonnes.
Fichier .RPL : fichier dcrivant une base abonne. Pour chaque base abonne, un fichier RPL
est cr. Ce fichier est prsent sur le poste abonn.
Fichier .RPA : fichier journal contenant les informations de rplication. Ce fichier est chang
entre la base de donnes matre et la base de donnes abonne.
Fichier .SYN : fichier contenant les informations sur la situation de la base distante. Ce fichier
permet d'optimiser la taille des fichiers de synchronisation. Ce fichier est prsent sur le poste
matre et sur chaque poste abonn.
Remarque : Pour mettre en place la rplication universelle sur des bases de donnes diffrentes
de HyperFileSQL, il est obligatoire de crer une rubrique de type DateHeure dans chaque fichier.
Cette rubrique sera mise jour par l'application lors de la modification ou lors de l'ajout d'un enre-
gistrement. Si les bases de donnes utilisent diffrents fuseaux horaires, il est conseill d'utiliser
un format universel (date et heure GMT par exemple).
GAF WinDev.book Page 274 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 275 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Mise en place
1. Activation
Pour activer la rplication universelle, il suffit d'utiliser la fonction HGreRplication avec le para-
mtre rplRplicationUniverselle.
Cette fonction permet de dsactiver le mode de rplication standard (s'il tait actif) et d'activer la
rplication universelle.
2. Dclaration de la base matre
Cette opration n'est faire qu'une seule fois sur la base matre.
Pour dclarer la base matre, il suffit d'utiliser la fonction HCreRplicaMatre.
Remarque : Si le rpertoire courant permet de stocker des donnes, la ligne de code suivante
peut tre utilise :
Cette ligne de code cre le fichier RplicaMatre.RPM sur le disque. Il ne reste plus qu' inscrire
les abonns dans ce fichier.
3. Dclaration des bases abonnes
Cette opration n'est faire qu'une seule fois pour chaque base abonne. Cette opration doit
tre effectue sur la base matre.
Pour dclarer un nouvel abonn, utilisez la fonction HCreRplicaAbonn. Cette fonction cre un
abonn (fichier RPL) avec le nom fourni. Cette fonction renvoie galement un numro d'abonn.
Remarque : la fonction HCreRplicaAbonn utilise des paramtres spcifiques pour la rplica-
tion universelle. Pour plus de dtails, consultez l'aide de la fonction.
4. Rplication
HCreRplicaMatre("")
GAF WinDev.book Page 275 Jeudi, 5. juillet 2012 9:16 09
276 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La fonction HCreRplicaTransportable cre un fichier spcifique contenant toutes les oprations
ralises (fichier .RPA).
Ce fichier est transmis et excut grce la fonction HSynchroniseRplica.
Attention : Par dfaut lors de la synchronisation (HSynchroniseRplica), le matre est prioritaire :
dans le cas d'une rplication abonn vers matre, les donnes du matre ne seront pas mises
jour. Pensez utiliser une autre constante (rplPlusRcentPrioritaire par exemple).
Deux fonctions spcifiques peuvent galement tre utilises :
HRplDclareLiaison Permet de signaler au moteur de rplication une liaison entre
deux fichiers. Le moteur suivra alors la liaison pour obtenir la liste
des enregistrements rpliquer dans le second fichier.
HRplProcdureFiltre Permet de spcifier une procdure de filtrage spcifique lorsquun
fichier donn sera rpliqu.
GAF WinDev.book Page 276 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 277 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.8. LES TRIGGERS
Ce que vous allez apprendre dans cette leon ...
A quoi sert un trigger ?
Utilisation dun trigger.
Dure estime : 10 mn
GAF WinDev.book Page 277 Jeudi, 5. juillet 2012 9:16 09
278 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
A quoi sert un trigger ?
Un trigger permet de dclencher une action automatiquement lors dune opration dajout, de
modification et de suppression sur un fichier de donnes HyperFileSQL.
Lors dune opration (ajout, modification ou suppression) sur un fichier de donnes HyperFileSQL,
il est possible dexcuter une action avant ou aprs lexcution de cette opration. Par exemple,
lors dune suppression dans un fichier de donnes, il est possible de demander la confirmation de
suppression de lenregistrement.
Mise en place
Les triggers sont dfinis par programmation. Les fonctions du WLangage utilisables sont :
HDcritTrigger : Dcrit le trigger. Cette fonction est gnralement utilise dans le code dini-
tialisation du projet. Le trigger dclenche lappel dune procdure. Cette procdure est asso-
cie au trigger lors de lutilisation de la fonction HDcritTrigger.
HActiveTrigger : Active un trigger dcrit par la fonction HDcritTrigger. Ds sa cration, le
trigger est automatiquement activ.
HDsactiveTrigger : Dsactive un trigger dcrit par la fonction HDcritTrigger.
HDtruitTrigger : Dtruit un trigger dcrit par la fonction HDcritTrigger.
Etape 1 : dcrire le trigger (ici dans le code dinitialisation du projet)
Exemple :
Dans cet exemple, le trigger va dclencher lappel de la procdure "ProcConfirmeSuppression"
lors de la suppression dun enregistrement dans lun des fichiers "CLIENT" et/ou "FOURNISSEUR".
Cette suppression pourra avoir lieu nimporte o dans le projet.
A
t
t
e
n
t
i
o
n
!
La fonction HDsactiveTrigger ne dtruit pas le trigger. Le trigger existe toujours
mais nest plus actif.
- - code dinitialisation du projet - -
HDcritTrigger("CLIENT,FOURNISSEUR", "HSUPPRIME",
"ProcConfirmeSuppression", hTriggerAvant)
A
t
t
e
n
t
i
o
n
!
La procdure "ProcConfirmeSuppression" sera appele AVANT (hTriggerAvant)
que la suppression ait lieu.
GAF WinDev.book Page 278 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 279 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Etape 2 : crer une procdure globale lie au trigger
Exemple :
Nous avons abord simplement le fonctionnement dun trigger. Pour obtenir plus de dtails, con-
sultez laide en ligne (mot-cl : "HDcritTrigger")
PROCEDURE ProcConfirmeSuppression ()
// Demande la confirmation lutilisateur
SI OuiNon("Confirmez-vous la suppression ? ") = Non ALORS
// Initialisation de H.Afaire pour annuler lopration
H.Afaire = "A"
FIN
E
x
e
m
p
l
e
Pour plus de dtails sur lutilisation des triggers, consultez lexemple "Trigger"
(exemple didactique), livr en standard avec WinDev. Cet exemple est accessible
depuis le volet "Assistants, Exemples et Composants" de WinDev.
GAF WinDev.book Page 279 Jeudi, 5. juillet 2012 9:16 09
280 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 4.9. BASES EXTERNES
Ce que vous allez apprendre dans cette leon ...
Paramtrer la connexion une base de donnes dans lanalyse
Paramtrer la connexion une base de donnes par programmation
Dure estime : 15 mn
GAF WinDev.book Page 280 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 281 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
On nommera "Base de donnes externe" tout systme de gestion de base de donnes autre que
HyperFileSQL. Tout programme ralis avec WinDev peut accder trs facilement une base de
donnes autre que HyperFileSQL.
Il faut pour cela dcrire la base de donnes dans une analyse (comme pour HyperFileSQL).
Les modes daccs aux bases de donnes sont :
accs natif
accs via ODBC
accs via OLE DB
accs ODBC via OLE DB
La programmation sera effectue avec les fonctions du WLangage (HLit*) et/ou en utilisant le lan-
gage SQL. Consultez le tableau comparatif en slectionnant loption "? .. Aide lutilisation des
bases de donnes" dans le menu de WinDev.
Connexion une base de donnes dans lditeur danalyses
Lors de la cration dun nouveau fichier (option "Insertion.. Fichier de donnes" de lditeur dana-
lyses), choisissez loption "Utiliser des fichiers de donnes dune base existante" :
GAF WinDev.book Page 281 Jeudi, 5. juillet 2012 9:16 09
282 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Slectionnez ensuite le type de base de donnes :
Puis, dfinissez si les donnes seront converties en HyperFileSQL Classic ou bien si elles restent
dans leur format actuel :
Les paramtres de connexion cette base de donnes externe doivent tre dcrits (nom du ser-
veur ou service, base de donnes, login et mot de passe et le type daccs par exemple Natif, OLE
DB, ODBC).
GAF WinDev.book Page 282 Jeudi, 5. juillet 2012 9:16 09
Partie 4 : Bases de donnes et analyses 283 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Toutes ces informations permettent de dfinir une connexion dans lanalyse. Cette connexion sera
automatiquement utilise lors de la gnration dun RAD (RAD application complte ou RAD fen-
tre). Tous les fichiers de donnes seront lis cette connexion.
Lutilisation dune connexion spcifie dans lanalyse est trs confortable pour le dveloppement
de lapplication.
Mais bien souvent, les paramtres utiliss en dveloppement correspondent aux paramtres dun
administrateur, et lapplication cliente doit utiliser un mode de connexion plus scuris (avec
moins de droits).
Il faut donc redfinir la connexion. Deux solutions sont envisageables :
Solution 1 : Redfinir la connexion spcifie dans lanalyse. Cette solution oblige conserver
des donnes "en dur" dans lapplication, et non paramtrables.
Solution 2 : Redfinir la connexion spcifie par programmation. Cette solution implique lutilisa-
tion de deux fonctions du WLangage HOuvreConnexion et HChangeConnexion.
Connexion une base de donnes par programmation
La connexion une base de donnes par programmation se fait laide de deux fonctions du
WLangage :
HOuvreConnexion, qui permet de dcrire les diffrents paramtres de la connexion et de
louvrir.
HChangeConnexion, qui permet dassocier une connexion aux diffrents fichiers de lanalyse.
Etudions en dtail les manipulations ncessaires la mise en place de la connexion par program-
mation.
GAF WinDev.book Page 283 Jeudi, 5. juillet 2012 9:16 09
284 Partie 4 : Bases de donnes et analyses (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cration de la connexion : HOuvreConnexion
Le plus simple pour utiliser la fonction HOuvreConnexion est dutiliser lassistant de cette
fonction : vous rpondez aux diffrentes questions et le code correspondant est automatiquement
gnr dans votre traitement.
Pour utiliser lassistant de la fonction HOuvreConnexion :
1. Dans lditeur de code, saisissez le nom de la fonction suivi de la parenthse ouvrante :
2. Cliquez sur loption "Assistant de la fonction HOuvreConnexion" qui apparat. Lassistant se
lance automatiquement.
Lassistant demande les diffrents paramtres de la connexion :
Nom de la connexion
Provider
Cryptage
Utilisateur et mot de passe
Serveur et base de donnes
3. Lassistant est termin. Validez. Le code correspondant est automatiquement intgr dans
le traitement en cours.
La fonction HOuvreConnexion a permis de dfinir une connexion, mais cette connexion nest pas
encore associe aux fichiers de donnes.
Association de la connexion aux fichiers de donnes : HChangeConnexion
Pour associer une connexion un fichier, il suffit dutiliser la fonction HChangeConnexion. La syn-
taxe de cette fonction est trs simple :
le premier paramtre correspond au nom du fichier ("*" pour tous les fichiers de donnes de
lanalyse)
le second paramtre correspond au nom de la connexion utiliser
Exemple :
HOuvreConnexion(
A
t
t
e
n
t
i
o
n
!
Lutilisateur et le mot de passe donns dans lassistant apparatront directement
dans le code gnr et seront "en dur".
Il peut tre ncessaire de faire une fentre de login afin didentifier lutilisateur et
dutiliser des variables pour le nom de lutilisateur et son mot de passe. Ces op-
rations peuvent tre faites aprs avoir utilis lassistant.
A
t
t
e
n
t
i
o
n
!
Pensez tester le rsultat de la fonction HOuvreConnexion. Cette fonction ren-
voie Faux si la connexion ne peut pas tre ouverte.
HChangeConnexion("*","MaNouvelleConnexion")
N
o
t
e
s
Il est possible de dcrire autant de connexions que ncessaires.
Un fichier peut utiliser une connexion diffrente de la connexion utilise par les
autres fichiers prsents dans lanalyse.
GAF WinDev.book Page 284 Jeudi, 5. juillet 2012 9:16 09
PARTIE 5
Administrer une
base HyperFileSQL
Client/Serveur
GAF WinDev.book Page 285 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 286 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 287 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 5.1. INTRODUCTION
Ce que vous allez apprendre dans cette leon ...
Principe du Client/Serveur
Pourquoi passer une application en HyperFileSQL Client/Serveur?
Dure estime : 5 mn
GAF WinDev.book Page 287 Jeudi, 5. juillet 2012 9:16 09
288 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WinDev permet de crer des applications accdant des bases de donnes HyperFileSQL Client/
Serveur.
Une application HyperFileSQL Client/Serveur consiste excuter l'application sur diffrents pos-
tes utilisateur (appels machines clientes) et dporter la ou les bases de donnes et les traite-
ments sur un poste serveur. Ce mode de fonctionnement permet des temps de rponses plus
rapides et plus fiables, ainsi qu'une maintenance de la base de donnes facilite.
WinDev permet de :
crer entirement une application HyperFileSQL Client/Serveur.
modifier une application WinDev existante en une application HyperFileSQL Client/Serveur.
GAF WinDev.book Page 288 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 289 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pourquoi passer une application en mode HyperFileSQL Client/
Serveur?
Les principaux avantages dune application en mode HyperFileSQL Client/Serveur par rapport
une application en mode HyperFileSQL Classic :
Lutilisation de HyperFileSQL 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.
GAF WinDev.book Page 289 Jeudi, 5. juillet 2012 9:16 09
290 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 5.2. MISE EN PLACE DUNE
APPLICATION CLIENT/SERVEUR
Ce que vous allez apprendre dans cette leon ...
Installation dun serveur HyperFileSQL Local
Cration dune application en mode Client/Serveur
Adaptation dune application pour grer le mode Client/Serveur
Fonctionnalits disponibles en mode Client/Serveur
Dure estime : 10 mn
GAF WinDev.book Page 290 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 291 (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 HyperFileSQL Client/Serveur.
Installation dun serveur HyperFileSQL local
La premire opration faire avant de commencer dvelopper une application HyperFileSQL
Client/Serveur consiste installer un serveur HyperFileSQL.
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 HyperFileSQL est disponible sur le CD de WinDev. Si vous
ne possdez pas ce CD, linstallation du serveur HyperFileSQL est galement disponible sur le site
de PC SOFT (www.pcsoft.fr).
Pour installer le serveur HyperFileSQL en local :
1. Lancez le programme dinstallation de WinDev.
2. Choisissez loption "Installation du Serveur HyperFileSQL C/S".
3. Slectionnez ensuite loption "Installer un serveur HyperFileSQL Client/Serveur".
4. Acceptez la licence.
5. Choisissez la plate-forme (option "Pour Windows sur cette machine").
6. Choisissez loption "Installer un nouveau serveur".
7. Slectionnez le rpertoire dinstallation et indiquez le nom du serveur et le port. Par dfaut,
le port utilis est 4900. Vous pouvez installer le Centre de Contrle HyperFileSQL si celui-ci
nest pas prsent ou accessible depuis votre poste.
8. Linstallation est effectue. Par dfaut, pour se connecter au serveur en mode administra-
teur, il faut utiliser lutilisateur "admin" sans mot de passe.
Cration dune application en mode HyperFileSQL Client/Serveur
La cration dune application WinDev HyperFileSQL Client/Serveur se fait de la mme manire
que pour toute application WinDev.
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
"HyperFileSQL Client/Serveur".
3. Indiquer les caractristiques de la connexion au serveur HyperFileSQL Client/Serveur uti-
liser.
4. Lors de la cration dun fichier sous lanalyse, indiquer que ce fichier est en mode Client/
Serveur et prciser la connexion utilise.
A
t
t
e
n
t
i
o
n
!
Le Centre de Contrle HyperFileSQL est ncessaire la gestion de la base Hyper-
FileSQL Client/Serveur.
GAF WinDev.book Page 291 Jeudi, 5. juillet 2012 9:16 09
292 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Adaptation dune application HyperFileSQL Classic pour grer le
mode Client/Serveur
Prsentation
La migration dune application HyperFileSQL Classic en mode Client/Serveur est lopration la
plus courante.
WinDev propose plusieurs solutions pour raliser cette migration sur le poste de dveloppement :
raliser la migration depuis lditeur danalyses.
raliser la migration depuis le centre de contrle HyperFileSQL.
Pour mieux se rendre compte des diffrentes tapes, nous allons migrer lapplication de gestion
de comptes que nous avons ralise dans la partie 2 de ce livre, en utilisant la premire mthode.
Migration de lexemple
Une version corrige du projet tudi dans la partie 2 est disponible avec ce cours dauto-forma-
tion. Nous allons migrer ce projet pour le tester en mode Client/Serveur.
Pour migrer le projet :
1. Si ncessaire, fermez le projet en cours.
2. Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation", puis slectionnez
"Application Mes Comptes (Corrig)".
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Application Mes Comptes (Corrig)").
3. Affichez lanalyse du projet (option "Projet .. Charger lanalyse"). Lditeur danalyses saffi-
che.
4. Dans lditeur danalyses, slectionnez loption "Analyse .. Associer une connexion des
fichiers de donnes". Aucune connexion ntant dfinie dans notre analyse, un assistant
souvre, permettant de crer une connexion.
5. Slectionnez le type de connexion crer : "HyperFileSQL Client/Serveur". Passez lcran
suivant :
GAF WinDev.book Page 292 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 293 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
6. Indiquez dans les plans suivants :
le nom du serveur (nom de votre machine par exemple) et le numro de port,
le nom de lutilisateur et son mot de passe (laissez ces informations vides pour utiliser
ladministrateur)
le nom de la base de donnes ("Mes Comptes" dans notre exemple)
le nom de la connexion (conservez le nom propos)
7. Passez lcran suivant. La connexion la base est automatiquement cre. Lassistant
propose dassocier les diffrents fichiers de donnes prsents dans lanalyse la connexion
qui vient dtre cre.
Passez lcran suivant.
8. Lassistant propose ensuite de crer les fichiers de donnes sur le serveur. Validez (option
"Copier maintenant").
9. Slectionnez les fichiers de donnes de lanalyse copier sur le serveur : dans notre cas,
ce sont tous les fichiers de donnes du rpertoire EXE. Passez lcran suivant et validez.
10. Les fichiers de donnes de lanalyse sont automatiquement transforms en fichiers de
donnes HyperFileSQL Client/Serveur et associs la connexion choisie.
11. Gnrez lanalyse.
A
t
t
e
n
t
i
o
n
!
Vrifiez le code de votre projet : en mode HyperFileSQL Client/Serveur, les ins-
tructions HSubstRep, HChangeRep, ... sont inutiles.
N
o
t
e
s
Selon les paramtres indiqus lors de la cration de la connexion, il est possible
de modifier la connexion dfinie dans lanalyse grce aux fonctions HOuvreCon-
nexion et HChangeConnexion. Cette manipulation a t vue dans le chapitre
Bases externes, page 280.
GAF WinDev.book Page 293 Jeudi, 5. juillet 2012 9:16 09
294 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
12. Vous avez migr le projet de dveloppement. Il peut tre galement ncessaire de migrer
lapplication dploye (par exemple si lapplication dploye utilise des fichiers HyperFileSQL
Classic). Cette opration se paramtre lors de la cration du programme dinstallation de
lapplication.
Fonctionnalits disponibles en mode HyperFileSQL Client/Ser-
veur
HyperFileSQL Client/Serveur propose de nombreuses fonctionnalits :
Transactions
Journaux
Procdures stockes
Triggers,
Modification automatique des donnes chaud,
Rindexation chaud,
Sauvegardes planifies
Sauvegardes incrmentielles
Nous ne dtaillerons pas ici ces fonctionnalits (certaines ont t abordes dans ce cours en
mode HyperFileSQL Classic). Nous vous conseillons de consulter laide en ligne pour plus de
dtails sur ces sujets.
N
o
t
e
s
La fonction HOuvreConnexion permet toujours de repasser en mode HyperFi-
leSQL Classic : il suffit de lui prciser le chemin du rpertoire contenant les
fichiers de donnes HyperFileSQL Classic.
GAF WinDev.book Page 294 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 295 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 5.3. ADMINISTRER UNE BASE DE
DONNES CLIENT/SERVEUR
Ce que vous allez apprendre dans cette leon ...
Le Centre de Contrle HyperFileSQL
Crer un utilisateur dans le Centre de Contrle HyperFileSQL
Sauvegarder la base de donnes
Dure estime : 20 mn
GAF WinDev.book Page 295 Jeudi, 5. juillet 2012 9:16 09
296 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Maintenant que nous savons crer/migrer une application en mode HyperFileSQL 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 HyperFileSQL, ...)
une administration ralise grce au Centre de Contrle HyperFileSQL.
Configuration des postes
Pour utiliser une base HyperFileSQL Client/Serveur, il est ncessaire dinstaller un serveur Hyper-
FileSQL sur le poste serveur. Il est possible dutiliser plusieurs serveurs HyperFileSQL sur le mme
poste, utilisant des ports diffrents. Sur chaque serveur, une ou plusieurs bases de donnes peu-
vent tre installes.
Par exemple, il est possible dinstaller sur le mme poste un serveur HyperFileSQL de tests, avec
une base de donnes de tests, et un serveur HyperFileSQL de production, utilisant un port diff-
rent.
Le Centre de Contrle HyperFileSQL
Le Centre de Contrle HyperFileSQL permet de raliser toutes les oprations dadministration des
serveurs et des bases de donnes HyperFileSQL Client/Serveur.
Nous allons voir les fonctionnalits les plus importantes.
Pour lancer le Centre de Contrle HyperFileSQL et accder aux donnes :
1. Dans lditeur, slectionnez loption "Outils .. Centre de Contrle HyperFileSQL". La fentre
de bienvenue du Centre de Contrle HyperFileSQL saffiche. Lanalyse du projet en cours est
automatiquement slectionne.
Validez lcran. Le Centre de Contrle HyperFileSQL apparat.
2. Cliquez sur loption "Fichier HyperFileSQL Client/Serveur". La liste des fichiers de donnes
GAF WinDev.book Page 296 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 297 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
au format HyperFileSQL Client/Serveur saffiche.
Le Centre de Contrle liste ici les fichiers de donnes trouvs dans lanalyse lie au projet en
cours. Aucune connexion nest ralise.
3. Pour visualiser les donnes des fichiers, double-cliquez sur un des fichiers de donnes
dans la liste gauche. Le Centre de Contrle HyperFileSQL affiche alors une fentre de con-
nexion permettant de raliser la connexion effective au serveur HyperFileSQL Client/Serveur
utilis.
Indiquez si ncessaire le mot de passe et validez.
4. Les diffrentes informations sur les diffrents fichiers de donnes utilisant cette connexion
sont affiches.
Longlet "Contenu" affiche les enregistrements contenus dans les fichiers de donnes.
Longlet "Description" prsente les informations sur les fichiers de donnes (nombre
denregistrements, ...).
Depuis le Centre de Contrle HyperFileSQL, il est possible dadministrer toute la base de don-
nes HyperFileSQL Client/Serveur.
GAF WinDev.book Page 297 Jeudi, 5. juillet 2012 9:16 09
298 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Crer un compte utilisateur dans le Centre de Contrle
HyperFileSQL
Nous avons vu que lors de linstallation dun serveur HyperFileSQL 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 utili-
sateurs de lapplication ne sont pas des administrateurs. A chaque utilisateur (ou groupe dutilisa-
teurs), il est possible dassocier des droits.
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 COMPTE.
1. Dans le Centre de Contrle HyperFileSQL, cliquez sur licne et validez si ncessaire
la fermeture des connexions.
2. La fentre de bienvenue dans le Centre de Contrle HyperFileSQL saffiche.
3. Loption "Se connecter un serveur HyperFileSQL" est slectionne par dfaut. Indiquez les
caractristiques du serveur install dans la leon prcdente.
4. Les caractristiques du serveur HyperFileSQL sont affiches :
dans le panneau de gauche, le poste, le nom du serveur HyperFileSQL et la liste des bases
prsentes sur ce serveur sont affiches.
dans la partie droite de lcran, les diffrents onglets permettant de grer le serveur Hyper-
FileSQL sont affichs.
5. Dans la partie droite de lcran, slectionnez longlet "Utilisateurs et Groupes". Cet onglet
permet de grer les utilisateurs du serveur.
A
t
t
e
n
t
i
o
n
!
Les droits des utilisateurs spcifis dans le Centre de Contrle HyperFileSQL
sont des 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.
GAF WinDev.book Page 298 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 299 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Seul pour le moment lutilisateur "Admin" est prsent.
6. Pour crer un nouvel utilisateur, cliquez sur le bouton "Nouveau" (le plus gauche). Lcran
permettant de dfinir les caractristiques de lutilisateur apparat.
Saisissez par exemple les informations suivantes :
(utilisez par exemple "Test" galement comme mot de passe).
GAF WinDev.book Page 299 Jeudi, 5. juillet 2012 9:16 09
300 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite

7. 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 COMPTE.
Pour donner le droit de connexion la base de donnes :
1. Dans le Centre de Contrle HyperFileSQL, slectionnez la base de donnes "Mes Comptes".
2. Cliquez sur longlet "Droits".
3. Slectionnez lutilisateur "Test" dans la liste des utilisateurs.
4. Dans la liste des droits, slectionnez "Droit de se connecter au serveur (connexion crypte
et non crypte). Slectionnez la coche verte dans la colonne "Droit dfini".
5. Cliquez sur le bouton "Appliquer" prsent droite de la liste des droits. Le droit devient
effectif.
Pour donner le droit de lire le fichier COMPTE :
1. Dans le Centre de Contrle HyperFileSQL, slectionnez la base de donnes "Mes Comptes",
puis le fichier COMPTE.
2. Cliquez sur longlet "Droits".
3. Slectionnez lutilisateur "Test" dans la liste des utilisateurs.
4. Dans la liste des droits, slectionnez "Droit de lire les enregistrements dun fichier" et slec-
tionnez la coche verte dans la colonne "Droit dfini".
5. Cliquez sur le bouton "Appliquer" prsent droite de la liste des droits. Le droit devient
effectif.
De cette faon, il est possible de dfinir des droits :
sur le serveur HyperFileSQL
sur la base de donnes
N
o
t
e
s
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.
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 pour
quelques jours.
GAF WinDev.book Page 300 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 301 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
sur les fichiers de la base de donnes.
Dans notre exemple, lutilisateur "Test" pourra uniquement parcourir les enregistrements du
fichier COMPTE. 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).
Sauvegarder la base de donnes
La sauvegarde de la base de donnes peut tre ralise directement grce longlet "Sauvegar-
des". Cet onglet est disponible lors de la slection de la base de donnes dans le volet gauche du
Centre de Contrle HyperFileSQL.
N
o
t
e
s
La gestion des utilisateurs et de leurs droits peut galement tre effectue par
programmation grce aux fonctions WLangage. Pour plus de dtails, consultez
laide en ligne.
GAF WinDev.book Page 301 Jeudi, 5. juillet 2012 9:16 09
302 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Conclusion
Le Centre de Contrle HyperFileSQL est un outil complet dadministration de base de donnes,
permettant 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 HyperFileSQL est un outil redistribuable qui peut tre install chez les
clients possdant des bases de donnes HyperFileSQL Client/Serveur. Le Centre de Contrle
HyperFileSQL doit tre utilis par la personne administrant la base de donnes.
GAF WinDev.book Page 302 Jeudi, 5. juillet 2012 9:16 09
Partie 5 : Bases HyperFileSQL Client/Serveur 303 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 5.4. INSTALLATION EN CLIENTLE
Ce que vous allez apprendre dans cette leon ...
Comment installer une application Client/Serveur en clientle?
Dure estime : 5 mn
GAF WinDev.book Page 303 Jeudi, 5. juillet 2012 9:16 09
304 Partie 5 : Bases HyperFileSQL Client/Serveur (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Linstallation dune application Client/Serveur ncessite plusieurs options spcifiques. Ces
options sont prises en charge par lassistant de cration dinstallation de WinDev.
Nous allons crer la procdure dinstallation de notre application "Mes Comptes".
Lancement de lassistant de cration dinstallation
Pour lancer la procdure dinstallation dune application HyperFileSQL Client/Serveur :
1. Slectionnez loption "Atelier .. Crer la 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 HyperFileSQL Client/Serveur
Paramtrer les connexions HyperFileSQL Client/Serveur
Dployer les fichiers HyperFileSQL 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.
GAF WinDev.book Page 304 Jeudi, 5. juillet 2012 9:16 09
PARTIE 6
Requtes
GAF WinDev.book Page 305 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 306 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 307 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 6.1. CREZ UNE REQUTE DE
SLECTION
Ce que vous allez apprendre dans cette leon ...
Manipulations de lditeur de requtes.
Etape par tape, la ralisation dune requte.
Dure estime : 30mn
GAF WinDev.book Page 307 Jeudi, 5. juillet 2012 9:16 09
308 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Introduction
Une requte permet de dfinir une interrogation sur des fichiers de donnes. Lditeur de requ-
tes vous permettra par exemple de dcrire sans aucune programmation des interrogations du
type :
la liste des fournisseurs habitant une ville dont le nom commence par la lettre "P".
le nombre dannonces par ville.
la liste des clients qui ont le plus command.
Et ce, sur tous les types de bases (HyperFileSQL, Oracle, ...) !
Nous allons voir avec un exemple simple comment manipuler lditeur de requtes. Plus loin dans
ce cours, nous verrons une utilisation avance de lditeur de requtes.
Dans cette leon, vous verrez comment :
Faire une requte simple correspondant une liste avec une slection et un tri.
Faire une requte de comptage.
Faire une requte multi-fichiers.
!
Pour ouvrir le projet exemple :
1. Si ncessaire fermez le projet en cours. La fentre de bienvenue saffiche.
2. Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Faire des requtes (Exercice)".
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Faire des requtes (Exercice)".
!
Faites un "Go" du projet "Faire des requetes.WDP". Le programme se lance. La fentre ci-des-
sous apparat.
Vous pouvez parcourir les diffrentes options du menu et choisir des exemples de requtes.
E
x
e
m
p
l
e
Lexemple "Requtes" (exemple didactique) livr avec WinDev illustre lutilisation
des requtes avec WinDev. Cet exemple est accessible depuis le volet "Assis-
tants, Exemples et Composants" de WinDev.
GAF WinDev.book Page 308 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 309 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Votre premire requte
Nous allons lister les fournisseurs habitant une ville dont le nom commence par la lettre "P".
!
Crez une nouvelle requte :
1. Dans le menu, slectionnez "Fichier" puis "Nouveau".
2. Slectionnez "Requte". Lassistant de cration de requtes se lance :
Vous avez la possibilit dutiliser lassistant de cration de requtes ou de saisir directement le
code SQL de la requte (option "Code SQL").
Avec lassistant, vous pouvez raliser des requtes de type :
"Slection (SELECT)" : interrogation
"Ajout (INSERT)" : ajout dans un fichier de donnes
"Modification (UPDATE)" : modification dans un fichier de donnes
"Suppression (DELETE)" : suppression dans un fichier de donnes
"Union (UNION)" : combinaison de requtes de slection
Vous allez apprendre utiliser lditeur de requtes en effectuant des requtes simples : slec-
tions de clients, comptages ... vous pourrez ensuite approfondir vos connaissances en manipulant
et en testant tous les types de requtes.
!
Pour lister les fournisseurs habitant une ville dont le nom commence par la lettre "P", nous
allons raliser une requte de slection. Passez lcran suivant.
!
Slectionnez les rubriques qui constitueront le rsultat de la requte.
Dans la liste de gauche :
1. Double-cliquez sur le fichier "FOURNISSEUR".
A
t
t
e
n
t
i
o
n
!
La saisie directe de code SQL est destine aux utilisateurs matrisant le langage
SQL ! Consultez laide en ligne pour obtenir la liste des fonctions SQL reconnues
par WinDev (mot-cl : "SQL, Langage SQL").
GAF WinDev.book Page 309 Jeudi, 5. juillet 2012 9:16 09
310 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Double-cliquez sur les rubriques "Societe", "NomFournisseur", "CodePostal" et "Ville". Ces
rubriques apparaissent au milieu de la fentre.
!
Pour obtenir les fournisseurs prsents dans une ville dont le nom commence par "P", nous
allons appliquer une condition de slection sur la ville.
La condition de slection est la suivante : "Nous dsirons les fournisseurs situs dans une
ville commenant par P".
!
Slectionnez la rubrique "Ville" au centre. Dans les "Actions" sur la droite, cliquez sur le bouton
"Condition de slection" puis sur "Nouvelle condition".
La rubrique "FOURNISSEUR.Ville" est automatiquement slectionne.
Slectionnez la condition : "commence par".
Slectionnez loption "la valeur".
GAF WinDev.book Page 310 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 311 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Saisissez la valeur "P" et validez.
!
Nous allons maintenant indiquer le critre de tri.
Nous allons trier le rsultat par "NomFournisseur".
!
Slectionnez la rubrique "NomFournisseur" au centre puis cliquez dans les "Actions" sur le
bouton "Trier" et slectionnez loption "Trier sur la rubrique slectionne".
Le tri sera croissant :
!
Validez. Une flche rouge avec le numro 01 apparat la droite de la rubrique "NOMFOURNIS-
SEUR". Cette flche indique quun tri croissant est fait sur cette rubrique. Le chiffre "01" indi-
que que ce sera le premier tri ralis.
!
La requte est cre. Nous allons lui donner un nom et la sauvegarder.
1. En haut de lcran, saisissez le nom "REQ_FournisseurVilleP".
2. Saisissez le libell "Fournisseurs dans une ville commenant par P".
3. Validez.
GAF WinDev.book Page 311 Jeudi, 5. juillet 2012 9:16 09
312 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite

La reprsentation graphique de la requte est la suivante :
!
Cliquez sur pour sauvegarder la requte. Validez la fentre de sauvegarde. Il ne reste plus
qu tester la requte.
GAF WinDev.book Page 312 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 313 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Cliquez sur le bouton "GO". Le rsultat saffiche dans une table :
Si vous faites un clic droit sur la table affichant le rsultat de la requte, un menu contextuel appa-
rat. Vous avez alors la possibilit dexporter le rsultat vers :
Microsoft Excel.
un fichier XML (eXtensible Markup Language)
Microsoft Word.
GAF WinDev.book Page 313 Jeudi, 5. juillet 2012 9:16 09
314 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 6.2. REQUTES AVEC COMPTAGE
Ce que vous allez apprendre dans cette leon ...
Manipulations de lditeur de requtes.
Etape par tape, la ralisation dune requte avec comptage.
Dure estime : 20mn
GAF WinDev.book Page 314 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 315 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ralisation dune requte avec comptage
Nous allons maintenant crer une requte qui effectue un comptage. Cette requte permet de
comptabiliser le nombre doccurrences dune valeur dans un fichier de donnes.
Nous allons compter le nombre de clients par ville.
!
Si ncessaire, dans le menu de WinDev, slectionnez loption "? .. Guide dAuto-formation ..
Faire des requtes (Exercice)".
!
Crez une nouvelle requte :
1. Dans le menu, slectionnez "Fichier" puis "Nouveau".
2. Slectionnez "Requte".
3. Nous allons raliser une requte de "slection" (Option "Slection").
4. Passez lcran suivant. Nous allons slectionner les rubriques rcuprer dans le rsul-
tat de la requte.
!
Nous devons afficher la ville. Dans la liste de gauche (liste des fichiers de donnes et des
requtes disponibles), slectionnez la rubrique "Ville" du fichier "CLIENT" (par un double-clic).
!
Pour crer une rubrique de comptage :
1. Slectionnez au centre la rubrique "Ville"
2. Cliquez dans les "Actions" sur le bouton "Compter".
3. Slectionnez dans le menu : "Compter sur la rubrique slectionne".
4. Validez.
GAF WinDev.book Page 315 Jeudi, 5. juillet 2012 9:16 09
316 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Laction "Compter les enregistrements" est ajoute dans le rsultat de la requte.
Comme nous voulons afficher toutes les villes, slectionnez nouveau la rubrique "VILLE" du
fichier "CLIENT" (par un double-clic). La rubrique est affiche au centre de lcran.
!
La requte est cre. Nous allons lui donner un nom et la sauvegarder.
1. En haut de lcran, saisissez le nom "REQ_NbClientparVille".
2. Saisissez le libell "Nombre de clients par ville".
3. Validez.
La reprsentation graphique de la requte est la suivante :
La rubrique "Comptage_1" contient le comptage des enregistrements dcrit plus haut.
!
Cliquez sur pour sauvegarder la requte. Il ne reste plus qu tester la requte.
!
Cliquez sur le bouton .
GAF WinDev.book Page 316 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 317 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 6.3. REQUTES SOMME
Ce que vous allez apprendre dans cette leon ...
Manipulations de lditeur de requtes.
Etape par tape, la ralisation dune requte "Somme".
Dure estime : 20mn
GAF WinDev.book Page 317 Jeudi, 5. juillet 2012 9:16 09
318 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ralisation dune requte "Somme"
Nous allons maintenant crer une requte qui effectue une somme. Nous allons faire un cumul
dune valeur dun fichier de donnes.
Nous allons calculer le total de toutes les commandes par client (le Chiffre dAffaires par client).
!
Dans le menu de WinDev, slectionnez loption "? .. Guide dAuto-formation .. Faire des requ-
tes (Exercice)".
!
Crez une nouvelle requte :
1. Dans le menu, slectionnez "Fichier .. Nouveau".
2. Slectionnez "Requte".
3. Nous allons raliser une requte de slection. Slectionnez loption "Slectionner
(SELECT)". Passez lcran suivant.
Nous allons slectionner les rubriques rcuprer dans le rsultat de la requte.
Nous afficherons tout dabord le nom du client et la ville du client.
!
Sur la gauche, slectionnez les rubriques "NomClient" et "Ville" du fichier "CLIENT" (par un dou-
ble-clic).
Ensuite, nous devons slectionner la rubrique sur laquelle nous allons faire la somme (MontantTo-
tal dans cet exemple).
!
Sur la gauche, slectionnez la rubrique "MontantTotal" du fichier "COMMANDE" (par un dou-
ble-clic).
!
Pour effectuer la somme des valeurs de "MontantTotal" :
1. Slectionnez la rubrique "MontantTotal" au centre.
2. Dans les "Actions", sur la droite, slectionnez "Somme".
3. Validez.
GAF WinDev.book Page 318 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 319 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La somme des "MontantTotal" 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).
Vous pouvez ainsi vrifier que vous ne vous tes pas tromp par rapport lobjectif de votre
requte.
!
La requte est cre. Nous allons lui donner un nom et la sauvegarder.
1. En haut de lcran, saisissez le nom "REQ_CAparClient".
2. Saisissez le libell "Somme des commandes par client".
3. Validez.
La reprsentation graphique de la requte est la suivante :
La reprsentation graphique correspond une "jointure". La requte utilise deux sources de don-
nes (les fichiers "CLIENT" et "COMMANDE").
!
Cliquez sur pour sauvegarder la requte. Il ne reste plus qu tester la requte.
!
Cliquez sur le bouton .
GAF WinDev.book Page 319 Jeudi, 5. juillet 2012 9:16 09
320 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 6.4. LE LANGAGE SQL
Ce que vous allez apprendre dans cette leon ...
Les principaux ordres du langage SQL.
Dure estime : 15mn
GAF WinDev.book Page 320 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 321 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Code source dune requte
Dans WinDev, la requte est reprsente dans lditeur sous une forme graphique. Nous allons
dcouvrir maintenant le code source correspondant une requte. Le langage utilis pour prsen-
ter une requte est le langage SQL. Il sagit ici dune prsentation de SQL et non pas dun cours
complet (il existe des livres entiers sur le sujet !).
Nous allons visualiser le code source SQL de la requte cre dans la leon prcdente.
!
Ouvrez la requte "REQ_CAparClient".
Si vous navez pas prcdemment cr cette requte, ouvrez la requte
"REQ_SommeCommandeParClient" prsente dans le rpertoire "\Autoformation\Corri-
gs\Faire des requtes".
!
Dans le menu, slectionnez loption "Requte .. Code SQL".
La requte en langage SQL est compose de diffrents mots-cls :
linstruction SELECT
linstruction FROM
la clause WHERE
la clause GROUP BY
WinDev permet de passer trs simplement de la description graphique dune requte au code SQL
de cette requte et inversement.
Pour afficher le code SQL dune requte cre sous lditeur de requtes, slectionnez loption
"Requte .. Code SQL".
Pour afficher la reprsentation graphique dune requte cre en code SQL, slectionnez loption
"Requte .. Rtro-analyse de la requte" dans lditeur de requtes.
A
t
t
e
n
t
i
o
n
!
Veillez bien respecter lenchanement de ces ordres. Vous ne pouvez pas inver-
ser cet enchanement.
GAF WinDev.book Page 321 Jeudi, 5. juillet 2012 9:16 09
322 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les ordres SQL
Linstruction SELECT
Linstruction SELECT permet de dfinir la liste des rubriques et des calculs visualiser dans le
rsultat. La syntaxe est la suivante :
Chaque rubrique peut tre renomme (on parle dalias) en utilisant le mot-cl AS. Par exemple :
Dans cet exemple, la rubrique NomClient du fichier CLIENT est renomme en Nom.
NomRubriqueXX peut tre soit une rubrique associe un fichier de donnes, soit une formule de
calcul.
Linstruction FROM
Linstruction FROM permet de dfinir la liste des fichiers de donnes partir desquels seront
extraits les rubriques et les calculs. La syntaxe est la suivante :
FichierXX correspond un des fichiers de donnes prsent dans lanalyse. Lutilisation de AS est
possible.
La clause WHERE
La clause WHERE contient les conditions de slection ainsi que les conditions de jointure. Ces
conditions permettent de filtrer les enregistrements issus des fichiers de la base de donnes.
Seuls les enregistrements vrifiant la ou les conditions seront rcuprs dans le rsultat.
Une jointure permet de faire correspondre un enregistrement dun fichier lenregistrement dun
fichier reli. Par exemple, une jointure entre les fichiers CLIENT et COMMANDE permettra de con-
natre toutes les commandes de chaque client.
La syntaxe est la suivante :
Les oprateurs ET et OU permettent de raliser une opration logique entre deux conditions.
Loprateur ET indique que les deux conditions doivent tre vrifies en mme temps.
Loprateur OU indique quune des deux conditions ou les deux conditions doivent tre vri-
fies.
La clause WHERE nest pas obligatoire. Si ce mot-cl nest pas indiqu, tous les enregistrements
de tous les fichiers de donnes seront slectionns.
SELECT NOMRUBRIQUE1, NOMRUBRIQUE2 ...
CLIENT.NOMCLIENT AS NOM
FROM FICHIER1, FICHIER2 ...
WHERE CONDITION1 ET/OU CONDITION2
GAF WinDev.book Page 322 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 323 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La clause GROUP BY
La clause GROUP BY permet dindiquer les rubriques ou formules de regroupement lorsquil y a un
calcul. Par exemple, dans la requte que nous avons ralise prcdemment, le calcul portait sur
la somme des commandes par client; cest--dire que les commandes taient cumules pour cha-
que client. Le regroupement des commandes tait donc ralis par client.
La syntaxe est la suivante :
RubriqueXX correspond une rubrique dun des fichiers de donnes ou une formule.
La clause ORDER BY
La clause ORDER BY permet dindiquer les critres de tri de la requte. Les critres de tri permet-
tront de classer le rsultat de la requte.
La syntaxe est la suivante :
RubriqueXX correspond une rubrique dun des fichiers de donnes ou une formule.
GROUP BY RUBRIQUE1, RUBRIQUE2 ...
ORDER BY RUBRIQUE1, RUBRIQUE2 ...
N
o
t
e
s
Lditeur de requtes gnre automatiquement le code SQL. Cest galement un
moyen didactique de se former ce langage!
GAF WinDev.book Page 323 Jeudi, 5. juillet 2012 9:16 09
324 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 6.5. UTILISATION DES REQUTES
Ce que vous allez apprendre dans cette leon ...
Utilisation des requtes dans les tats.
Utilisation des requtes dans les champs (listes, combos, tables, zones rptes).
Utilisation des requtes en WLangage.
Dure estime : 15mn
GAF WinDev.book Page 324 Jeudi, 5. juillet 2012 9:16 09
Partie 6 : Requtes 325 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Utilisation dune requte depuis un tat
Lors de la cration dun tat, vous pouvez choisir la source de donnes. La source de donnes
peut tre une requte, un fichier de donnes, ... Il est possible de faire un tat qui travaille directe-
ment sur le rsultat dune requte (pour plus de dtails, consultez la leon sur les tats,
page 329).
Utilisation dune requte depuis un champ
Comme pour les tats, lors de la cration dun champ table, dune liste, dune combo ou dune
zone rpte, il est possible de dfinir la source de donnes pour le remplissage. Cette source
peut tre un fichier de donnes ou une requte.
Utilisation dune requte depuis le WLangage
Vous pouvez galement utiliser une requte comme si vous utilisiez un fichier de donnes. Vous
devez uniquement initialiser lexcution de votre requte avec la fonction HExcuteRequte. Lors-
que votre parcours est termin, utilisez la fonction HAnnuleDclaration. Cette fonction optionnelle
permet dannuler la dfinition de la requte. Votre parcours peut seffectuer normalement avec
les fonctions HLitPremier et HLitSuivant :
// Initialise la requte
HExcuteRequte(MaRequte)
SI ErreurDtecte ALORS
Erreur("Erreur dinitialisation de la requte"+RC+...
HErreurInfo())
RETOUR
FIN
// lecture du premier enregistrement de la requte
HLitPremier(MaRequte)
TANTQUE PAS HEnDehors()
// Traitement sur lenregistrement de la requte
// lecture de lenregistrement suivant
HLitSuivant()
FIN
HAnnuleDclaration(MaRequte) //optionnel
N
o
t
e
s
Offrez la possibilit aux utilisateurs de vos applications de crer eux-mmes leurs
tats et requtes (ou de modifier des tats ou des requtes que vous mettez
leur disposition) !
Il suffit de livrer le logiciel "Etats et requtes" avec votre application. Pour plus de
dtails, consultez le chapitre "Les tats", page 363.
GAF WinDev.book Page 325 Jeudi, 5. juillet 2012 9:16 09
326 Partie 6 : Requtes (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
GAF WinDev.book Page 326 Jeudi, 5. juillet 2012 9:16 09
PARTIE 7
Etats
GAF WinDev.book Page 327 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 328 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 329 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 7.1. VOTRE PREMIER ETAT
Ce que vous allez apprendre dans cette leon ...
Vocabulaire de base.
Etape par tape, la construction dun tat.
Dure estime : 30mn
GAF WinDev.book Page 329 Jeudi, 5. juillet 2012 9:16 09
330 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Vocabulaire de base
Avant daborder les mthodes d'impression, il est important de rappeler le vocabulaire de base
pour faire bonne impression!
Fonte : La fonte dfinit la forme du caractre (paisseur de trait, espacement entre
caractres, ...). Par exemple, ce document est imprim en fonte "Franklin Gothic" (les exemples
de programme en fonte "Courier").
Les fontes sont frquemment appeles polices par "abus" de langage : nous parlerons donc plu-
tt de police que de fonte.
Style : Le style peut tre italique, gras, soulign, ... Il ne modifie pas la hauteur des caractres.
Hauteur du caractre : La hauteur du caractre s'exprime en "point Didot". Un point vaut
0,3759 mm. C'est une unit utilise en imprimerie. La hauteur des caractres de ce manuel est
par exemple de 10 points. Les hauteurs de 10 et 12 points sont des hauteurs courantes pour
des documents habituels. La hauteur des caractres est indpendante de la dfinition de
l'imprimante.
Une hauteur de 16 ou 24 points permet de mettre en valeur un titre.
Une hauteur de 6 points sera difficilement lisible, surtout si la dfinition de l'imprimante est
mauvaise.
Police : La police est la forme avec laquelle le texte sera imprim. Elle correspond la combinai-
son de la fonte, du style, de la hauteur et de la couleur du caractre.
Dfinition de l'imprimante : Chaque imprimante a une dfinition propre. Plus la dfinition est
importante, plus convenable sera l'impression. Par exemple, une imprimante 600 DPI (dots
per inch) fournira des impressions plus nettes qu'une imprimante 300 DPI. Le type d'impres-
sion (laser, jet d'encre, matricielle 8 ou 24 aiguilles,...) influe galement sur la qualit d'impres-
sion. La qualit du papier galement, il ne faut pas l'oublier !
Proportionnelle / Fixe : Une police "fixe" prsentera toujours la mme largeur de caractre, quel
que soit le caractre. Un "i" aura la mme taille qu'un "m". Une police fixe bien connue est "Cou-
rier".
Une police "proportionnelle" utilisera une taille diffrente en fonction des lettres. Cette docu-
mentation est crite dans une police proportionnelle.
Un Etat est le nom donn la reprsentation dune dition. WinDev vous permet de construire des
tats. Lors de lexcution (ou de ldition) de ltat, un document est cr.
GAF WinDev.book Page 330 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 331 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Il existe diffrentes formes dtats :
Vierge
Fiche
Etiquette
Tableau
Tableau crois
Etat multicolonne
Mailing
Formulaire
Composite
Agenda ou planning
Un Bloc est le nom donn une partie de ltat. Un tat est constitu dun ensemble de blocs. Les
diffrents blocs dun tat sont les suivants :
dbut de document
haut de page
haut de rupture
corps
bas de rupture
bas de page
fin de document
Il existe galement dautres blocs que nous ne dtaillerons pas ici :
bloc ditration
complment de corps
Ces diffrents blocs ne sont pas tous obligatoires. Ils peuvent tre supprims lors de la concep-
tion de ltat. Seul le bloc "Corps" est obligatoire.
Vous avez galement la possibilit dimprimer des tats avec codes-barres (automatiquement
gnrs par WinDev), des tats avec tiquettes, des tats multi-colonnes, ...
GAF WinDev.book Page 331 Jeudi, 5. juillet 2012 9:16 09
332 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Imprimer avec l'diteur d'tats ou imprimer en WLangage
WinDev propose deux mthodes dimpression :
l'diteur d'tats qui permet de crer des tats imprims d'une faon "conviviale".
par programmation en WLangage.
Par exemple, il est courant d'imprimer une liste dont les donnes proviennent d'un fichier.
Pour imprimer le contenu d'un fichier de donnes, l'utilisation de l'diteur d'tats est conseille.
Vous dcouvrirez plus loin dans ce guide comment effectuer une impression par programmation.
Nous allons tout dabord tudier quelques exemples dtats raliss avec lditeur dtats, ensuite
nous verrons en dtail comment les raliser.
Quelques exemples dtats
!
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
"Faire des ditions (Exercice)". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Faire des ditions (Exercice)"
!
Lancez le test du projet (icne ). Le programme se lance. La fentre ci dessous apparat.
Parcourez les diffrentes options du menu et testez les diffrentes ditions.
Maintenant, passons la ralisation!
!
Pour apprendre utiliser lditeur dtats, nous allons crer quelques ditions dans le projet
que vous venez douvrir.
Ce projet utilise des fichiers de donnes. Afin de vous familiariser rapidement avec les donnes,
nous avons pris pour exemple des fichiers de donnes simples :
un fichier CLIENT
un fichier COMMANDE
un fichier LIGNECDE
un fichier PRODUIT
un fichier FOURNISSEUR
GAF WinDev.book Page 332 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 333 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ci-dessous la modlisation logique (MERISE) des donnes utilises (appele MLD) :
Les tats crer
!
Pour apprendre utiliser lditeur dtats, nous allons crer les exemples suivants :
Liste des clients trie par ville
Impression des commandes par client
Cration de votre premier tat
Cration de ltat : Liste des clients trie par ville
Nous allons imprimer la liste des clients trie par ville. Pour cela, nous allons utiliser un tat de
type tableau, qui permet de reprsenter clairement une liste de donnes.
!
Pour crer un tat, slectionnez loption "Fichier .. Nouveau". Dans la fentre qui apparat,
choisissez "Etat".
GAF WinDev.book Page 333 Jeudi, 5. juillet 2012 9:16 09
334 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lassistant de cration dtats propose plusieurs types dtats :
!
Slectionnez "Tableau". Passez lcran suivant.
!
Slectionnez la source des donnes de ltat.
Ltat va tre bas sur une requte qui nexiste pas encore. Slectionnez "Dune nouvelle
requte". Passez lcran suivant.
!
Lassistant de description dune requte saffiche. Cet cran permet de slectionner les
fichiers contenant les donnes imprimer. Nous allons imprimer des donnes provenant du
fichier CLIENT.
GAF WinDev.book Page 334 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 335 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Cliquez sur le signe "+" gauche du fichier CLIENT. Slectionnez les rubriques imprimer (par
un double-clic) :
NomClient
CodePostal
Ville
IdClient
!
Pour trier les clients par ville, il faut choisir un critre de tri :
1. Slectionnez la rubrique trier : cliquez sur "Ville" au milieu de lcran.
2. Cliquez en haut droite sur le bouton "Trier". Choisissez loption "Trier sur la rubrique slec-
tionne".
3. Choisissez "Croissant" et validez. Une flche rouge apparat droite de la rubrique "Ville"
ainsi que le numro "01". Cette flche indique quun tri croissant est fait sur cette rubrique. Le
numro "01" indique que ce tri sera le premier tri effectu.
GAF WinDev.book Page 335 Jeudi, 5. juillet 2012 9:16 09
336 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Nous allons valider cet cran. Passez lcran suivant.
Lassistant demande dindiquer sil y a une rupture.
!
Rpondez "Oui". Passez lcran suivant.
N
o
t
e
s
Qu'est-ce qu'une 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 en-tte de rupture et dune fin de rupture.
Les informations communes aux diffrentes lignes sont prsentes dans len-tte
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 code postal et permet
de regrouper tous les clients dune mme commune.
GAF WinDev.book Page 336 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 337 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
La rupture seffectue sur la ville. Passez lcran suivant.
!
Vous allez ensuite indiquer dans quel ordre sont imprimes les rubriques et leur rpartition
dans les diffrents blocs.
Dans notre exemple, le code postal et la ville seront dans le bloc "haut de rupture 1" et le nom
dans le corps.
Dans la colonne de droite, slectionnez "haut de rupture 1" pour "CodePostal".
Dcochez la rubrique "IdClient".
Les flches situes droite du tableau permettent de modifier lordre des rubriques. Vous pouvez
par exemple afficher la ville avant le nom.
!
Passez lcran suivant. Cet cran permet de dfinir la mise en page de ltat.
GAF WinDev.book Page 337 Jeudi, 5. juillet 2012 9:16 09
338 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous garderons les valeurs par dfaut avec lorientation "Portrait".
!
Passez lcran suivant.
!
Slectionnez par exemple le gabarit "Pure Summer". Passez lcran suivant.
N
o
t
e
s
Marges dimpression
Lors du choix des marges d'impression, n'oubliez pas de tenir compte des mar-
ges physiques des imprimantes. Les marges physiques sont les marges rser-
ves par l'imprimante dans lesquelles il n'est pas possible d'imprimer. De plus,
les marges physiques diffrent en fonction des modles dimprimante.
GAF WinDev.book Page 338 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 339 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Il ne nous reste plus qu donner un nom et un libell ltat et le sauvegarder.
1. Saisissez le nom "ETAT_ClientParVille".
2. Saisissez le titre "Liste des clients par ville".
3. Validez.
4. Enregistrez ltat dans le dossier par dfaut. Validez la fentre denregistrement. Ltat est
termin. Nous allons immdiatement le tester pour voir le rsultat.
!
Excutez cet tat en cliquant sur l'icne "GO" de la barre d'icnes.
La destination de limpression peut tre au choix :
GAF WinDev.book Page 339 Jeudi, 5. juillet 2012 9:16 09
340 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Choisissez "Aperu avant impression" et validez.
L'excution de l'tat s'affiche l'cran.
Vous pouvez :
Directement imprimer la page en cours ou la totalit du document en cliquant sur limprimante
.
Crer un duplicata.
Slectionner un niveau de zoom plus ou moins important avec les icnes .
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.
GAF WinDev.book Page 340 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 341 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 7.2. ETATS STATISTIQUES
Ce que vous allez apprendre dans cette leon ...
Lier plusieurs fichiers de donnes dans un tat.
Faire des regroupements dans un tat.
Dure estime : 30mn
GAF WinDev.book Page 341 Jeudi, 5. juillet 2012 9:16 09
342 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Nous allons maintenant diter la liste des commandes par client. Cette liste sera trie sur le nom
du client. Pour chaque client, nous imprimons la commande et le dtail de la commande (lignes)
avec un sous-total pour chaque commande. Nous cherchons obtenir un rsultat semblable la
reprsentation ci-dessous :
Ltat que nous allons raliser utilise plusieurs fichiers de donnes comme source.
Etape par tape
!
Ouvrez si ncessaire le projet "Faire des editions.WDP". Slectionnez loption "? .. Guide
dauto-formation .. Faire des ditions (Exercice)". Le projet se charge.
GAF WinDev.book Page 342 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 343 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour crer un nouvel tat, slectionnez loption "Fichier .. Nouveau". Dans la fentre qui appa-
rat, choisissez "Etat".
!
Slectionnez "Tableau" et passez lcran suivant.
!
Slectionnez "Dune nouvelle requte" et passez lcran suivant. La requte nexistant pas,
nous allons la crer.
Nous allons imprimer des donnes provenant des fichiers CLIENT, COMMANDE, PRODUIT et
LIGNECDE.
GAF WinDev.book Page 343 Jeudi, 5. juillet 2012 9:16 09
344 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Slectionnez les rubriques suivantes imprimer (par un double-clic) :
Le fichier CLIENT :
NomClient
RaisonSociale
CodePostal
Ville
Le fichier COMMANDE :
IdCommande
DateCommande
Le fichier PRODUIT :
Descriptif
Le fichier LIGNECDE :
Reference
QteCommandee
Montant
Nous allons trier les rsultats par nom de client et par numro de commande.
!
Dans la liste au centre, slectionnez la premire rubrique sur laquelle vous dsirez effectuer
un tri :
1. Cliquez sur la rubrique "NomClient". Dans le menu contextuel (clic droit de la souris), slec-
tionnez "Trier la rubrique .. Trier par ordre croissant".
GAF WinDev.book Page 344 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 345 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Cliquez ensuite sur la rubrique "IdCommande". Dans le menu contextuel (clic droit de la
souris), slectionnez "Trier la rubrique .. Trier par ordre croissant".
Une flche rouge apparat droite des rubriques "NomClient" et "IdCommande". Le chiffre situ
ct de chaque flche indique lordre de priorit des tris.
!
Nous allons valider cet cran. Passez lcran suivant.
!
Nous allons maintenant indiquer les ruptures. Choisissez "Oui". Passez lcran suivant.
Par dfaut, une rupture est propose sur les rubriques "NomClient" et "IdCommande", car ce sont
les critres de tri dj dfinis.
GAF WinDev.book Page 345 Jeudi, 5. juillet 2012 9:16 09
346 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Dslectionnez la rubrique NomClient (cliquez sur la coche).
Passez lcran suivant.
Vous allez ensuite dfinir la rpartition des rubriques.
Les informations concernant le client seront dans le haut de rupture 1. Le corps de ldition con-
cerne le dtail de chaque commande.
!
Rpartissez les rubriques comme indiqu dans limage ci-dessous :
!
Passez lcran suivant.
Il faut maintenant indiquer sil y a des sommes ou des comptages dans ltat. Nous allons addi-
tionner le montant des lignes de commandes.
GAF WinDev.book Page 346 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 347 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cette somme sera place dans une rupture. Nous allons conserver uniquement la somme sur le
montant. Vous allez indiquer quil ny a aucun calcul sur la quantit.
!
Passez lcran suivant.
!
Nous conserverons les paramtres par dfaut pour le format de la page.
!
Passez lcran suivant.
!
Choisissez un gabarit et passez lcran suivant
!
Donnez pour terminer :
un nom ltat : "ETAT_CommandesParClient".
un libell : "Liste des commandes par client"
!
Validez. Ltat tant trop grand, lditeur dtats propose de changer le format de ltat ou de
le rduire.
GAF WinDev.book Page 347 Jeudi, 5. juillet 2012 9:16 09
348 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Slectionnez le mode paysage et validez.
Ltat apparat sous lditeur :
!
Modifiez si ncessaire la mise en forme des champs.
!
Nous allons maintenant ajouter un interrupteur dans cet tat.
Les interrupteurs dans les tats permettent notamment de reproduire des formulaires (par
exemple, les cases cocher "Monsieur", "Madame", ...).
Une rubrique du fichier "CLIENT" indique si le client possde un compte chez le fournisseur (en
loccurrence chez nous). Cette rubrique peut prendre la valeur "Oui" ou "Non", "vrai" ou "faux".
!
Slectionnez loption "Insertion .. Nouveau champ .. Interrupteur". Placez linterrupteur sur
ltat dans le bloc "Haut de rupture 1".
!
Affichez la description du champ Interrupteur (clic droit, "Description") :
1. Dans longlet "Gnral", saisissez le nom du champ, "INT_ENCOMPTE".
2. Dans longlet "Liaison" :
Cliquez sur "Autre rubrique".
GAF WinDev.book Page 348 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 349 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Slectionnez la rubrique "EnCompte" du fichier "CLIENT".
Validez. La rubrique est automatiquement ajoute la requte de base de ltat.
3. Validez la fentre de description du champ Interrupteur.
!
Ajoutez un champ Libell (option "Insertion .. Nouveau champ .. Libell") que vous positionne-
rez ct de linterrupteur et saisissez le texte "Client Enregistr".
!
Voici ltat tel quil apparat sous lditeur :
GAF WinDev.book Page 349 Jeudi, 5. juillet 2012 9:16 09
350 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Enregistrez ltat, et testez-le avec le bouton .
GAF WinDev.book Page 350 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 351 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 7.3. ETATS TABLEAU CROIS
Ce que vous allez apprendre dans cette leon ...
Etape par tape, la cration dun tat tableau crois.
Dure estime : 20mn
GAF WinDev.book Page 351 Jeudi, 5. juillet 2012 9:16 09
352 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
L'diteur d'tats offre galement la possibilit de crer des tats de type "Tableau Crois". L'tat
est alors constitu uniquement d'un tableau deux entres.
Exemple :
Contrairement aux autres types d'tats, l'tat "Tableau crois" est toujours bas sur une requte
intgre. Cette requte est cre grce l'assistant de cration de l'tat "Tableau crois". Vous
pourrez par ailleurs modifier cette requte une fois votre tat cr.
Etape par tape
Nous allons raliser un tat de synthse sur le chiffre daffaires par client et par anne. Ce
tableau peut tre reprsent de plusieurs faons :
en indiquant, pour chaque client, les diffrentes annes considres et le chiffre daffaires
correspondant.
en ralisant un tableau crois, de faon trier les rsultats la fois par client (vertical) et
par anne (horizontal). Cest cette mthode que nous allons utiliser.
!
Ouvrez si ncessaire le projet "Faire des editions.WDP". Slectionnez loption "? .. Guide
dauto-formation .. Faire des ditions (Exercice)". Le projet se charge.
!
Slectionnez dans le menu "Fichier .. Nouveau". Dans la fentre qui apparat, choisissez
"Etat".
!
Slectionnez "Tableau crois". Passez lcran suivant.
GAF WinDev.book Page 352 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 353 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Lassistant vous propose alors de choisir la rubrique qui servira de source de donnes pour les en-
ttes de colonnes. Vous pouvez ainsi dfinir la premire entre (ligne) de votre tableau crois.
!
Slectionnez la rubrique "DateCommande" dans le fichier "COMMANDE".
Lassistant vous propose alors trois choix (jour, mois et anne).
Choisissez "Anne". Passez lcran suivant.
!
Lassistant vous demande si vous souhaitez "borner" les dates. Ne cochez rien, nous allons
prendre toutes les commandes. Passez lcran suivant.
!
Lassistant vous demande maintenant de choisir la rubrique qui servira de source de donnes
pour les lignes. En fait, vous allez choisir la seconde entre (colonne) de votre tableau crois.
Slectionnez la rubrique "NomClient" dans le fichier "CLIENT".
!
Passez lcran suivant.
Lassistant vous demande maintenant de slectionner le type dinformation afficher dans
les cellules du tableau crois. Comme nous voulons afficher le Chiffre dAffaires par client et
GAF WinDev.book Page 353 Jeudi, 5. juillet 2012 9:16 09
354 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
par date, nous allons demander une somme des montants totaux de chaque commande pas-
se pour chaque client chaque anne.
!
Slectionnez "La somme de la rubrique :". Dans la liste qui apparat sur le ct, choisissez la
rubrique "MontantTotal" du fichier "COMMANDE" :
!
Passez lcran suivant.
Lassistant vous propose de calculer une somme par ligne et une somme par colonne. Nous
allons accepter ce calcul :
!
Passez lcran suivant. Ne changez rien la mise en page. Passez lcran suivant.
!
Slectionnez un gabarit (par exemple "Elegant"). Passez lcran suivant.
!
Vous allez donner un nom cet tat :
1. Saisissez le nom: "ETAT_TableauCrois".
2. Saisissez la description : "Synthse des commandes par client et par date".
3. Validez. Ltat tant trop grand, lditeur dtats propose de changer le format de ltat ou
GAF WinDev.book Page 354 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 355 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
de le rduire : slectionnez "Rduire le tableau". Ltat apparat sous lditeur dtats.
!
Modifiez si ncessaire le titre et la taille du titre des colonnes pour obtenir la mme mise en
page que ci-dessous.
Enregistrez ltat. Il ne reste plus qu tester en cliquant sur l'icne .
Vous venez de raliser facilement un tat tableau crois. Ce type dtat peut bien entendu tre uti-
lis pour dautres applications, notamment pour effectuer des comparatifs, des statistiques, ...
GAF WinDev.book Page 355 Jeudi, 5. juillet 2012 9:16 09
356 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 7.4. CHAMPS SPCIFIQUES
Ce que vous allez apprendre dans cette leon ...
La cration dun lien dans un tat.
La cration dun champ clicable (dans laperu)
Dure estime : 20mn
GAF WinDev.book Page 356 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 357 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Lditeur dtats de WinDev propose deux fonctionnalits originales au niveau des champs :
Les champs Lien, utilisables aussi bien dans les tats gnrs en HTML que dans les tats
affichs dans laperu avant impression.
Les champs lien permettent douvrir directement un site partir dun tat. Il est ainsi possi-
ble dimaginer un rcapitulatif de commande envoy par e-mail. Cet tat peut contenir un
lien vers le site de la socit, un lien pour envoyer un e-mail la socit, ...
Les champs clicables, utilisables uniquement dans laperu avant impression.
Dans ce cas, le clic sur un des champs de ltat dclenche un traitement spcifique, par
exemple laffichage de la fiche complte du client slectionn.
Dans laperu avant impression, ces deux types de champs sont facilement reprables grce
des petites toiles.
Manipulations pour crer un champ Lien
!
Ouvrez si ncessaire le projet "Faire des editions.WDP". Slectionnez loption "? .. Guide
dauto-formation .. Faire des ditions (Exercice)". Le projet se charge.
!
Ouvrez ltat "ETAT_FactureAvecLien.WDE" (par exemple en utilisant lexplorateur de projet).
Cet tat est prsent dans le perso-dossier "Corrigs" (affich en bas de lexplorateur de pro-
jet).
!
Affichez la description du champ "Lien". Ce lien permet linternaute de visiter le site de la
socit qui le facture.
Dans longlet "Gnral", cliquez sur le bouton [...] prsent cot du champ URL.
Remarque : Un champ Lien dans un tat peut afficher le contenu dune rubrique ou une URL.
Dans ce cas, il est possible de :
afficher une page dun site
se connecter un serveur FTP
GAF WinDev.book Page 357 Jeudi, 5. juillet 2012 9:16 09
358 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
tlcharger, ouvrir, afficher un fichier
envoyer un email
!
Testez ltat. Ce lien fonctionne en aperu avant impression (une toile prs du lien indique
que ce lien est clicable) ou en mode HTML.
Manipulations pour crer un champ clicable
!
Ouvrez si ncessaire le projet "Faire des editions.WDP". Slectionnez loption "? .. Guide
dauto-formation .. Faire des ditions (Exercice)". Le projet se charge.
!
Ouvrez ltat cr prcdemment "ETAT_ClientParVille" (ou ltat "ETAT_ClientVille" prsent
dans le dossier "Corrigs" si vous ne lavez pas cr). Cet tat liste les clients par ville. Nous
allons permettre lutilisateur de cliquer sur le nom du client pour voir le dtail des informa-
tions le concernant dans une fentre fiche.
!
Le projet contient dj la fentre ouvrir : "FEN_Fiche_Client". Cette fentre est prsente dans
le dossier "Corrigs". Ouvrez cette fentre sous lditeur de fentres (option CTRL E pour
rechercher la fentre et louvrir). Cette fentre a t cre par le RAD. Son code de dclaration
des globales a t modifi pour permettre dafficher le client dont lidentifiant est pass en
paramtre.
GAF WinDev.book Page 358 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 359 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Pour ouvrir directement la fentre "FEN_Fiche_Client" depuis laperu avant impression :
1. Sous lditeur dtats, cliquez sur le champ "RUB_NomClient".
2. Affichez le code de ce champ (option "Code" du menu contextuel).
3. Saisissez le code suivant dans le traitement "Clic sur RUB_NomClient" :
Ce code permet de :
ouvrir la fentre "FEN_Fiche_Client" en mode Modification.
passer en paramtre la fentre lidentifiant du client cliqu (cet identifiant est prsent
dans la requte intgre ltat).
4. Enregistrez et testez votre tat.
CAS ~="Modif"
SI IdClient<>0 ALORS
HLitRecherchePremier(CLIENT,IdClient,IdClient)
FIN
SI HNbEnr(CLIENT)=0 OU HEnDehors(CLIENT) ALORS
// ouvre une bote de dialogue pour informer l'utilisateur
Info("Le fichier ne contient aucun enregistrement.")
// ferme la fentre
Ferme
FIN
// On remplit les champs
FichierVersEcran()
FIN
Ouvre(FEN_Fiche_Client, "Modif", MaSource.IdClient)
GAF WinDev.book Page 359 Jeudi, 5. juillet 2012 9:16 09
360 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 7.5. EXCUTION DES ETATS
Ce que vous allez apprendre dans cette leon ...
Excution des tats en WLangage.
Dure estime : 10mn
GAF WinDev.book Page 360 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 361 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Excuter les tats en WLangage
Vous avez cr des tats qui ont t tests depuis l'diteur. Nous allons voir comment lancer lex-
cution dun tat depuis un programme.
La syntaxe gnrale dexcution dun tat est la suivante :
En excutant ce code, un cran daperu vous sera propos. Pour imprimer directement ltat
sans passer par une fentre de prvisualisation, supprimez la ligne :
Fonctions iAperu et iDestination
Les fonctions iAperu et iDestination permettent de slectionner la destination de limpression.
La syntaxe de la fonction iAperu est la suivante :
La fonction iAperu permet notamment dafficher ltat imprim directement lcran. Dans ce
cas, le paramtre <format de sortie> peut prendre les valeurs suivantes :
iImprimante : pour une sortie directe sur limprimante courante
iPage : pour afficher lcran la page complte
i2Pages : pour afficher 2 pages lcran
i100 : pour afficher la page en zoom 100%
Dautres constantes (utilisables avec la fonction iDestination ou iAperu) permettent dobtenir des
formats de sortie plus spcifiques :
iFichier : pour imprimer ltat dans un fichier texte
iHTML : pour imprimer ltat au format HTML
iHTMLSansCSS : pour imprimer ltat au format HTML sans feuille de styles
iPCL : pour imprimer ltat au format PCL
iPDF : pour imprimer ltat au format PDF
iRTF : pour imprimer ltat au format RTF
iXLS : pour imprimer ltat au format XLS
iXML : pour imprimer ltat dans un fichier XML
iFax : pour une sortie directe sur un fax.
N
o
t
e
s
WinDev permet dexcuter directement les tats depuis une application grce
aux fonctions du WLangage. Sachez que vous avez galement la possibilit de
rajouter du code pour effectuer des traitements spcifiques lintrieur de cha-
que bloc de ltat (par exemple : faire un calcul, afficher une bote de
dialogue ...).
// Prvisualisation de l'tat "Etiquetteclient"
iAperu(100)
// Impression de ltat
iImprimeEtat(Etiquetteclient)
iAperu(100)
iAperu(<format de sortie>)
GAF WinDev.book Page 361 Jeudi, 5. juillet 2012 9:16 09
362 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour plus de dtails sur la fonction iAperu ou la fonction iDestination, consultez laide en ligne
(mot-cl : "iAperu" ou "iDestination").
Fonction iImprimeEtat
La fonction iImprimeEtat permet dexcuter un tat. La syntaxe de cette fonction est la suivante :
Remarque
Dautres syntaxes sont possibles pour ces deux fonctions, consultez laide en ligne pour plus de
dtails (mots-cls : "Impression d'un tat", "iAperu", "iImprimeEtat").
iImprimeEtat(<Nom de ltat>)
N
o
t
e
s
Offrez la possibilit aux utilisateurs de vos applications de crer eux-mmes
leurs tats et requtes (ou de modifier des tats ou des requtes que vous met-
tez leur disposition) !
Il suffit de diffuser avec votre application le logiciel "Etats & Requtes". Pour plus
de dtails, consultez la leon suivante.
GAF WinDev.book Page 362 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 363 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 7.6. DIFFUSEZ "ETATS &
REQUTES" AVEC VOS APPLICATIONS
Ce que vous allez apprendre dans cette leon ...
A quoi sert le logiciel "Etats & Requtes".
Comment diffuser le logiciel "Etats & Requtes".
Comment utiliser le logiciel "Etats & Requtes".
Dure estime : 10mn
WinDev 17 version "Express" :
Cette fonctionnalit n'est pas disponible dans cette version d'valuation.
GAF WinDev.book Page 363 Jeudi, 5. juillet 2012 9:16 09
364 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation du logiciel "Etats & Requtes"
Le logiciel "Etats & 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 logiciel
"Etat & 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.
Lancement du logiciel "Etats & Requtes"
Pour que les utilisateurs finals personnalisent les tats de votre application ou crent leurs pro-
pres tats et leurs propres requtes, il suffit de lancer le logiciel "Etats & Requtes".
Pour permettre vos utilisateurs finals de lancer le logiciel "Etats & Requtes" :
soit affichez vos tats sous la fentre daperu avant impression. Les utilisateurs finals
pourront lancer le logiciel "Etats & Requtes" en cliquant licne .
soit ajoutez le menu "?" dans la fentre principale de votre application (option "Fentres ..
Menu principal .. 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 & Requtes" avec votre application
Pour diffuser le logiciel "Etats & Requtes" avec votre propre application WinDev, il est ncessaire
de :
indiquer au niveau du projet que lapplication autorise le lancement du logiciel "Etats &
Requtes".
dfinir si ncessaire au niveau de lanalyse les fichiers et rubriques qui seront utilisables
avec le logiciel "Etats & Requtes".
dfinir les tats et les requtes modifiables sous le logiciel "Etats & Requtes".
crer lexcutable et le programme dinstallation intgrant le logiciel "Etats & Requtes".
Nous allons dtailler ces diffrentes tapes. Vous pouvez raliser les manipulations suivantes sur
le projet "Faire des editions.WDP" que nous avons manipul jusqu prsent.
N
o
t
e
s
Le logiciel "Etats & Requtes" est gratuit et librement redistribuable avec vos
applications cres avec WinDev. Consultez la licence pour plus de dtails sur les
conditions de redistribution.
GAF WinDev.book Page 364 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 365 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Paramtrage du projet
Pour utiliser le logiciel "Etats & Requtes" partir de votre application, il est ncessaire de confi-
gurer le projet associ votre application.
!
Ouvrez si ncessaire le projet "Faire des editions.WDP". Slectionnez loption "? .. Guide
dauto-formation .. Faire des ditions (Exercice)". Le projet se charge.
!
Affichez longlet "Avanc" de la description du projet (option "Projet .. Description du projet").
!
Cochez loption "Autoriser le lancement de "Etats et Requtes"". Validez.
Paramtrage de lanalyse
Nous allons maintenant ouvrir lanalyse pour paramtrer les fichiers et rubriques utilisables sous
le logiciel "Etats & Requtes".
!
Ouvrez lanalyse (option "Projet .. Charger lanalyse").
Par dfaut, tous les fichiers de donnes et toutes leurs rubriques sont visibles et manipulables
avec le logiciel "Etats & Requtes". Si votre application contient des informations sensibles (mots
de passe, ...) vous pouvez rendre ces fichiers de donnes ou ces rubriques invisibles sous le logi-
ciel "Etats & Requtes".
Pour dfinir un fichier invisible sous le logiciel "Etats & Requtes" :
1. Sous lditeur danalyses, slectionnez le fichier de donnes voulu.
2. Affichez la fentre de description du fichier (option "Structure de fichiers .. Description des
fichiers de donnes" ou 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 & Requtes" :
1. Sous lditeur danalyses, slectionnez le fichier de donnes voulu.
2. Affichez la fentre de description du fichier (option "Structure de fichiers .. Rubriques" ou
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 rg-
nrer lanalyse (option "Analyse .. Gnration"). Une modification automatique des fichiers de
donnes est propose pour prendre en compte les modifications effectues.
N
o
t
e
s
A partir du logiciel "Etats & Requtes", lutilisateur ne peut pas ajouter, modifier
ou supprimer des enregistrements (les fonctions HAjoute, HModifie et HSup-
prime sont interdites). Il nest galement pas possible de crer ou de re-crer des
fichiers de donnes (les fonctions HCration et HCrationSiInexistant sont inter-
dites).
GAF WinDev.book Page 365 Jeudi, 5. juillet 2012 9:16 09
366 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Paramtrage des tats
Lors de la cration dun tat, il est possible de spcifier si cet tat est modifiable sous le logiciel
"Etats & Requtes".
Pour rendre un tat de votre application modifiable sous le logiciel "Etats & Requtes" :
1. Ouvrez ltat sous lditeur dtats.
2. Affichez la description de ltat (option "Etat .. Description de ltat").
3. Dans longlet "Dtail", cochez "Etat modifiable sous Etats et Requtes".
4. Cochez :
l'option "Interface modifiable uniquement" pour que l'interface de l'tat uniquement soit
modifiable sous Etats & Requtes.
l'option "Tout modifiable (interface et code)" pour que l'tat soit entirement modifiable
sous Etats & Requtes.
5. Validez et enregistrez ltat.
Paramtrage des requtes
Par dfaut, une requte nest pas modifiable sous le logiciel "Etats & Requtes". Lors de la cra-
tion dune requte, il est possible de spcifier si cette requte est modifiable sous le logiciel "Etats
& Requtes".
!
Pour rendre une requte de votre application modifiable sous le logiciel "Etats & Requtes" :
1. Ouvrez la requte sous lditeur de requtes.
2. Affichez la description de la requte (option "Requte .. Description de la requte").
3. Cliquez sur le bouton "Avanc".
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 & Requtes" se fait de la
mme faon que pour une application classique. Cest lors de la cration de la procdure dinstal-
lation, que vous pourrez indiquer les paramtres spcifiques au logiciel "Etats & Requtes".
!
Pour crer le programme dinstallation de votre application, slectionnez loption "Atelier ..
Crer la procdure dinstallation". Lassistant de cration dinstallation se lance. Cliquez sur le
lien "Installation".
1. Slectionnez "Crer lexcutable maintenant". La cration de lexcutable est ralise.
2. Lassistant de cration dinstallation se lance.
3. Choisissez une "Installation individuelle". Passez lcran suivant.
4. Choisissez une "Installation standard". Passez lcran suivant.
5. Dans lcran "Fichiers installs", slectionnez les fichiers de donnes (.fic, .mmo et .ndx)
prsent dans le rpertoire de lexcutable. Pour cela, cliquez sur "Ajouter" et slectionnez ces
fichiers. Passez lcran suivant.
6. Dans lcran "Modules complmentaires" (accessible en cliquant gauche sur le lien "Com-
plments"), vrifiez que loption "Intgrer linstallation de Etats et Requtes" est coche.
7. Dans lcran intitul "Etats et Requtes", spcifiez si vous voulez incorporer linstallation de
"Etats & Requtes" dans votre programme dinstallation.
Dans ce cas, le package dinstallation du logiciel "Etats & Requtes" est recherch. Par dfaut,
ce pack dinstallation est prsent dans le sous-rpertoire "Etats et Requtes" du rpertoire
GAF WinDev.book Page 366 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 367 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
dinstallation de WinDev.
Attention : Incorporer le logiciel "Etats & Requtes" augmente la taille de votre installation de
faon non ngligeable (environ 170 Mo).
8. 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 requtes
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 ou non tre modifis lors de linstallation de lapplication. Cochez
cette option ("Autoriser la modification de ces rpertoires lors de linstallation").
9. Continuez lassistant jusqu la gnration du programme dinstallation de votre applica-
tion (dans notre exemple, lapplication "Faire des ditions"). Ne fermez pas la fentre indiquant
la fin de la cration de linstallation.
Installer et utiliser le logiciel "Etats & Requtes"
Installation de lapplication
Pour tester linstallation et lutilisation du logiciel "Etats & Requtes", nous allons installer lappli-
cation "Faire des ditions".
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.
GAF WinDev.book Page 367 Jeudi, 5. juillet 2012 9:16 09
368 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Nous allons suivre les diffrentes tapes du programme dinstallation de lapplication "Faire
des ditions".
!
Lcran "Etats et Requtes" permet dinstaller le logiciel "Etats & Requtes" (uniquement si ce
programme nest pas dj install sur le poste en cours).
Passez lcran suivant.
!
Lcran suivant permet de dfinir les rpertoires utiliss pour lenregistrement des tats et
des requtes.
Passez lcran suivant et terminez linstallation de lapplication.
!
Linstallation de lapplication, puis linstallation du logiciel "Etats & Requtes" se lance.
GAF WinDev.book Page 368 Jeudi, 5. juillet 2012 9:16 09
Partie 7 : Etats 369 (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 (ce
nest pas vident, mais pourquoi pas).
!
Lancez lapplication "Faire des ditions".
!
Slectionnez loption "Etats .. Liste trie". Ltat apparat en mode "Aperu avant impression".
Dans cet cran, deux nouvelles icnes font leur apparition :
!
Nous allons modifier cet tat :
1. Cliquez sur licne .
2. Ltat apparat en dition sous le logiciel "Etats & Requtes".
Permet de modifier ltat en cours dans laperu avant impression.
Permet de crer un nouvel tat.
GAF WinDev.book Page 369 Jeudi, 5. juillet 2012 9:16 09
370 Partie 7 : Etats (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 modifi-
cation sera prise en compte uniquement dans le cadre de lexcution de ltat (si une fen-
tre 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. Dans la barre des champs, cliquez sur licne "Palette" ( ) 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 & Requtes" ainsi que laperu en cours.
5. Slectionnez loption "Etats .. Liste trie" 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).
GAF WinDev.book Page 370 Jeudi, 5. juillet 2012 9:16 09
PARTIE 8
Programmation
avance
GAF WinDev.book Page 371 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 372 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 373 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.1. IMPORT/EXPORT
Ce que vous allez apprendre dans cette leon ...
Fichier CSV et fichiers texte
Fichier XML
Fichier XLS
Dure estime : 20mn
GAF WinDev.book Page 373 Jeudi, 5. juillet 2012 9:16 09
374 Partie 8 : 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 facile-
ment dans vos applications WinDev des donnes gnres par dautres logiciels ou encore crer
des fichiers ncessitant un formatage particulier.
Dans ce chapitre, nous nous consacrerons plus particulirement trois formats de fichiers :
les fichiers Texte (fichiers texte, fichiers INI et fichiers CSV)
les fichiers XML
les fichiers XLS
Manipulation des fichiers texte, CSV, ...
Les fichiers externes sont souvent appels fichiers texte ou encore fichiers accs direct. Notons
que ce type de fichier contient gnralement du texte, mais peut galement contenir des informa-
tions 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 WLangage
permettent de crer, lire ... des fichiers externes. Toutes les fonctions peuvent tre trs facilement
identifies : elles commencent toutes par la lettre "f".
Dans un fichier externe, il n'y a pas ncessairement de notion "d'enregistrement". 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
Pour simplifier la prsentation des fonctions de gestion des fichiers texte, nous avons prpar un
exemple contenant les principales manipulations possibles sur les fichiers texte et les rpertoires.
!
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
"Manipuler des fichiers textes, XLS, XML, ...". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Manipuler des fichiers textes, XLS, XML,
...".
!
Ouvrez la fentre "FEN_FichierTexte.WDW" et testez-la. Cette fentre regroupe de nombreuses
manipulations possibles avec WinDev.
Nous vous conseillons galement dtudier lexemple "Fichiers Texte" (exemple didactique) livr en
standard avec WinDev : vous aurez ainsi un aperu des diffrentes manipulations possibles sur
les fichiers externes :
crer un fichier externe
GAF WinDev.book Page 374 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 375 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
lire (par bloc, par ligne ou en une seule fois) un fichier externe
crire dans un fichier externe
obtenir des informations sur un fichier
bloquer un fichier
tester lexistence dun fichier
slectionner un fichier
copier un fichier
supprimer un fichier
lister les fichiers dun rpertoire
Cet exemple prsente galement 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 un rpertoire
supprimer un rpertoire
Pour plus de dtails sur les fonctions de gestion des fichiers externes, consultez laide en ligne
(mot-cl : "Fichier externe").
Manipulation des fichiers XML
XML (Extensible Markup Language, ou Langage Extensible de Balisage) est le langage destin
succder HTML sur le World Wide Web. Comme HTML (Hypertext Markup Language), le XML est
un langage de balisage, c'est--dire un langage qui prsente de l'information encadre par des
balises. Mais contrairement HTML, qui prsente un jeu limit de balises, XML est un mtalan-
gage, qui permet d'inventer 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 HyperFi-
leSQL contenant plusieurs rubriques et enregistrements peut par exemple tre export dans un
fichier XML (fonctions XML*) .
E
x
e
m
p
l
e
Lexemple "WD Fichiers Texte" livr en standard avec WinDev (exemple didacti-
que), illustre les manipulations possibles sur les fichiers, disques et rpertoires
avec le WLangage. Cet exemple est accessible depuis le volet "Assistants, Exem-
ples et Composants" de WinDev.
E
x
e
m
p
l
e
Pour plus de dtails sur lutilisation du XML, consultez lexemple "WD XML" (exem-
ple didactique), livr en standard avec WinDev. Cet exemple est accessible depuis
le volet "Assistants, Exemples et Composants" de WinDev.
GAF WinDev.book Page 375 Jeudi, 5. juillet 2012 9:16 09
376 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 dans lexplorateur de projet.
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 :
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
l'diteur de code.
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.
Un test rapide des possibilits de ces fonctions?
!
Ouvrez la fentre "FEN_Exemple_XLS". Cette fentre contient deux onglets permettant de tes-
ter dune part les variables avances, dautre part les fonctions xls.
!
Dans longlet "Manipulation dynamique des feuilles XLS", ouvrez le fichier "FichierTest.xls" pr-
sent dans le rpertoire EXE de lexemple. Vous pouvez slectionner une cellule de la feuille
XLS et voir son contenu.
!
Dans longlet "Lecture dune feuille XLS (compatible)", ouvrez le fichier "FichierTest.xls" prsent
dans le rpertoire EXE de lexemple. Le fichier propos contient 3 feuilles. Il est possible daffi-
cher le contenu des trois feuilles.
!
Ouvrez le fichier (bouton "Ouvrir le fichier sous Excel") pour vrifier les informations affiches
par WinDev.
<Nom de la variable> est un xmlDocument , description = <Nom du
document>
N
o
t
e
s
Nous ne dtaillerons pas ici toutes les fonctionnalits proposes par les fonctions
XLS et les types avancs. Pour plus de dtails, consultez laide en ligne.
GAF WinDev.book Page 376 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 377 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.2. COMPILATION DYNAMIQUE
Ce que vous allez apprendre dans cette leon ...
Prsentation
Tracer une courbe en compilation dynamique
Dure estime : 20mn
GAF WinDev.book Page 377 Jeudi, 5. juillet 2012 9:16 09
378 Partie 8 : 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 lapplication.
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
fichier texte suffit.
Exemple
Dans lexemple Programmation, la compilation dynamique est utilise pour raliser un dessin de
courbes mathmatiques.
!
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
"Programmation avance". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Programmation avance".
Nous allons tout dabord tester cet exemple :
4. Ouvrez la fentre "FEN_Dessine" (par exemple en utilisant le raccourci CTRL + E).
5. Testez cette fentre :
Choisissez la fonction dessiner
Choisissez les couleurs du dessin (bouton "Couleurs").
Validez grce au bouton "Tracer"
6. Retournons sous lditeur de code pour tudier le code permettant de dessiner cette
courbe. Fermez la fentre.
7. Affichez le code du bouton "Tracer". Ce code appelle la procdure AfficheCourbe.
8. 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.
GAF WinDev.book Page 378 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 379 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le code de cette procdure peut tre dcompos en plusieurs parties :
1. initialisation des variables.
2. dessin du fond du graphe et des axes.
3. gestion des erreurs (nous verrons ce point plus loin dans ce chapitre).
4. dclaration du code compil dynamiquement.
Ce code contient plusieurs points remarquer :
Une fonction compile dynamiquement est contenue dans une chane.
Le code utilis manipule une chane multiligne. Cette chane nutilise pas de guillemets
comme les chanes classiques. Les caractres = [ et ] permettent de dfinir le dbut et la
fin de cette chane. Sous lditeur de code, cette chane apparat surligne en rose.
Le code qui sera compil est une fonction ValeurY, qui attend deux paramtres : Fonct (la
fonction choisie par lutilisateur), et X (labscisse du point dessiner). La fonction renverra
lordonne correspondante.
5. compilation de la fonction et son utilisation.
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 dynamiquement
devient utilisable.
// Code de la fonction compile dynamiquement
CodeFonction est une chane = [
Fonction ValeurY(Fonct,X)
Y est un entier
%1
Renvoyer PartieEntiere(Y)
]
// On compile la fonction de calcul de la valeur de Y
ErrCompile = Compile("ValeurY", ...
ChaneConstruit(CodeFonction, Fonct))
SI ErrCompile= "" ALORS
Xold = -201
Yold = ValeurY(Fonct,-201)
POUR X=-200 A 200
Y = ValeurY(Fonct,X)
dLigne((EchelleX*Xold)+X0,...
-(EchelleY*Yold)+Y0,(EchelleX*X)+X0,-(EchelleY*Y)+Y0)
Xold = X
Yold = Y
FIN
SINON
Erreur("La fonction n'a pu tre compile"+ErrCompile)
FIN
GAF WinDev.book Page 379 Jeudi, 5. juillet 2012 9:16 09
380 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.3. TIMER
Ce que vous allez apprendre dans cette leon ...
Prsentation
Timer automatique
Timer programm
Dure estime : 20mn
GAF WinDev.book Page 380 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 381 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Un timer permet dexcuter en parallle une tche qui doit tre lance priodiquement (acquisi-
tion de donnes en tches de fond, rafrachissement automatique de donnes, dclencher un
programme une heure donne ...). Seules les procdures (globales ou locales une fentre) et
les mthodes globales de classe peuvent tre appeles par un timer.
Avec WinDev, les timers peuvent tre grs :
soit directement depuis linterface de lditeur de code : ce sont les timers automatiques.
soit avec les fonctions WLangage : ce sont les timers programms.
Dans cette leon, nous verrons en dtail uniquement les timers automatiques.
Crer un timer automatique
Pour simplifier la manipulation des timers, nous vous avons prpar une fentre utilisant un timer
automatique pour afficher la date et lheure dans une fentre.
!
Ouvrez si ncessaire le projet "Programmation.WDP". Pour cela, slectionnez loption "? ..
Guide dauto-formation .. Programmation avance". Le projet se charge.
!
Ouvrez la fentre "FEN_Timer.WDW". Cette fentre gre un timer pour afficher l'heure. Testez
cette fentre.
!
Revenez sous lditeur.
!
Affichez la procdure locale "MiseAHeure" (affichez le dtail de la fentre FEN_TIMER sous
lexplorateur, puis double-cliquez sur le nom de la procdure). Cette procdure est une proc-
dure locale la fentre "FEN_Timer".
Cette procdure met jour le champ "SAI_Heure" avec la nouvelle heure. A chaque change-
ment dheure, des bips vont tre mis et limage de lhorloge va tre affiche :
GAF WinDev.book Page 381 Jeudi, 5. juillet 2012 9:16 09
382 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
La flche verte situe dans len-tte de la procdure signale que cette procdure est une proc-
dure automatique. Pour dfinir les proprits dune procdure, il suffit de cliquer sur licne
en haut droite.
!
Cliquez sur lhorloge verte pour visualiser les proprits de la procdure :
Cette fentre est impressionnante? Ne vous affolez pas, elle est trs simple comprendre.
La procdure MiseAHeure est excute aprs le code dinitialisation de la fentre (1), linfini (2)
en espaant les appels de 50 centimes de seconde (3). Chaque appel du timer excute la proc-
dure MiseAHeure.(4)
Crer un timer programm
Remarque : pour compatibilit avec les versions prcdentes, il est galement possible de grer
les timers avec les fonctions WLangage.
La fonction TimerSys permet d'utiliser un timer gr par Windows. Ce timer pourra tre arrt
grce la fonction FinTimerSys.
N
o
t
e
s
Arrter une procdure automatique
Pour arrter une procdure automatique, utilisez la fonction FinAutomatismePro-
cdure.
GAF WinDev.book Page 382 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 383 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.4. EVNEMENT WINDOWS
Ce que vous allez apprendre dans cette leon ...
Programmation des vnements Windows.
Dure estime : 10mn
GAF WinDev.book Page 383 Jeudi, 5. juillet 2012 9:16 09
384 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 dex-
cuter un traitement spcifique.
WinDev propose par dfaut 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
De nombreux autres vnements peuvent tre grs facilement. Une barre doutils est disponible
dans lditeur de code :
Il suffit dajouter lvnement souhait. Exemple : "Touche Enfonce".
Pour la gestion dvnements plus "spcifiques", il existe la fonction WLangage Evnement. La
fonction Evnement permet de dclencher une procdure en raction un vnement Windows.
Vous pouvez ainsi associer tout type d'vnement Windows une procdure en WLangage.
Pour connatre la liste (non exhaustive) des vnements Windows, consultez laide en ligne de
WinDev (mot-cl : "Valeur des constantes de l'API Windows").
N
o
t
e
s
Pour utiliser la fonction Evnement, il faut matriser la programmation Windows
et notamment les vnements Windows.
GAF WinDev.book Page 384 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 385 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple : Dtecter le clic sur une liste
!
Ouvrez si ncessaire le projet "Programmation.WDP". Pour cela, slectionnez loption "? ..
Guide dauto-formation .. Programmation avance". Le projet se charge.
!
Ouvrez la fentre "FEN_Evenement" et testez-la. Cette fentre dtecte si la liste est manipule
avec la souris ou avec le clavier.
!
Regardons le code utilis, principalement dans le code de dclaration des globales de la fen-
tre FEN_Evnement.
Tout dabord, le fichier WINCONST.WL est intgr 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 :
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).
EXTERN "WINCONST.WL"
// Evnements sur le champ LISTE_Jour
// Pression d'une touche du clavier
Evnement("SourisOuClavier",LISTE_Jour..NomComplet,WM_KEYDOWN)
// Clic gauche de souris
Evnement("SourisOuClavier",LISTE_Jour..NomComplet,WM_LBUTTONDOWN)
GAF WinDev.book Page 385 Jeudi, 5. juillet 2012 9:16 09
386 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Le code de la procdure est trs simple : la variable globale Clavier est mise Vrai ou Faux
selon loutil utilis (clavier ou souris).
!
Le message est ensuite affich grce au traitement associ au champ LISTE_Jour.
PROCEDURE SOURISOUCLAVIER()
// Dtermine si la validation de l'lment a t effectue
// avec le clavier ou avec la souris
SELON _EVE.wMessage
CAS 256 // C'est le clavier
Clavier=Vrai
CAS 513 // C'est la souris (click down)
Clavier=Faux
FIN
GAF WinDev.book Page 386 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 387 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.5. 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 : 10mn
GAF WinDev.book Page 387 Jeudi, 5. juillet 2012 9:16 09
388 Partie 8 : 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.
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.
GAF WinDev.book Page 388 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 389 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
les erreurs "fatales" (appeles galement erreurs de programmation) : ces erreurs sont
gnralement lies un problme matriel (plus despace disque, perte de connexion
rseau...) ou des problmes graves de conception (accs un fichier non dclar, utilisa-
tion 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.
Utilisation de la gestion automatique des erreurs
!
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
"Gestion des erreurs". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Gestion des erreurs".
!
Ce projet prsente la gestion :
dune erreur non fatale (ouverture dune archive inexistante).
Lors de lexcution de la ligne de code gnrant lerreur, un message derreur saffiche et
propose lutilisateur de ressayer lopration, dannuler lopration ou darrter lapplica-
tion.
dune erreur fatale (division dun entier par 0).
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.
dune erreur sur plusieurs niveaux (traitement appelant une procdure qui ouvre une
archive inexistante).
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.
!
Testez le projet en cliquant sur licne .
E
x
e
m
p
l
e
Pour plus de dtails sur la gestion automatique des erreurs, consultez lexemple
"Detection erreurs" (exemple unitaire), livr en standard avec WinDev. Cet exem-
ple est accessible depuis le volet "Assistants, Exemples et Composants" de Win-
Dev.
GAF WinDev.book Page 389 Jeudi, 5. juillet 2012 9:16 09
390 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.6. INDIRECTION
Ce que vous allez apprendre dans cette leon ...
Dfinition.
Exemples dutilisation.
Dure estime : 20mn
GAF WinDev.book Page 390 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 391 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
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 (voir exemple ci-des-
sous).
Exemple
Exemple dindirections simples :
Exemple dindirection avec une procdure :
{"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
NomChamp est une chane
NomChamp = "SAISIE1" //SAISIE1 est le nom du champ
//appel d'une procdure rendant un champ invisible
INVISIBLE(NomChamp)
PROCEDURE INVISIBLE(NChamp)
{NChamp,indChamp}..Visible = Faux
E
x
e
m
p
l
e
Pour plus de dtails sur lutilisation des indirections, consultez lexemple "Mani-
pulation des indirections" (exemple unitaire), livr en standard avec WinDev. Cet
exemple est accessible depuis le volet "Assistants, Exemples et Composants".
GAF WinDev.book Page 391 Jeudi, 5. juillet 2012 9:16 09
392 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.7. LES THREADS
Ce que vous allez apprendre dans cette leon ...
Quest-ce que les threads ?
Dure estime : 10mn
GAF WinDev.book Page 392 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 393 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dfinition
Les threads permettent d'excuter du code (ou des traitements) en parallle de l'application prin-
cipale. Il est ainsi possible d'excuter plusieurs traitements diffrents qui peuvent tre trs longs
en tche de fond, sans bloquer l'application principale.
Les threads remplacent certains types de timer.
Un thread efficace est un thread qui attend un vnement, par exemple, une action de l'utilisa-
teur, la rception d'un email, la rception d'un appel tlphonique, ...
Quelques exemples d'utilisation des threads :
Rcupration d'emails en tche de fond, pendant la saisie d'un nouvel email par exemple.
Application de communication : gestion des appels tlphoniques, communication par
socket, ...
Avec WinDev, vous avez la possibilit de :
grer simplement des threads (fonctions Thread*, ThreadExcute, ThreadArrte ...)
utiliser les threads avec des "smaphores", afin de limiter leur action en simultan un ins-
tant donn (fonctions Smaphore*)
grer des "signaux" afin de synchroniser plusieurs threads (fonctions Signal*, SignalCre,
SignalDtruit ...)
Exemple
Pour plus de dtails sur la gestion du multithread avec WinDev, consultez laide en ligne (mot-cl :
"Thread").
E
x
e
m
p
l
e
WinDev est livr en standard avec un exemple permettant de comprendre lint-
rt et lutilisation des threads, "Pool de Threads" (exemple didactique, accessible
depuis le volet "Assistants, Exemples et Composants" de WinDev).
GAF WinDev.book Page 393 Jeudi, 5. juillet 2012 9:16 09
394 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.8. LES SOCKETS
Ce que vous allez apprendre dans cette leon ...
Prsentation
Application Serveur
Application Cliente
Dure estime : 20mn
GAF WinDev.book Page 394 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 395 (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.
Une socket est une ressource de communication utilise par les applications pour communiquer
d'une machine une autre sans se soucier du type de rseau.
Ce mode de communication peut par exemple tre utilis pour tablir une communication entre
des postes relis par Internet.
Une application WinDev peut grer les sockets selon diffrents modes :
Application WinDev/WebDev Cliente : l'application se connecte un serveur quelconque et
change des donnes par une socket.
Application WinDev "Serveur simplifi" : l'application WinDev est un serveur, changeant
des informations par une socket avec un seul poste client (socket WinDev conseille sur le
poste client mais non obligatoire)
Application WinDev "Serveur standard" : l'application WinDev est un serveur, changeant
des informations par sockets avec plusieurs postes client quelconques.
Application Serveur (simplifi)
WinDev offre la possibilit de crer un serveur de socket simplifi. Ce serveur permet de commu-
niquer avec un seul poste client simultanment. Ce type d'application est trs utile lorsque deux
applications distantes ont besoin de communiquer.
Les tapes pour crer un serveur simplifi sont les suivantes :
1. Cration de la socket
2. Echange de donnes
3. Fermeture de la socket
Cration de la socket
Pour crer la socket, le poste serveur utilise la fonction SocketCre. Une socket est associe un
port spcifique. Pour simplifier la manipulation de la socket par programmation sur le poste ser-
veur, prcisez le nom de la socket.
Le poste client va venir se connecter sur cette socket pour changer des donnes. La connexion
entre les deux postes sera effectivement ralise au premier change de donnes entre les deux
postes (c'est--dire la premire lecture d'informations 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 la mme socket, un flux de communication s'tablit entre ces deux
postes. Il est alors possible pour ces deux postes de lire et d'crire des chanes de caractres sur
la socket.
E
x
e
m
p
l
e
WinDev est livr en standard avec un exemple permettant de comprendre lutili-
sation des sockets : "WD Utilisation des sockets" (exemple didactique, accessible
depuis le volet "Assistants, Exemples et Composants" de WinDev).
GAF WinDev.book Page 395 Jeudi, 5. juillet 2012 9:16 09
396 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 la socket, l'application 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 la socket : il envoie une requte au poste serveur.
2. Le poste serveur effectue une lecture sur la socket dans un thread. Ds qu'un 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 de la socket
Pour terminer la communication, le serveur peut fermer la socket avec la fonction SocketFerme.
Remarque : la socket peut aussi tre ferme par le poste client.
Application Cliente
Une application cliente d'un serveur de sockets se connecte un serveur quelconque pour chan-
ger des informations par l'intermdiaire d'une 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 une socket du serveur, il suffit d'utiliser la fonction SocketConnecte. Cette
fonction permet d'effectuer une demande de connexion au serveur.
La socket est identifie par son port et par son adresse.
Echange de donnes
Lorsque deux postes utilisent la mme socket, un flux de communication s'tablit entre ces deux
postes. Il est alors possible pour ces deux postes de lire et d'crire des chanes de caractres sur
la 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 la socket, l'application cliente WinDev doit utiliser les fonctions SocketLit et
SocketEcrit.
Fin de communication
Pour terminer la communication, il suffit de fermer la socket depuis le poste client avec la fonction
SocketFerme.
Remarque : il est galement possible de terminer la communication depuis le poste serveur.
GAF WinDev.book Page 396 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 397 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.9. LE FTP
Ce que vous allez apprendre dans cette leon ...
Prsentation des fonctions FTP de WinDev.
Dure estime : 20mn
GAF WinDev.book Page 397 Jeudi, 5. juillet 2012 9:16 09
398 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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.
Se connecter un serveur FTP
La fonction WLangage FTPConnecte permet de se connecter un serveur FTP. Vous devez au
pralable possder un compte FTP (nom dutilisateur et mot de passe) pour accder un serveur
FTP.
Exemple de code :
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
FTPEnvoie :
NomUser est une chane = "Utilisateur"
Password est une chane = "MotDePasse"
AdresseFTP est une chane = "ftp.monsite.com"
Res est un entier
Res = FTPConnecte(AdresseFTP, NomUser, Password)
SI Res = -1 ALORS
Erreur("Impossible de se connecter." + RC + ...
ErreurInfo(errMessage))
SINON
Info("Connexion russie.")
FIN
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// rcupr le numro de connexion dans la variable Res
// Transfert du fichier "C:\MesDocuments\Fichier.DOC" vers
// le rpertoire "Temp" qui se trouve sur le serveur.
Result est un boolen = FTPEnvoie(Res, ...
"C:\MesDocuments\Fichier.DOC", "/Temp")
GAF WinDev.book Page 398 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 399 (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 tout simplement dutili-
ser la fonction FTPRcupre :
Se dconnecter dun serveur FTP
Comme pour la fermeture dune session de messagerie, il existe en WLangage une fonction pour
se dconnecter dun serveur FTP. Cette fonction se nomme FTPDconnecte :
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").
A
t
t
e
n
t
i
o
n
!
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
nom des fichiers et des rpertoires.
Par exemple, si sur le serveur FTP se trouve un rpertoire nomm "MonReper-
toire" et que vous tentez daccder au rpertoire "monrepertoire", le serveur FTP
pourra vous renvoyer une erreur du type "Chemin inexistant".
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// rcupr le numro de connexion dans la variable Res
// Rcupration du fichier "/Document/Fichier.DOC" prsent
// sur le serveur FTP vers le rpertoire "D:\Temp" sur
// le poste en cours
Res est un boolen = FTPRcupre(Res, ...
"/Document/Fichier.DOC","D:\Temp")
// Lors de la connexion au serveur avec FTPConnecte, nous avons
// rcupr le numro de connexion dans la variable Res
// Dconnexion
FTPDconnecte(Res)
GAF WinDev.book Page 399 Jeudi, 5. juillet 2012 9:16 09
400 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.10. LES EMAILS
Ce que vous allez apprendre dans cette leon ...
Prise de connaissance avec les fonctions Email de WinDev.
Dure estime : 20mn
GAF WinDev.book Page 400 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 401 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Le WLangage possde toutes les fonctions de programmation ncessaires pour grer la rception
ou lenvoi de messages Internet (appels "emails"). De plus, grce WinDev, vous pourrez conna-
tre toutes les caractristiques dun email :
expditeur, destinataires
date denvoi, sujet, message
pices jointes ...
WinDev permet de grer les emails grce plusieurs mthodes :
Les protocoles POP3/SMTP (mthode la plus courante). Ces protocoles sont des protocoles
de gestion des emails reconnus par tous les fournisseurs de service. Ces protocoles vous
permettent de dialoguer directement avec le serveur, disponible chez votre fournisseur
daccs.
LAPI "Simple Mail API" (appel aussi SMAPI ou Simple MAPI) : ce mode de gestion des
emails est utilis par la plupart des applications Microsoft et principalement Microsoft
Exchange.
Le logiciel de messagerie Lotus Notes ou Outlook : grce ces logiciels, il est possible
d'envoyer et de recevoir des emails.
Le protocole IMAP : ce protocole de rception d'emails permet de laisser les emails sur le
serveur dans le but de pouvoir les consulter de diffrents clients de messagerie ou webmail.
Nous voquerons dans ce cours uniquement la mthode de gestion par les protocoles POP3/
SMTP. En effet, cest le mode qui est actuellement le plus utilis dans le monde.
Pour plus de dtails sur Simple MAPI, consultez laide en ligne (mot-cl : "Simple MAPI").
Les fonctions de gestion des emails commencent toutes par "Email".
Les protocoles POP3/SMTP
Le protocole POP3 permet de recevoir des emails.
Le protocole SMTP permet d'envoyer des emails
Nous ne dtaillerons pas ici le principe de fonctionnement de ces protocoles.
Pour envoyer ou lire des messages grce aux protocoles POP3/SMTP, il faut :
1. Se connecter au fournisseur d'accs (si ncessaire).
2. Ouvrir une session de messagerie avec la fonction EmailOuvreSession.
3. Envoyer et lire les messages.
4. Fermer la session de messagerie avec la fonction EmailFermeSession.
5. Se dconnecter (si ncessaire).
E
x
e
m
p
l
e
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 le volet "Assistants, Exemples et Composants" de WinDev.
GAF WinDev.book Page 401 Jeudi, 5. juillet 2012 9:16 09
402 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ouvrir une session de messagerie
!
Pour ouvrir une session de messagerie, il faut utiliser la fonction EmailOuvreSession :
Avec la fonction EmailOuvreSession, vous pourrez la fois lire et envoyer des emails. Pour plus de
dtails, consultez laide en ligne (mot-cl : "Email, Fonctions Emails").
Envoyer un email
Pour envoyer un message avec WinDev, il suffit de renseigner les principales informations dun
email. Ces informations sont contenues :
soit dans la structure prdfinie du WLangage Email.
soit dans la variable de type avanc Email.
Consultez laide en ligne pour plus de dtails.
Lire un email
Maintenant que nous sommes connects notre serveur et que nous avons envoy un message,
nous allons voir comment lire un email.
Sur le mme principe quun parcours de fichier avec les fonctions HLitPremier, HLitSuivant ... il
est possible de lire les emails reus avec les fonctions EmailLitPremier, EmailLitSuivant ... Pour
plus de dtails sur ces fonctions, consultez laide en ligne (mot-cl : "Email, Lire un email").
Pour chaque email lu, la structure Email est initialise. Les variables de cette structure correspon-
dent l'ensemble des caractristiques de l'email en cours.
USER est une chane = "Utilisateur"
Password est une chane = "MotDePasse"
ServeurPOP est une chane = "pop.wanadoo.fr"
ServeurSMTP est une chane = "smtp.wanadoo.fr"
NomUser est une chane
SI EmailOuvreSession(USER,Password,ServeurPOP,ServeurSMTP)
ALORS
NomUser = USER
SINON
NomUser = ""
Erreur("Impossible d'tablir la connexion")
FIN
GAF WinDev.book Page 402 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 403 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Exemple de code :
Comment rcuprer un document attach?
Utilisez la variable Email.Attache et la fonction EmailSauveFichierAttach. Exemple de code :
Dconnexion
Pour vous dconnecter, il suffit tout simplement dutiliser la fonction EmailFermeSession :
// Connexion au serveur effectue avec EmailOuvreSession
// Lors de la connexion nous avons rcupr le nom
// de lutilisateur dans la variable NomUser
// Lecture du premier email
Message est une chane
EmailLitPremier(NomUser)
SI PAS Email.EnDehors ALORS
SI Email.HTML = "" ALORS
Message = Email.Message
SINON
Message = "Email au format HTML:" + RC + Email.HTML
FIN
Info("Expditeur: " + Email.Expediteur + RC + ...
"Date denvoi: " + Email.DateReception + RC + ...
"Sujet: " + Email.Sujet + RC + "Message: " + Message)
FIN
Repert_Temp est une chane = "C:\temp\"
CID est une chane
I est un entier
// Pour chaque fichier attach
POUR I = 1 A Email.NbAttache
// Copier le fichier dans un rpertoire temporaire
EmailSauveFichierAttache(Email.Attache[I], Repert_Temp ...
+ Email.Attache[I])
// Rcuprer l'identifiant du fichier attach dans le mail
CID = "cid:" + Email.IdentifiantAttache[I]
// Remplacer les rfrences au fichier attach par
// le nom rel du fichier
Email.HTML = Remplace(Email.HTML, CID, "file:" + ...
Repert_Temp + Email.Attache[I])
FIN
SI NomUser <> "" ALORS
EmailFermeSession(NomUser)
NomUser = ""
FIN
GAF WinDev.book Page 403 Jeudi, 5. juillet 2012 9:16 09
404 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Autres possibilits
Il est galement possible de :
envoyer des fichiers attachs dans vos emails. Pour plus de dtails, consultez lexemple
"WD Mail" (exemple complet prsent dans le volet "Assistants, Exemples et Composants").
effectuer des mailings par emails. Pour plus de dtails, consultez lexemple "WD Mail"
(exemple complet prsent dans le volet "Assistants, Exemples et Composants").
manipuler les donnes Outlook (grce aux fonctions email du WLangage). Pour plus de
dtails, consultez lexemple "WD Outlook" (exemple complet prsent dans le volet "Assis-
tants, Exemples et Composants").
manipuler les donnes Lotus Notes (grce aux fonctions Notesxxx du WLangage). Pour plus
de dtails, consultez lexemple "Accs aux bases Notes et Outlook" (exemple didactique pr-
sent dans le volet "Assistants, Exemples et Composants").
Pour plus de dtails sur la gestion des emails avec WinDev, consultez laide en ligne (mot-cl :
"Email, Gestion des emails").
GAF WinDev.book Page 404 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 405 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.11. LE GRAPHEUR
Ce que vous allez apprendre dans cette leon ...
Prsentation
Le champ graphe
Les fonctions graphe
Dure estime : 20mn
GAF WinDev.book Page 405 Jeudi, 5. juillet 2012 9:16 09
406 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Un graphe est un outil de prsentation de statistiques bien souvent plus parlant quun simple
tableau. Dans toute application de gestion, lutilisation de graphes devient vite ncessaire.
WinDev met votre disposition plusieurs outils pour intgrer des graphes dans vos applications :
le champ Graphe intgr dans WinDev (dans lditeur de fentres comme dans lditeur dtats)
les fonctions WLangage de gestion des graphes
WinDev propose galement de crer un graphe automatiquement partir du menu contextuel des
tables : il suffit que la table contienne au moins une colonne de type numrique pour que loption
"Graphique" soit disponible.
Dans cette leon, nous allons voir les possibilits du champ Graphe et des fonctions WLangage.
Le champ Graphe
Pour dcouvrir les possibilits du champ Graphe, nous avons prpar une fentre regroupant les
diffrents modes de remplissage dun champ Graphe.
!
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
"Manipuler des graphes". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Manipuler des graphes".
!
Ouvrez la fentre "FEN_Champ_Graphe" et testez-la. Cette fentre prsente diffrents modes
de remplissage dun champ graphe :
Table (fichier ou mmoire)
Donnes fournies par programmation
Liste de valeurs
Dans chaque cas, il est possible de modifier directement les informations affiches dans le
graphe. Ces modifications sont immdiatement prises en compte.
!
Revenez sous lditeur de WinDev. Nous allons crer une fentre contenant un champ graphe
bas sur une requte. Cette requte (REQ_CA_par_annee) permet dobtenir le Chiffre daffai-
res par anne.
1. Ouvrez la requte "REQ_CA_par_annee" sous lditeur.
A
s
t
u
c
e
Le menu contextuel du champ graphe permet de modifier de nombreuses
options daffichage du graphe.
GAF WinDev.book Page 406 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 407 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Testez la requte.
!
Nous allons maintenant crer le champ Graphe permettant dafficher les donnes de la
requte.
1. Crer une nouvelle fentre.
2. Dans cette fentre, crez un champ Graphe (cliquez sur le bouton ). Lassistant de cra-
tion de graphe se lance.
3. Slectionnez le type du graphe crer (par exemple courbe)
4. Donnez les caractristiques du graphe :
Titre du graphe : Chiffre daffaires par anne
Afficher la lgende droite
Quadrillage horizontal
GAF WinDev.book Page 407 Jeudi, 5. juillet 2012 9:16 09
408 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
5. Indiquez les sries du graphe. Dans notre cas, nous utiliserons une seule srie.
Indiquez ltiquette de catgorie utiliser : source correspond "Parcours dun fichier ou
dune requte" et donnes correspond la rubrique Anne de la requte
REQ_CA_Par_Annee.
Cliquez sur la premire ligne du tableau.
Indiquez le libell : "Chiffre daffaires".
Indiquez la source : slectionnez loption "Parcours dun fichier ou dune requte". Cette
option permet de slectionner le fichier ou la requte qui sera la base de la srie.
Indiquez les donnes : cliquez dans la colonne "Donnes". Slectionnez la requte
"REQ_CA_par_Annee", puis la rubrique : la_somme_TotaleVente. Dans la rubrique de par-
cours, slectionnez "Anne".
6. Donnez le nom du graphe et validez.
7. Redimensionnez le champ graphe dans votre fentre et testez.
Les fonctions graphes
WinDev propose un ensemble de fonctions pour crer et configurer un graphe. Ces fonctions com-
mencent toutes par les lettres "gr". Ces fonctions peuvent tre utilises :
dans un champ image. Le graphe est entirement dessin laide des fonctions grXXX.
dans un champ graphe. Les fonctions permettent alors de modifier par programmation cer-
taines caractristiques dfinies dans le champ graphe.
Comme pour le champ Graphe, nous avons prpar une fentre permettant de dessiner un gra-
phe entirement par programmation.
GAF WinDev.book Page 408 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 409 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Ouvrez si ncessaire le projet "Grapheur.WDP" (option "? .. Guide dauto-formation .. Manipu-
ler des graphes").
!
Ouvrez la fentre "FEN_Grapheur" et testez-la. Cette fentre prsente les diffrents graphes,
avec les options correspondantes.
!
Le code du bouton "Graphe" contient toutes les fonctions ncessaires au dessin du graphe.
Pour plus de dtails sur ces fonctions, nous vous conseillons de consulter laide en ligne (mot-
cl : "Graphe").
GAF WinDev.book Page 409 Jeudi, 5. juillet 2012 9:16 09
410 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 8.12. LA POO
Ce que vous allez apprendre dans cette leon ...
Concepts de la programmation oriente objet.
Exemples de dclaration dobjet.
Dure estime : 30mn
GAF WinDev.book Page 410 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 411 (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
grant chacun une fonctionnalit du logiciel. Les modules dvelopps peuvent tre facilement
rutiliss dans dautres logiciels. Ils vont regrouper un ensemble de procdures et encapsuler la
structure de donnes sur laquelle les procdures 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 classi-
ques 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 hrite des membres et des mthodes de sa classe mre (qui peut, elle-mme,
tre une sous-classe dune autre classe mre), en plus de ses propres membres et mthodes (et
galement des membres et mthodes de la premire classe mre, sil sagit dun hritage multi-
ple). Il nest pas ncessaire de dupliquer les membres et mthodes de la ou des classe(s) mre(s).
Constructeur et Destructeur
La notion de Constructeur et Destructeur est importante puisquelle permet un appel automatique
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).
GAF WinDev.book Page 411 Jeudi, 5. juillet 2012 9:16 09
412 Partie 8 : Programmation avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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.
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")
!
Ouvrez le projet "Programmation.WDP" (option "? .. Guide dauto-formation .. Programmation
avance").
!
Ouvrez la fentre "FEN_Poo1.WDW" et testez cette fentre.
Nous ne dtaillons pas ici la syntaxe de la P.O.O., nous prsenterons uniquement un exemple sim-
ple de programme orient objet. Pour avoir plus de dtail sur la syntaxe de la P.O.O., consultez
laide en ligne et le manuel de programmation de WinDev (mot-cl : "POO, Classe").
Dclarer une classe
Pour crer une classe :
1. Affichez si ncessaire lexplorateur de projet (option "Affichage .. Barres doutils .. Volets ..
Explorateur de projet").
2. Slectionnez le dossier "Classes".
3. Affichez le menu contextuel de ce dossier (clic droit de la souris) et slectionnez loption
"Nouvelle classe".
4. Dans la fentre qui saffiche, indiquez le nom de la classe et validez.
5. Le code de la classe saffiche sous lditeur de code.
Une classe est de la forme :
"Fichier" est le nom de la classe.
"NomLong", "NomCourt", "Extension"... sont des membres de la classe.
CFichier est une classe
NomLong est une chane
NomCourt est une chane
Extension est une chane
CheminCourt est une chane
CheminLong est une chane
FIN
GAF WinDev.book Page 412 Jeudi, 5. juillet 2012 9:16 09
Partie 8 : Programmation avance 413 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dcrire les mthodes
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.
Une mthode est de la forme :
PROCEDURE SelectionFichier()
sRes est une chane
sRes=fSlecteur(fRepEnCours(), "", "Slection d'images", ...
fFiltreImage(), "png", fselOuvre+fselExiste)
m_sNomLong=fNomLong(sRes)
m_sNomCourt=fNomCourt(sRes)
m_sExtension=fExtraitChemin(sRes,fExtension)
m_sCheminLong=fCheminLong(sRes)
m_sCheminCourt=fCheminCourt(sRes)
GAF WinDev.book Page 413 Jeudi, 5. juillet 2012 9:16 09
414 Partie 8 : 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 :
Pour faire rfrence un membre de lobjet "Fichier", il faut utiliser la syntaxe
L'objet est manipul de la faon suivante :
!
Ouvrez la fentre "FEN_Poo2.WDW" et testez cette fentre.
Cette fentre prsente un exemple de programme objet manipulant les hritages et les
mthodes Constructeur.
Nous ne nous attarderons pas plus sur la prsentation de la POO dans ce cours.
GLOBAL
Fic1 est un objet CFichier
<NomObjet>.<nom du membre>
//appel de la mthode
Ch = Fic1.SelectionFichier()
SI Ch ="" ALORS RETOUR
Infofic..Etat = Gris
NOML = Fic1.NomLong
NOMC = Fic1.NomCourt
EXTENS = Fic1.Extension
CHEMINL = Fic1.CheminLong
CHEMINC = Fic1.CheminCourt
TailleF = Fic1.TailleFichier()
DateF = Fic1.DateFichier()
HeureF = Fic1.HeureFichier()
GAF WinDev.book Page 414 Jeudi, 5. juillet 2012 9:16 09
PARTIE 9
Gestion de projet
avance
GAF WinDev.book Page 415 Jeudi, 5. juillet 2012 9:16 09
GAF WinDev.book Page 416 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 417 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.1. CONFIGURATION NCESSAIRE
Ce que vous allez apprendre dans cette leon ...
Configurer WinDev pour suivre la partie 9 du Cours dauto-formation
Dure estime : 5 mn
GAF WinDev.book Page 417 Jeudi, 5. juillet 2012 9:16 09
418 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Depuis le dbut de ce cours, vous utilisez WinDev dans un environnement simplifi. Nous avons
ainsi tudi les principales fonctionnalits de WinDev.
Dans cette partie, nous allons tudier des concepts avancs de la gestion de projet.
Pour raliser les manipulations prsentes dans cette partie, nous vous conseillons de configurer
WinDev pour utiliser lenvironnement standard. Vous aurez ainsi accs toutes les fonctionnalits
du produit.
Rappel : Pour son utilisation, WinDev propose un paramtrage de lenvironnement. Plusieurs
modes sont votre disposition :
Environnement simplifi : Ce mode permet de dcouvrir les principales fonctionnalits de Win-
Dev.
Environnement complet : Ce mode propose toutes les fonctionnalits de WinDev.
Rcuprer la configuration de votre environnement XX : Ce mode reprend les fonctionnalits
disponibles en version xx.
A tout moment, quel que soit le type denvironnement utilis, il est possible dajouter ou de suppri-
mer laccs certaines fonctionnalits non utilises.
Mise en place
!
Pour utiliser lenvironnement standard de WinDev :
1. Lancez WinDev 17.
2. Slectionnez loption "Outils .. Options .. Options de lenvironnement".
3. Cliquez sur "Relancer lassistant de configuration denvironnement".
4. Slectionnez "Environnement complet".
5. Validez votre choix en passant lcran suivant.
6. Validez les options de lenvironnement.
Voil, WinDev est configur pour suivre cette partie du cours dauto-formation.
GAF WinDev.book Page 418 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 419 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.2. TABLEAU DE BORD
Ce que vous allez apprendre dans cette leon ...
Prsentation
Mode de visualisation
Options du tableau de bord
Dure estime : 20mn
GAF WinDev.book Page 419 Jeudi, 5. juillet 2012 9:16 09
420 Partie 9 : Gestion de projet avance (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
tableau de bord permet davoir une vision globale et synthtique de ltat davancement dun pro-
jet.
Nous avons dj vu dans la partie 2, quelques fonctionnalits du Tableau de bord.
Nous allons maintenant ltudier plus en dtail, et voir ses interactions avec les Centres de Con-
trle.
Exemple
Pour manipuler le tableau de bord, nous allons reprendre le projet "Mes Comptes". Si vous navez
pas cr cette application, une version corrige est disponible (option "? .. Guide dauto-formation
.. Application Mes Comptes (Corrig)").
Les diffrents lments du tableau de bord
Le tableau de bord du projet est compos :
de listes dlments
de voyants
de compteurs
N
o
t
e
Configuration ncessaire
Pour suivre cette leon, vous devez utiliser lenvironnement en mode complet.
Pour plus de dtails, consultez Configuration ncessaire, page 417.
GAF WinDev.book Page 420 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 421 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les listes
Le tableau de bord est compos de diffrentes listes. Ces listes permettent doptimiser laccs
aux lments du projet.
Par exemple, la liste "Slection rapide" permet de rechercher facilement un lment du projet. Il
suffit de saisir quelques lettres composant le nom de llment recherch. La slection est auto-
matiquement ralise et un aperu permet de choisir llment voulu.
Pour rechercher la fentre FEN_PersonneX, rien de plus simple : saisissez les lettres "Per" et faites
votre choix. Un double-clic sur le nom de llment permet de louvrir immdiatement sous ldi-
teur associ.
Autre liste intressante : les favoris. Qui dans son application na pas une fentre ou un code qui
est utilis frquemment ? Une fentre gnrale regroupant par exemple les principales
fonctionnalits? Pour ne pas perdre de temps rechercher cet objet, il suffit de le mettre dans les
favoris.
Par exemple, nous allons mettre la fentre "FEN_PersonneX" de notre application en favoris :
1. Dans le tableau de bord, cliquez sur le bouton "Favoris", et cliquez sur le lien pour afficher
le volet des favoris.
2. Affichez la fentre "FEN_PersonneX" sous lditeur (par exemple en double-cliquant sur son
nom dans le volet "Explorateur de projet" WinDev).
A
s
t
u
c
e
Vous voulez rechercher un lment sans tre dans le tableau de bord? Utilisez la
combinaison de touches [CTRL] + [E] ... et vous retrouverez les mmes possibili-
ts.
N
o
t
eLe volet des favoris peut galement tre affich par loption "Affichage .. Barres
doutils .. Volets .. Favoris".
GAF WinDev.book Page 421 Jeudi, 5. juillet 2012 9:16 09
422 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3. Dans le volet "Favoris", cliquez sur le bouton "+". Vous pouvez saisir le nom du favori (par
exemple MaFentre).
Validez. Le favori apparat.
4. Dans le tableau de bord, vous retrouvez galement votre favori en utilisant la touche F5.
Les voyants
Dans la partie 2, nous avons vu le voyant concernant les tests. Regardons les autres voyants.
Les informations concernant la qualit globale du projet sont regroupes dans un compteur sp-
cifique.
Dans le compteur, vous trouvez :
Une jauge centrale indiquant la qualit globale du projet,
Une jauge de sauvegarde. Il suffit de cliquer sur la jauge pour lancer une sauvegarde du projet.
Une jauge de nettoyage. Il suffit de cliquer sur la jauge pour lancer le nettoyage du projet.
Des voyants davertissement : composant pas jour, erreurs de compilations dtectes, infor-
mations dtectes, warnings dtects.
N
o
t
eSi plusieurs dveloppeurs travaillent sur le mme projet, il est possible de visua-
liser "Tous les favoris".
GAF WinDev.book Page 422 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 423 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Le tableau de bord prsente galement des voyants doptimisation :
Audit statique : Si ce voyant est rouge, cela signifie que laudit statique na pas t lanc depuis
longtemps sur votre projet. Laudit statique permet davoir un tat de votre projet. Il permet
entre autre de :
dtecter le code mort, cest--dire lister les procdures inutilises dans votre application.
lments orphelins, cest--dire lister les lments de votre projet qui ne sont pas utiliss
(par exemple, fentre utilise uniquement pour test lors du dveloppement de lapplica-
tion).
dtecter le passage du profiler de projet : laudit statique vous informe si lanalyseur de
performances na pas t lanc rcemment sur votre application. Nous dtaillerons lana-
lyseur de performances dans le chapitre Lanalyseur de performances, page 468.
dtecter si une optimisation de requtes est ncessaire : laudit statique vous informe si
votre projet utilise des requtes qui peuvent tre optimises par une simple modification
de lanalyse (ajout dune cl compose par exemple).
Nhsitez pas utiliser laudit statique : il ne peut quamliorer les performances de votre appli-
cation.
laudit dinfrastructure : Si ce voyant est rouge, cela signifie que laudit dinfrastructure na pas
t lanc depuis longtemps sur votre projet.
laudit dynamique : Si ce voyant est rouge, cela signifie que laudit dynamique na pas t lanc
depuis longtemps sur votre projet. Laudit dynamique permet de raliser un audit lors du test ou
de lexcution de lapplication. Il est possible de connatre :
loccupation mmoire des diffrents lments utiliss par lapplication.
les images non trouves
les patchs non pris en compte
...
Par le biais du tableau de bord, il est galement possible de connatre et de modifier certaines
caractristiques importantes du projet. Ces lments sont galement prsents sous forme de
voyants : le voyant est vert ? Cela signifie que la fonctionnalit est active dans votre projet. Dans
le cas contraire, un simple clic sur le voyant permet dactiver ou de configurer la fonctionnalit.
Passons rapidement en revue les lments disponibles :
GDS : Permet de savoir si le projet est partag via le Gestionnaire de Sources. Nous verrons plus
en dtail cette fonctionnalit dans la leon suivante (GDS, page 427).
Live data : Permet dutiliser le contenu des fichiers de donnes du poste de dveloppement
dans les fentres, les tats, ... manipuls sous lditeur. Cette fonctionnalit est trs intres-
sante par exemple pour dfinir la taille des champs prsents dans une fentre.
Charte de programmation : Nous lavons vu dans la partie 1, la charte de programmation per-
met dunifier les noms des lments utiliss dans un projet. Comme notre projet utilise une
charte de programmation, ce voyant est vert.
GAF WinDev.book Page 423 Jeudi, 5. juillet 2012 9:16 09
424 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
GFI (Grisage automatique des fentres inaccessibles) : Cette option indique si les fentres inac-
cessibles de votre application seront automatiquement grises ou non. Cette fonctionnalit est
souvent trs apprcie des utilisateurs. Lorsque plusieurs fentres sont superposes, les fen-
tres inaccessibles sont automatiquement grises.
Langues : vous trouvez ici, le nombre de langues gres par votre projet. Dans notre cas, une
seule langue est gre. Un clic sur ce voyant vous permet dajouter simplement de nouvelles
langues votre projet. Nous tudierons la gestion des projets multilingues un peu plus loin dans
ce cours (Multilingue, page 492).
Gabarit : Vous le savez, les gabarits permettent de dfinir simplement la charte graphique de
votre application. Un clic sur ce voyant vous permet daccder lcran de configuration de
gabarit de votre application.
Etats et Requtes : Nous lavons dj vu, le logiciel "Etats et Requtes" permet lutilisateur
final de composer ses propres tats et ses propres requtes. Pour lintgrer dans votre
application : un voyant suffit. Pour plus de dtails, consultez Diffusez "Etats & Requtes" avec
vos applications, page 363.
Les compteurs en relation avec les Centres de Contrle
WinDev est livr avec plusieurs Centres de Contrle. Les Centres de Contrle, comme leur nom
lindique, permettent de contrler un ensemble de fonctionnalits. Nous avons dj vu le Centre
de Contrle HyperFileSQL, qui permet notamment de contrler les applications et les fichiers de
donnes des applications HyperFileSQL Client/Serveur.
WinDev propose galement le Centre de Suivi de Projets. Ce centre permet de grer des projets
(informatiques ou non), de leur conception leur livraison et mme leur maintenance.
Nous ne dtaillerons ici que les lments en relation avec le tableau de bord. Pour plus de dtails
sur les Centres de Contrle et leur configuration, consultez le chapitre Centres de contrle,
page 439.
Le compteur de bugs
Le compteur de bugs reprsente le nombre de bugs actuellement prsents sur le projet. Ces bugs
sont rfrencs dans le Centre de Contrle Qualit.
Ces bugs ont t fournis directement par les utilisateurs de lapplication, au moyen de loption "? ..
Envoyer une suggestion, ..." de leur application. Cette option est propose en standard si vous
intgrez le menu automatique "?" dans votre application.
Le compteur de tches
Le compteur de tches reprsente le nombre de tches actuellement en cours sur le projet. Ces
tches sont rfrences dans le Centre de Suivi de Projets.
Ces tches correspondent par exemple :
des fonctionnalits ajouter au projet
des dveloppements futurs, ...
Le compteur de demandes
Le compteur de demandes reprsente le nombre de demandes actuellement prsentes sur le pro-
jet. Ces demandes sont rfrences dans le Centre de Contrle Qualit.
GAF WinDev.book Page 424 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 425 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ces demandes ont t fournies directement par les utilisateurs de lapplication, au moyen de
loption "? .. Envoyer une suggestion, ..." de leur application. Cette option est propose en stan-
dard si vous intgrez le menu automatique "?" dans votre application.
Le compteur de messages
Le compteur de messages reprsente le nombre de messages associs au projet. Ces messages
sont visibles dans la messagerie de WinDev. Ces messages sont par exemple automatiquement
envoys lors du travail avec le gestionnaire de sources. Vous tes ainsi automatiquement averti
dune mise jour dun lment dans le GDS.
Le compteur de rgles
Le compteur de rgles permet de connatre le nombre de rgles mtier concernant le projet. Nous
verrons les rgles mtier un peu plus loin dans ce cours. Les rgles mtier peuvent tre saisies :
par vous, dveloppeur de lapplication
par les utilisateurs, au moyen de loption "? .. Envoyer une suggestion, ..." de leur application.
Cette option est propose en standard si vous intgrez le menu automatique "?" dans votre
application.
Configuration du tableau de bord
Nous avons vu les grandes catgories dinformations affiches dans le tableau de bord. WinDev
propose deux modes de visualisation de ces informations : mode dveloppeur et mode chef de
projet. Pour changer de mode, il suffit de cliquer sur "Mode" prsent dans la jauge circulaire du
tableau de bord. Pour chaque mode, vous pouvez configurer de manire prcise les niveaux
dalerte du tableau de bord.
Pour configurer le tableau de bord, slectionnez loption "Option du tableau de bord" du menu
contextuel du tableau de bord.
GAF WinDev.book Page 425 Jeudi, 5. juillet 2012 9:16 09
426 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Il est possible de configurer prcisment pour les deux modes :
les compteurs de tches et de demandes,
le nettoyage,
la sauvegarde,
la qualit du projet,
la position du tableau de bord, ...
GAF WinDev.book Page 426 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 427 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.3. GDS
Ce que vous allez apprendre dans cette leon ...
Prsentation
Le gestionnaire de sources
Utilisation du gestionnaire de sources
Dure estime : 30mn
WinDev 17 version "Express" :
Cette fonctionnalit n'est pas disponible dans cette version d'valuation.
GAF WinDev.book Page 427 Jeudi, 5. juillet 2012 9:16 09
428 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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 gre en standard un gestionnaire de sources nomm "GDS" permettant de partager les
sources de diffrents projets entre dveloppeurs et de connatre lhistorique complet des modifi-
cations 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.
Lorsquun dveloppeur veut modifier un lment dun projet (une fentre, un tat, une
requte, ...), il indique au GDS quil sapproprie temporairement cet lment. Pour cela, le
dveloppeur 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 sur la base de sources).
N
o
t
e
Configuration ncessaire
Pour suivre cette leon, vous devez utiliser lenvironnement en mode complet.
Pour plus de dtails, consultez Configuration ncessaire, page 417.
GAF WinDev.book Page 428 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 429 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ds que le dveloppeur a termin ses modifications, il rintgre llment extrait dans la
base de sources.
Les autres dveloppeurs sont automatiquement avertis de cette rintgration. Ils peuvent
alors mettre jour leur copie locale.
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 l'installation de WinDev.
lors de la cration d'un projet utilisant le GDS.
lors de l'importation d'un projet dans le GDS.
directement dans ladministrateur du GDS.
!
Nous allons crer notre base de sources lors de limportation dun projet dans le GDS, la pro-
chaine tape.
N
o
t
e
s
Il est conseill de faire rgulirement des sauvegardes de la base de sources du
GDS. Pour cela, il suffit de se connecter en tant quadministrateur loutil
dadministration du GDS, et de slectionner loption "Outils .. Administration ..
Sauvegarde complte de la base".
GAF WinDev.book Page 429 Jeudi, 5. juillet 2012 9:16 09
430 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Intgration dun 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.
!
Nous allons intgrer le projet "Fentres et Champs.WDP" dans la base de sources du GDS :
1. Ouvrez le projet "Fentres et Champs.WDP" (option "? .. Guide dauto-formation .. Fentres
et champs").
2. Slectionnez loption "GDS .. Ajouter le projet complet". 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.
3. Cliquez sur le bouton "Crer une base".
La base de sources peut tre au format HyperFileSQL Classic (local ou rseau) ou au format
HyperFileSQL Client/Serveur. Nous allons crer une base de sources au format HyperFileSQL
Classic.
GAF WinDev.book Page 430 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 431 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4. Conservez loption "Cration dune base en mode partage rseau" slectionne et indiquez
le rpertoire de cette base de sources ("C:\Mes Projets\Ma base de sources" par exemple).
Validez la cration de la base de sources (bouton "Crer la base").
La base de sources est prsent cre. Nous allons pouvoir intgrer notre projet dans cette
base de sources.
5. Passez lcran suivant.
6. Lassistant nous propose de placer le projet dans le sous-rpertoire "Projets WinDev" de la
base de sources.
Nous allons accepter cet emplacement. Passez lcran suivant.
N
o
t
e
s
Lutilisation dune base de sources au format HyperFileSQL Client/Serveur per-
met dutiliser cette base de sources distance.
GAF WinDev.book Page 431 Jeudi, 5. juillet 2012 9:16 09
432 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
7. 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 lcran suivant.
8. Lassistant nous demande de slectionner les diffrentes dpendances du projet ajouter
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 lcran suivant.
9. 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.
N
o
t
e
s
Partage dlments du projet
Lors de lintgration dans le GDS de projets partageant les mmes ressources (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.
GAF WinDev.book Page 432 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 433 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Ouverture du projet depuis le GDS
Pour travailler sur un projet prsent dans le gestionnaire de sources, il faut rcuprer, en local,
une copie de ce projet. Pour cela, il suffit douvrir le projet depuis le gestionnaire de sources
(option "GDS .. Ouvrir un projet depuis le GDS").
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.
Configuration du GDS
Avant de commencer travailler sur les lments du projet prsent dans le GDS, il est important
de configurer le GDS.
Les points importants de cette configuration concernent :
le mode dextraction des lments du projet.
le mode dextraction du projet (fichier WDP).
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 l'lment (bou-
ton d'extraction prsent dans le panneau).
le mode automatique : si vous tentez de modifier un lment du GDS non extrait, le GDS pro-
N
o
t
e
s
Les prochaines ouvertures dun projet gr par le GDS sont identiques aux ouver-
tures dun projet non gr par le GDS : il suffit douvrir le projet (fichier ".WDP")
correspondant la copie locale.
GAF WinDev.book Page 433 Jeudi, 5. juillet 2012 9:16 09
434 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
pose automatiquement d'extraire cet lment. Aprs la validation de l'extraction, l'lment peut
tre modifi.
Remarque : ce mode est dconseill lors d'une utilisation du GDS avec une connexion Internet
lente.
Dans ce cours, nous allons utiliser lextraction automatique.
!
Pour vrifier que lextraction automatique est bien active, slectionnez loption "Outils ..
Options .. Options gnrales de WinDev". Dans longlet "Gnral", vrifiez que loption "Extrac-
tion des lments la premire modification" est slectionne. Si ce nest pas le cas, activez
cette option.
Mode dextraction du projet
Le fichier Projet (fichier WDP) contient les diffrentes options pour le paramtrage du projet (code
dinitialisation du projet, liste des lments relis, nom de la premire fentre du projet, ...).
WinDev propose deux modes de gestion du projet :
Mode Matre/Invit : Seul le matre peut modifier le projet et reporter ces modifications dans la
base de sources du GDS. Le matre peut galement rintgrer tous les lments pour crer
lexcutable et le programme dinstallation. Les modifications ralises par les invits sur le pro-
jet ne seront pas prises en compte dans la base de source du GDS.
Mode automatique : Le fichier projet est extrait uniquement si l'action ralise le ncessite
(quel que soit l'utilisateur). Lorsque l'action sur le projet a t effectue, le fichier projet est auto-
matiquement rintgr.
Dans ce cours, nous allons utiliser lextraction automatique.
!
Pour vrifier que lextraction automatique du projet est bien active, slectionnez loption
"GDS .. Gestion du projet .. Grer automatiquement lextraction du projet".
N
o
t
e
s
Le mode Matre/Invit est conseill pour une utilisation du GDS par un seul dve-
loppeur.
N
o
t
e
s
Le mode "Automatique" devient vite ncessaire pour des projets importants par-
tags par plusieurs dveloppeurs.
GAF WinDev.book Page 434 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 435 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Extraction dun lment
Nous allons maintenant commencer travailler avec le GDS.
Pour modifier un lment du projet, il est ncessaire de lextraire.
!
Nous allons extraire la fentre "FEN_ChampBouton" :
1. Slectionnez la fentre "FEN_ChampBouton" dans lexplorateur du projet. Cette fentre est
prsente dans le sous-dossier nomm "Champs classiques".
2. Double-cliquez sur llment pour louvrir sous lditeur de fentres.
3. Affichez le code du bouton F2 (option "Code" du menu contextuel).
4. Nous allons saisir un commentaire devant la ligne "Info ...". Positionnez le curseur et utilisez
la touche ENTREE.
5. La fentre dextraction automatique apparat :
6. Saisissez un commentaire ("Ajout dun commentaire pour F2" par exemple). Ce commen-
taire sera utile pour les autres dveloppeurs.
7. Le GDS propose trois modes dextraction :
Exclusif (mode conseill) : personne ne pourra extraire cet lment jusqu' sa rintgra-
tion. L'lment pourra uniquement tre extrait pour test.
Pour test : l'lment pourra tre modifi mais les modifications ne pourront pas tre rint-
gres.
Multiple : l'lment pourra galement tre extrait par d'autres utilisateurs. Dans ce cas,
lors de la rintgration, il sera possible de visualiser les diffrences entre les diffrentes
versions de l'lment. Ce mode est rserv des cas dutilisation spcifiques et des
dveloppeurs avancs.
8. Nous allons extraire la fentre en mode exclusif. Conservez loption "Exclusif" coche et vali-
dez lextraction.
La fentre est extraite. Le code peut tre modifi.
GAF WinDev.book Page 435 Jeudi, 5. juillet 2012 9:16 09
436 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Modification de llment extrait
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.
!
Modifiez la fentre extraite.
1. Saisissez le commentaire suivant : "// Affichage de la touche utilise". Fermez la fentre de
code.
2. Changez lemplacement des champs, modifiez les libells, ajoutez des champs ou du
code, ...
3. Enregistrez votre fentre (CTRL + S).
!
Testez vos modifications.
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.
!
Slectionnez loption "GDS .. Rintgrer llment". Lcran suivant saffiche :
Cet cran permet de :
connatre les modifications effectues en comparant l'lment de la base de sources avec
l'lment extrait (bouton "Mes Modifs").
accder l'historique de l'lment 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 l'lment, tout en conservant l'lment extrait
(option "Garder llment extrait").
GAF WinDev.book Page 436 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 437 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Validez la rintgration.
Synchronisation du projet
Plusieurs options permettent de configurer un projet manipul avec le GDS. Ces options sont
regroupes dans l'onglet "GDS" de la description du projet (option "Projet .. Description du projet").
Ces options sont les suivantes :
Proposer la rcupration de la dernire version des lments l'ouverture du projet.
Cette option permet lors de l'ouverture d'un projet prsent dans le GDS, de proposer la rcu-
pration de la dernire version des diffrents lments du projet.
Par dfaut, la dernire version des lments est automatiquement rcupre.
Proposer la rintgration des lments la fermeture du projet.
Cette option permet d'afficher 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.
Proposer la rintgration et la rcupration de la dernire version des lments lors de la
gnration d'excutables, de bibliothques, de composants,
Cette option permet d'afficher lors de la cration d'un excutable, d'une bibliothque, la
liste des lments extraits, afin de rintgrer et de rcuprer la dernire version des l-
ments.
L'excutable, le composant ou la bibliothque peut ainsi contenir les derniers lments les
plus jour.
Par dfaut, la gnration de l'excutable, de la bibliothque, se fait avec les lments du
projet actuellement prsents sur le poste local.
Extraire/Rintgrer automatiquement le projet.
Cette option permet dextraire ou de rintgrer automatiquement le projet lors de la manipu-
lation dun lment.
Par dfaut, cette option nest pas slectionne.
Inclure les nouveaux lments uniquement dans la configuration courante.
Cette option permet de grer les ajouts dlments uniquement dans la configuration en
cours.
Par dfaut, cette option nest pas slectionne.
N
o
t
e
s
Si vous utilisez les Centres de Contrle, il est galement possible de terminer la
tche en cours lors de la rintgration de llment dans le Gestionnaire de sour-
ces. Cette fonctionnalit est utile notamment pour assurer le suivi des tches,
des corrections de bugs, ...
N
o
t
e
s
Fusion de code
Vous pouvez comparer un lment avec une de ces versions prcdentes. Il est
alors possible de comparer le code pour rcuprer un code "perdu" ou supprim
par erreur par un autre dveloppeur par exemple.
GAF WinDev.book Page 437 Jeudi, 5. juillet 2012 9:16 09
438 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
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, il suffit d'utiliser l'option "GDS .. Travail distance .. Se dconnecter
pour une utilisation nomade".
la reconnexion, il suffit d'utiliser l'option "GDS .. Travail distance .. Se reconnecter et syn-
chroniser". Il suffit alors de rintgrer 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
nomade, 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
L'administrateur de 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).
!
Lancez ladministrateur du GDS (option "GDS .. Administrateur du Gestionnaire de Sources").
Tous les lments du projet y sont lists.
Pour plus de renseignements sur le GDS, consultez laide en ligne de WinDev (mot-cl : "GDS").
GAF WinDev.book Page 438 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 439 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.4. CENTRES DE CONTRLE
Ce que vous allez apprendre dans cette leon ...
Prsentation
Le Centre de Suivi de Projets
Suivre les retours client avec Centres de Contrle
Les autres Centres de Contrle
Dure estime : 20mn
GAF WinDev.book Page 439 Jeudi, 5. juillet 2012 9:16 09
440 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WinDev propose un ensemble doutils pour suivre le dveloppement dun projet, de sa conception
sa maintenance. Ces outils sappellent les Centres de Contrle.
Dans un chapitre prcdent, nous avons dj voqu le Centre de Contrle HyperFileSQL. Ce Cen-
tre de Contrle (redistribuable) permet notamment de grer les applications HyperFileSQL Client/
Serveur dployes.
Dans cette partie, nous allons nous intresser aux Centres de Contrle lis au dveloppement
dune application :
le centre de Suivi de Projets.
le centre de Contrle Qualit.
Ces deux centres utilisent une base de donnes spcifique. Cette base de donnes peut tre :
soit une base de donnes HyperFileSQL Classic : au premier lancement de WinDev, vous avez
donn le chemin de cette base de donnes. Par dfaut cette base est installe dans un sous-
rpertoire de WinDev 17.
soit une base de donnes HyperFileSQL Client/Serveur.
Ces informations sont modifiables tout moment depuis les options de WinDev (option "Outils ..
Options .. Options gnrales de WinDev", bouton "Paramtres des Centres de Contrle").
Le Centre de Suivi de Projets
Le Centre de Suivi de Projets est le cur de lorganisation. Le Centre de Suivi de Projets permet
de grer le planning de ralisation dun projet, de sa cration sa livraison finale. Il est ainsi pos-
sible de connatre lensemble des tches raliser sur un projet, les dveloppeurs concerns, les
dures ncessaires, l'tat d'avancement du projet, ...
Pour tester les Centres de Contrle, nous allons utiliser notre application "Mes Comptes".
!
Lancez le Centre de Suivi de Projets (option "Outils .. Centre de Suivi de Projets").
La premire chose faire est de dfinir le "Projet" de travail. Dans notre cas, ce projet corres-
pond un projet WinDev, mais il pourrait sagir de nimporte quel autre projet.
N
o
t
e
Configuration ncessaire
Pour suivre cette leon, vous devez utiliser lenvironnement en mode complet.
Pour plus de dtails, consultez Configuration ncessaire, page 417.
N
o
t
e
s
Si vous navez jamais lanc le Centre de Suivi de Projet, un cran vous permet de
dfinir les options de la gestion du temps.
N
o
t
e
s
Le Centre de Suivi de Projets peut vous aider grer, planifier nimporte quel
projet ou tche (de dveloppement, commercial, ou autre).
GAF WinDev.book Page 440 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 441 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
1. Dans le Centre de Suivi de Projets, crez un nouveau projet (option "Gestion .. Gestion des
Projets", bouton "+").
2. Saisissez :
le nom du projet (par exemple "Autoformation")
sa description (par exemple "Mes comptes")
le type dapplication : Windows
le chemin du projet. Dans notre cas, indiquez un chemin de projet hors GDS (par exemple le
chemin du projet "Mes Comptes.wdp", dans le sous-rpertoire "Autoformation\Corrigs\Mes
Comptes" de WinDev).
un groupe
le spool associ (vous pouvez en crer un nouveau). Le spool permettra de rcuprer les
demandes ralises par les utilisateurs.
la couleur associe au projet (permet didentifier rapidement les diffrents projets).
3. Lcran permettant de slectionner les intervenants de votre projet est automatiquement
affich. Laissez vous-mme, et validez.
4. Fermez la fentre de gestion des projets.
!
Maintenant, il est possible de dfinir des tches sur le projet. Nous allons crer une tche
pour passer notre projet en multilingue :
1. Slectionnez loption "Tches .. Crer une nouvelle tche". Cette tche va tre associe au
projet "Autoformation" que nous venons de crer.
N
o
t
eSi le projet est disponible dans le GDS (Gestionnaire de sources), il est possible
de saisir la base de sources et le rpertoire distant correspondants au projet.
GAF WinDev.book Page 441 Jeudi, 5. juillet 2012 9:16 09
442 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
2. Donnez les caractristiques suivantes :
3. Validez. La tche apparat dans la liste des tches.
Vous pouvez crer autant de tches que vous voulez. Ces tches reprsentent votre planning. Ces
tches peuvent galement tre des tches fixes (par exemple une runion un jour et une heure
donne) ou priodiques (par exemple, une runion tous les vendredis).
Pour activer une tche, il suffit dutiliser le menu contextuel de la liste des tches, et slectionner
loption "Dmarrer cette tche".
Lutilisation du Centre de Suivi de Projets est trs simple : ds que vous effectuez une tche, vous
slectionnez cette tche dans le Centre de Suivi de Projets, et vous indiquez que vous "dmarrez
cette tche" (option du menu contextuel de la liste des tches). Si votre projet est li un projet
WinDev, ds que le projet est ouvert sous WinDev, la tche correspondante est active.
GAF WinDev.book Page 442 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 443 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Grer son temps
La gestion du temps est primordiale. O passe le temps de chaque journe? Comment le savoir
sans contrainte supplmentaire, sans astreindre les membres de l'quipe une saisie fasti-
dieuse, et sans non plus donner limpression dsagrable dtre espionn?
La saisie du temps pass sur les tches est une fonctionnalit intressante de WinDev. Cette fonc-
tionnalit est lie l'utilisation du Centre de Suivi de Projets.
Le principe est simple : la liste des tches est saisie dans le Centre de Suivi de Projets.
!
Pour activer laide la gestion du temps :
1. Dans le Centre de Suivi de Projets, slectionnez "Paramtres .. Options du Centre de Suivi
de Projets".
2. Dans longlet "Aide la gestion du temps", slectionnez "Activer laide la gestion du
temps".
3. Validez.
La tche en cours est rappele intervalle de temps rgulier.
Lutilisateur peut valider la tche en cours, ou si ncessaire, changer sa tche en cours. De plus,
si le poste de travail est inutilis pendant une priode dtermine, une "roue des tches" saffi-
che.
GAF WinDev.book Page 443 Jeudi, 5. juillet 2012 9:16 09
444 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Cette roue des tches permet de slectionner la tche d'interruption correspondant au temps
coul pendant l'affichage de la roue.
Configuration
Il est possible d'activer/dsactiver la gestion du temps dans la fentre de paramtrage de la ges-
tion du temps. Cette fentre peut tre affiche :
dans le Centre de Suivi de Projets (option "Paramtres .. Options du Centre de Suivi de Projets")
dans WinDev : option "Projet .. Gestion du temps .. Options de la gestion du temps".
Suivre les retours client avec les Centres de Contrle
Nous avons vu dans la partie 2 de ce cours, lintrt du menu automatique. Une des options de ce
menu automatique est lenvoi de suggestions, dysfonctionnements ou rgles mtier au dve-
loppeur de lapplication.
La gestion des retours clients dpend de lutilisation en mode connect ou non de lapplication.
Si lapplication est en mode connect (la base de donnes des Centres de Contrle est accessi-
ble aux utilisateurs), les demandes sont directement enregistres dans la base de donnes des
Centres de Contrle :
les suggestions et les dysfonctionnements sont enregistrs dans le spool de lapplication.
les rgles mtier sont automatiquement ajoutes aux rgles mtier du projet.
Si lapplication est en mode dconnect (la base de donnes des Centres de Contrle nest pas
accessible aux utilisateurs), les demandes se font par emails. Le Centre de Suivi de Projets doit
tre configur pour recevoir les emails (paramtrage ralis dans les options administrateur du
Centre de Suivi de Projets) :
les suggestions et les dysfonctionnements sont enregistrs dans le spool de lapplication, puis
sont grs par le Centre de Contrle Qualit.
les rgles mtier sont automatiquement ajoutes aux rgles mtier du projet.
N
o
t
e
s
Pour plus de dtails sur la gestion des retours Client, il est conseill de consulter
laide en ligne (mot-cl : "Retour Client").
GAF WinDev.book Page 444 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 445 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Les autres Centres de Contrle
WinDev dispose galement dautres Centres de Contrle, rservs aux dveloppeurs WinDev :
Centre de Rutilisabilit : Ce centre permet de centraliser les ressources (composants,
bibliothques, classes, ...) de vos diffrents projets afin de les mettre disposition de votre
quipe de dveloppement.
Centre de Gestion des documents : Ce centre permet de centraliser les aides et documents
gnrs pour vos projets.
WinDev propose galement dutiliser le Superviseur dInfrastructure LOgicielle (SILO). Cet outil
permet de gnrer un rapport de synthse sur ltat de linfrastructure informatique. vous avez
accs toutes les informations concernant vos serveurs et vos applications : applications prsen-
tes, utilisateurs connects, charge, ...
GAF WinDev.book Page 445 Jeudi, 5. juillet 2012 9:16 09
446 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.5. RGLES MTIER
Ce que vous allez apprendre dans cette leon ...
Prsentation
Crer une rgle mtier
Valider une rgle mtier
Dure estime : 20mn
GAF WinDev.book Page 446 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 447 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
WinDev permet de grer des rgles mtier.
Une rgle mtier permet de dfinir un mode opratoire prcis ou de prciser un traitement parti-
culier. Par exemple : le calcul dun taux de TVA avec ses particularits, les rgles de changement
de statut dun client, la formule de calcul dun montant de frais de port, ...
Une rgle mtier peut tre simple ou labore, et concerner un ou plusieurs lments dun ou de
plusieurs projets.
Exemple
Pour voir les avantages des rgles mtier, nous allons crer une rgle mtier sur le projet "Mes
comptes" cr la partie 2 de ce cours dauto-formation. Si vous navez pas cr cette applica-
tion, une version corrige est disponible.
Pour ouvrir ce projet sous WinDev :
1. Slectionnez loption "Fichier .. Ouvrir un projet".
2. Slectionnez votre projet "Mes Comptes".
Pour ouvrir la version corrige, slectionnez loption "? .. Guide dauto-formation .. Application Mes
Comptes (Corrig)".
Application sur un exemple concret
Cration dune rgle mtier
!
Ouvrez le projet "MesComptes" et affichez la fentre "FEN_PersonneX".
!
Nous allons modifier cette fentre pour grer le cas des personnes ges de moins de 18 ans.
En effet, si une personne de moins de 18 ans est associe un compte, des conditions spci-
fiques doivent tre prises en compte.
1. Crez un champ libell et positionnez-le ct du champ "Date de naissance". Ce libell a
pour nom "LIB_Libell1".
2. Dans le code de sortie du champ "Date naissance", saisissez le code suivant :
Ce code permet de calculer lge de la personne, et si celui-ci est infrieur 18, le libell affi-
che en rouge la chane "Personne non majeure".
N
o
t
e
Configuration ncessaire
Pour suivre cette leon, vous devez utiliser lenvironnement en mode complet.
Pour plus de dtails, consultez Configuration ncessaire, page 417.
Age_Individu est une Date = Age(SAI_DateNaissance)
SI Age_Individu..Anne < 18 ALORS
// On indique que la personne n'est pas majeure
LIB_Libell1 = "Personne non majeure" + RC + ...
"Conditions spcifiques"
LIB_Libell1..Couleur = RougeFonc
SINON
// On rinitialise le libell
LIB_Libell1 = ""
FIN
GAF WinDev.book Page 447 Jeudi, 5. juillet 2012 9:16 09
448 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Ce code doit tre excut :
chaque modification de la date de naissance dune personne
chaque affichage de la fiche dune personne.
Nous allons donc crer une procdure avec ce code pour pouvoir lexcuter volont.
1. Sous lditeur de code, slectionnez le code que vous venez de saisir.
2. Dans le menu contextuel, slectionnez loption "Crer une procdure .. Crer une procdure
locale contenant le code slectionn".
3. Donnez un nom la procdure : CalculAge.
4. Copiez lappel la procdure CalculAge dans les lments suivants :
Bouton de recherche lidentique
Bouton de recherche gnrique
les boutons de parcours
!
Testez la fentre. Faites une recherche gnrique sur VINI, et affichez VINI Emma.
!
Nous allons maintenant crer une rgle mtier sur cette fentre.
Dans notre cas, la rgle mtier va sappliquer toutes les personnes ayant moins de 18 ans.
Dans ce cas, un traitement spcifique doit tre fait : il faut afficher un libell indiquant que la
personne est non majeure.
1. Affichez le volet des rgles mtier (option "Affichage .. Barres doutils .. Volets .. Rgles
mtier").
2. Par dfaut, la nouvelle rgle mtier sera cre sur llment slectionn : slectionnez le
libell "LIB_Libell1".
3. Cliquez sur le bouton "+" : lcran de saisie de la rgle mtier saffiche.
4. La description de la rgle est la suivante : "Si la personne a moins de 18 ans, afficher un
libell rouge indiquant que la personne est mineure".
5. Nous allons maintenant dfinir sur quels lments la rgle mtier doit sappliquer. Cliquez
sur longlet "Liens".
6. Nous allons dfinir un lien automatique : la rgle sappliquera ds quun lment respec-
tant les conditions de la rgle sera cr. Cliquez sur le bouton "Conditions des liens automati-
ques" ( ).
7. Cette rgle mtier sappliquera sur le projet courant. Slectionnez loption "Le projet cou-
rant uniquement".
GAF WinDev.book Page 448 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 449 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
8. Nous allons dfinir les conditions de slection de la rgle mtier. Cliquez sur "+" et indiquez
les informations suivantes :
La rgle va concerner tous les champs des fentres lis la rubrique "Personne.DateNais-
sance". Validez. La condition de slection est affiche.
Automatiquement, les fentres existantes du projet correspondant la rgle sont listes.
9. Validez. La condition de slection apparat. Validez la fentre de dfinition des conditions
des liens automatiques.
10. La liste des liens pour llment "FEN_PersonneX" est affiche. Vous pouvez passer ltat
du lien en "Ralis" pour llment concern dans la fentre "FEN_Personne_X".
11. Validez la cration de la rgle mtier.
12. Enregistrez votre fentre.
GAF WinDev.book Page 449 Jeudi, 5. juillet 2012 9:16 09
450 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.6. LES 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 : 30mn
GAF WinDev.book Page 450 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 451 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Un composant externe WinDev est
une brique applicative qui peut
tre rutilise dans un nombre illi-
mit de projets (et donc d'excuta-
bles).
Un composant externe permet
d'avoir 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 l'di-
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 sta-
bilit du code sont garanties.
La ralisation d'un composant externe est trs simple.
Comment faut-il faire? Faites comme d'habitude, crez vos fentres, procdures, classes. Puis
lorsque vous aurez termin, au lieu de choisir l'option de cration de l'excutable, prenez l'option
de cration d'un composant, c'est tout!
Un composant peut contenir du code, des fentres, une analyse, des fichiers de donnes, etc ... !
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 dve-
loppeurs. Il ne risque pas dy avoir des modifications faites "par erreur"!
Les projets volumineux
Les composants externes permettent d'avoir plusieurs projets distincts de tailles rduites, et
d'avoir un projet central dans lequel les lments des autres projets sont visibles. Lutilisabilit
des composants externes est bien meilleure que les bibliothques (fichiers WDL).
N
o
t
e
s
Pour partager du "code", il y a cinq mthodes principales avec WinDev :
1. Les collections de procdures
2. Les classes
3. Les superchamps ( travers lutilisation dun dictionnaire)
4. Les composants externes
5. Les composants internes
GAF WinDev.book Page 451 Jeudi, 5. juillet 2012 9:16 09
452 Partie 9 : Gestion de projet avance (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 d'avoir des
incohrences dans la base de donnes dues des codes sources modifis ou trop vieux. En
regroupant les oprations d'accs (en criture au moins) la base de donnes dans un compo-
sant externe, cela permet d'avoir un seul code source vrifier/maintenir, et cela permet donc de
limiter le risque d'incohrences 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 d'avoir des traitements plus ou moins complexes utiliss dans plusieurs projets. Il
est possible de rutiliser ces traitements par l'intermdiaire de "collections de procdures" ou de
"classes". Dans ce cas il existe un risque de modifications non reportes entre les diffrents pro-
jets, qui rendent ensuite ces lments incompatibles entre eux.
L'utilisation des composants externes permet d'viter des modifications intempestives et permet
de conserver des projets compatibles auxquels il est simple d'apporter 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, ldition du code ne sera pas permise mais la documenta-
tion concernant lutilisation des fonctions (par exemple des procdures) 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. D'autres dveloppeurs WinDev pourront intgrer ces fonctionnalits dans leurs propres
projets. Les dveloppeurs qui utilisent un composant externe peuvent voir les lments du compo-
sant 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 exem-
ple, laffichage dune fentre se fait par la fonction Ouvre en WinDev, et laffichage dune
page se fait par la fonction PageAffiche en WebDev).
GAF WinDev.book Page 452 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 453 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Etape par tape
Etape 1 : Cration dun composant externe
Nous allons crer un composant externe. Ce composant externe va nous permettre de connatre
instantanment les caractristiques dun pays (code Iso, Capitale, devise, drapeau).
Lors de lappel au composant externe, vous pourrez :
Passer un pays en paramtre.
Rcuprer les informations voulues.
Pour ne pas avoir dvelopper le code ncessaire au fonctionnement du composant, nous avons
regroup tous les lments ncessaires dans un projet "PaysComposant". Nous allons nous servir
de ce projet pour crer notre composant externe. Nous crerons par la suite un nouveau projet
pour utiliser ce composant externe.
!
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
"Cration dun composant externe (Exercice)". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Cration dun composant externe (Exer-
cice)".
!
Ce projet est constitu :
dune collection de procdures permettant de retrouver les informations demandes
dune analyse permettant de dcrire les fichiers de donnes stockant les informations.
Nous allons maintenant crer notre composant.
!
Dans le menu de WinDev, slectionnez loption "Atelier .. Composant Externe .. Dfinir un nou-
veau composant partir de ce projet".
!
Identifiez votre composant :
1. Saisissez le nom "PaysComposant".
2. Saisissez le libell du composant "Composant PaysComposant".
!
Passez lcran suivant.
Slectionnez les lments qui constituent le composant. Dans cet exemple, tous les lments
sont ncessaires. Cochez tous les lments (y compris les fichiers de donnes).
N
o
t
e
s
WinDev est livr en standard avec le composant externe "Pays du monde". Ce
composant externe est une version plus complte du composant externe utilis
dans ce cours dauto-formation.
N
o
t
e
s
Si vous ne voulez pas suivre les diffrentes tapes de la cration du composant
externe, utilisez loption "? .. Guide dauto-formation .. Utilisation dun composant
externe (Corrig)" pour charger le projet dutilisation du composant externe.
GAF WinDev.book Page 453 Jeudi, 5. juillet 2012 9:16 09
454 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Passez lcran suivant.
Lassistant vous demande de slectionner les lments du composant qui seront accessibles
depuis lapplication cliente. Dans notre exemple, seule la collection de procdures "pPays"
sera utilise :
!
Passez lcran suivant. WinDev va crer le composant puis propose de gnrer le compo-
sant.
!
Dans lassistant de gnration du composant, WinDev propose dautoriser la traduction du
composant. Cette fonctionnalit est intressante 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
GAF WinDev.book Page 454 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 455 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
et de rintgrer les messages traduire dun projet.
Dans cet exemple, ne cochez pas cette option. Passez lcran suivant.
!
Choisissez les langues du composant. Notre exemple contient uniquement le Franais. Passez
lcran suivant.
!
Lassistant propose ensuite de grer les diffrentes versions du composant. Dans notre exem-
ple, le composant vient dtre cr.
Conservez les options par dfaut. Passez lcran suivant.
!
Dans cette fentre, saisissez les diffrentes informations concernant le composant :
Propritaire,
Libell, Copyright, ...
Passez lcran suivant.
!
Vous pouvez associer une image votre composant. Les utilisateurs du composant pourront
lidentifier rapidement dans le volet "Catalogue dexemples". Passez lcran suivant.
!
Spcifiez la prsentation gnrale du composant. Cette prsentation permettra lutilisateur
du composant de connatre sa finalit. Saisissez par exemple :
!
Passez lcran suivant. Lassistant va maintenant effectuer la gnration automatique de la
documentation sur le composant. Cette documentation peut tre base sur les commentaires
que vous aurez insrs dans votre code source.
!
Passez lcran suivant. Vous avez la possibilit de modifier la documentation gnre.
Nous nallons pas y toucher. Passez lcran suivant.
!
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 par-
tir du code du composant.
Nous nallons pas gnrer de fichier daide. Dcochez si ncessaire loption. Passez lcran
suivant.
!
Vous avez la possibilit dautoriser les utilisateurs finaux du composant saisir leur propre
code WLangage pour personnaliser vos traitements. Les suggestions peuvent directement
vous tre envoyes. Dans cet exemple, nous nallons pas autoriser la saisie de "Macro Code
Utilisateur". Passez lcran suivant.
GAF WinDev.book Page 455 Jeudi, 5. juillet 2012 9:16 09
456 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Nous nallons pas enregistrer le composant dans le centre de rutilisabilit. Passez lcran
suivant.
!
Il ne reste plus alors qu donner un nom physique notre composant.
!
Validez. Voil, votre premier composant est maintenant cr, il est prt lemploi !
Le composant apparat alors dans le volet "Assistants, Exemples et Composants" (bouton
"Composants", rubrique "Composants personnels").
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.
!
Crez un nouveau projet. Ce projet sappelle "PaysUtilisation" et na pas danalyse.
!
Dans lditeur de projet, slectionnez loption "Atelier .. Composant Externe .. Importer un com-
posant dans le projet .. partir dun fichier".
Remarque : Si vous avez enregistr le composant dans le centre de r-utilisabilit, vous pou-
vez limporter directement depuis le centre de r-utilisabilit.
!
Dans le rpertoire du projet "PaysComposant", slectionnez le sous-rpertoire EXE, puis le
fichier "PaysComposant.WDI". Le projet "PaysComposant" est disponible dans le sous-rper-
toire "Autoformation\Corrigs\PaysComposant".
!
Aprs avoir cliqu sur "Ouvrir", la description de notre composant sest affiche. Cette descrip-
tion contient :
Sur longlet "Gnral", les lments saisis lors de la cration du composant externe, ainsi
que son emplacement. Il est galement possible de dfinir le mode de chargement du
composant.
Sur longlet "Dtail", la description du composant, ainsi que laide gnre automatique-
ment. Il est ainsi possible de connatre les lments utilisables du composant.

N
o
t
e
s
Il est possible daccder tout moment la description du composant. Il suffit
de slectionner le composant dans lexplorateur de projet et de slectionner
loption "Description" du menu contextuel.
GAF WinDev.book Page 456 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 457 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
!
Validez. Le composant est intgr dans votre projet.
Vous allez maintenant crer une nouvelle fentre vierge pour utiliser les diffrentes procdures du
composant.
!
Crez une fentre vierge.
1. Nommez la fentre "FEN_Pays".
2. Saisissez le titre "Caractristiques dun pays".
3. Enregistrez la fentre.
!
Ajoutez les champs suivants :
Un champ Combo rempli par programmation. Ce champ a pour libell "Pays" et pour nom
"COMBO_PAYS".
Un champ de saisie avec pour libell "Code Iso" et pour nom "SAI_ISO".
Un champ image nomm "IMG_Drapeau".
Un champ de saisie avec pour libell "Capitale" et pour nom "SAI_CAPITALE".
Un champ de saisie avec pour libell "Devise" et pour nom "SAI_DEVISE".
!
Editez maintenant le code de la combo "COMBO_Pays". Le code dinitialisation de ce champ
permet de remplir la combo avec la liste de tous les pays du monde, et de slectionner la
France. Le code de slection est ensuite automatiquement excut.
Dans ce code, la procdure PaysListe est une procdure de notre composant qui renvoie la
liste de tous les pays du monde.
!
Le code de slection dune ligne dans la combo va nous permettre dobtenir les caractristi-
ques du pays slectionn :
Dans ce code, les procdures PaysCodeIso, PaysCapitale, PaysDevise et PaysDrapeau sont
des procdures de notre composant.
!
Sauvegardez votre fentre, puis testez en cliquant sur le bouton "GO".
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 exem-
ple, les redistribuer sparment de vos applications.
// Rcupration de tous les pays
ListeAjoute(COMBO_PAYS,PaysListe())
// Slection de la France et mise jour des informations
ListeSelectPlus(COMBO_PAYS,...
ListeCherche(COMBO_PAYS,"France (la)"))
ExcuteTraitement(COMBO_PAYS,trtSlection)
// Mise jour des informations du pays slectionn
SAI_ISO = PaysCodeIso(COMBO_PAYS[COMBO_PAYS])
SAI_CAPITALE = PaysCapitale(SAI_ISO)
SAI_DEVISE = PaysDevise(SAI_ISO)
IMG_DRAPEAU = PaysDrapeau(SAI_ISO)
GAF WinDev.book Page 457 Jeudi, 5. juillet 2012 9:16 09
458 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Distribuer un 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
fichier contient les rfrences aux diffrents fichiers externes utiliss dans le composant.
Distribution professionnelle
La diffusion des composants l'aide d'une procdure d'installation consiste fournir aux utilisa-
teurs du composant WinDev, un programme d'installation. Ce programme installe tous les fichiers
ncessaires l'utilisation du composant dans le rpertoire spcifi par l'utilisateur.
Ce mode d'installation permet de grer automatiquement :
le fichier WDO et l'installation des fichiers supplmentaires utiliss par le composant.
l'installation automatique d'outils ncessaires (MDAC, driver ODBC pour HyperFileSQL, ...).
la mise jour automatique des fichiers de donnes utiliss par le composant (si nces-
saire).
la dsinstallation du composant.
!
Revenez sur le projet "PaysComposant". Pour crer linstallation, slectionnez loption
"Atelier .. Composant Externe .. Crer la procdure dinstallation dun composant".
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, Distribuer un composant").
GAF WinDev.book Page 458 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 459 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.7. MULTI-CONFIGURATIONS
Ce que vous allez apprendre dans cette leon ...
Prsentation
Utiliser un mme projet pour diffrentes configurations
Dure estime : 20mn
GAF WinDev.book Page 459 Jeudi, 5. juillet 2012 9:16 09
460 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Vous avez cr une application, et vous voulez crer un composant partir de certaines fentres
du projet? Votre projet contient des procdures qui pourraient tre utilises dans un service Web?
Une partie de votre application peut tre utilise en Java?
Comment ne pas multiplier les projets? Un seul projet et plusieurs destinations possibles, voil le
dfi rsolu grce aux configurations de projet WinDev.
Les configurations de projet permettent de crer partir dun mme projet plusieurs "cibles" diff-
rentes. tout moment, vous pouvez choisir la configuration sur laquelle vous travaillez, et gnrer
en une seule opration tous les lments pour toutes les configurations dun projet.
Un exemple pratique? Nous allons tester les configurations de projet sur notre application com-
plte.
Cration dune configuration de projet
Nous allons crer une configuration de projet afin de crer un composant partir du projet "Mes
Comptes" cr la partie 2 de ce cours dauto-formation. Si vous navez pas cr cette applica-
tion, une version corrige est disponible.
Pour ouvrir ce projet sous WinDev :
1. Fermez si ncessaire le projet en cours. La fentre de bienvenue apparat.
2. Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet
"Application Mes comptes (Corrig)". Le projet se charge.
Astuce : si la fentre de bienvenue nest pas affiche, il est galement possible de slection-
ner loption de menu "? .. Guide dauto-formation .. Application Mes Comptes (Corrig)".
Pour crer la configuration de projet :
1. Dans le volet "Explorateur de projet", slectionnez loption "Configurations (Mes comptes)".
2. Dans le menu contextuel, slectionnez "Nouvelle Configuration". Lassistant de cration
dune configuration de projet se lance.
GAF WinDev.book Page 460 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 461 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
3. Dans les informations gnrales de la configuration de projet, indiquez le nom (Composant
test), la description (test), et le type de gnration (composant pour notre exemple).
Passez lcran suivant.
4. Indiquez :
pour quels produits le composant pourra tre utilis (WinDev).
Pour quelles plates-formes les erreurs de compilation doivent tre affiches.
Passez lcran suivant.
5. Indiquez les lments intgrer dans la configuration. Pour notre exemple, intgrez deux
fentres. Passez lcran suivant.
6. Validez la cration de la configuration.
7. A la fin de lassistant, la configuration "Composant test" est automatiquement slectionne
dans le volet "Explorateur de projet". Slectionnez la configuration "Mes comptes" puis loption
"Activer cette configuration" du menu contextuel.
Gestion des configurations de projet
Loption "Projet .. Configurations de projet .. Gestion des configurations" permet de dfinir toutes
les options des configurations de projet. Il est possible de :
Crer une nouvelle configuration ou supprimer une configuration existante.
Gnrer une configuration
Paramtrer le mode test
Obtenir la description de llment principal de la configuration
Paramtrer des actions avant et aprs gnration (comme par exemple la copie de llment
dans un rpertoire spcifique).
GAF WinDev.book Page 461 Jeudi, 5. juillet 2012 9:16 09
462 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Gnration multiple
Nous avons vu comment gnrer une configuration, mais bien souvent, aprs une modification, il
est ncessaire de gnrer les lments correspondants toutes les configurations dfinies sur le
projet. Pour cela, il suffit dutiliser loption "Atelier .. Gnration multiple". Slectionnez ensuite les
lments gnrer. Cette gnration sera effectue en une seule opration.
GAF WinDev.book Page 462 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 463 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.8. LE DBOGUEUR
Ce que vous allez apprendre dans cette leon ...
Prsentation
Dboguer un lment du projet
Dboguer un projet
Options avances
Dure estime : 20mn
GAF WinDev.book Page 463 Jeudi, 5. juillet 2012 9:16 09
464 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Lors de la ralisation de lapplication complte (projet MesComptes de la partie 2), nous avons
effectu plusieurs tests : tests de fentres, tests de requtes, tests dtats, ...
Une erreur apparat et vous narrivez pas trouver la cause? WinDev permet daller plus loin dans
les tests, en permettant de suivre pas pas lexcution dun programme : vous visualisez et vous
validez toutes les lignes de code qui sont excutes grce au dbogueur.
Le dbogueur permet pendant lexcution de votre application de connatre les valeurs des diff-
rentes variables utilises, dexcuter certains traitements, de r-excuter des lignes de code. Il est
mme possible de modifier des lignes de code tout en dboguant.
Le dbogueur peut tre utilis en dveloppement (pour trouver la cause dun problme pendant la
phase de dveloppement), ou en excution : il est possible de dboguer un excutable lanc sur
le poste de dveloppement ou sur un autre poste, un composant, ...
Ces fonctionnalits vous intressent? Passons aux choses srieuses et testons directement ces
fonctionnalits.
Dboguer une fentre
Lancer le dbogueur
Nous avons vu que pour lancer le test dune fentre, il suffit dutiliser licne GO (le raccourci [F9]
ou loption "Code .. Tester la fentre").
Pour dboguer une fentre, plusieurs mthodes sont votre disposition.
1re mthode : Vous voulez dclencher le dbogueur pendant le test de votre application, partir
dune action spcifique : il suffit dutiliser la combinaison de touches [CTRL] + [PAUSE]
2me mthode : Vous connaissez le code qui cause lerreur dans votre fentre, vous voulez lan-
cer le dbogueur partir dune ligne de code spcifique : vous pouvez poser un point darrt ou
utiliser linstruction STOP.
Par exemple, nous allons lancer le dbogueur sur une des fentres de notre application dvelop-
pe dans la partie 2 :
1. Ouvrez le projet "Mes Comptes". Si vous navez pas ralis lapplication, le corrig est dispo-
nible grce loption "? .. Guide dauto-formation .. Application Mes Comptes (Corrig)".
2. Ouvrez la fentre "FEN_PersonneX".
3. Affichez le code du bouton de recherche lidentique (BTN_Identique).
4. Cliquez avec la souris dans la colonne jaune prcdant la premire ligne de code. Un point
rouge apparat : cest un point darrt.
GAF WinDev.book Page 464 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 465 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
En test, le dbogueur sera activ ds lexcution de la (ou les) ligne(s) contenant un point
darrt.
5. Le point darrt tant pos, lanons le test de notre fentre (icne ).
6. Slectionnez un lment dans la combo.
7. Cliquez sur le bouton "Recherche identique".
8. Lditeur de code apparat en mode dbogage.
Nous allons maintenant dtailler les informations affiches sous le dbogueur.
Visualiser les informations sous le dbogueur
En mode dbogage, lditeur de code est un petit peu modifi. Une barre doutils spcifique au
dbogage est affiche, et le volet "Dbogueur" est automatiquement affich.
Lditeur de code va permettre de suivre ligne par ligne lexcution du code.
Le volet "Dbogueur" va permettre de suivre les valeurs prises par les diffrentes variables mani-
pules par le code.
Suivons les premires lignes de dbogage :
1. Dans lditeur de code, la flche jaune indique la ligne qui va tre excute.
2. Utilisez la touche [F7]. La ligne est excute. La flche jaune passe la ligne suivante.
3. Positionnez le curseur de souris sur la ligne "FIN".
4. Utilisez la touche [F6]. Toutes les lignes sont excutes jusquau curseur.
N
o
t
e
s
Le mot-cl STOP a le mme effet que le point darrt. Comme le point darrt, il
nest pas pris en compte dans lexcutable.
GAF WinDev.book Page 465 Jeudi, 5. juillet 2012 9:16 09
466 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Nous allons maintenant voir les valeurs des variables utilises :
Les variables manipules dans le code sont automatiquement visualises dans le volet "Dbo-
gueur". Leur valeur est automatiquement affiche.
Pour connatre la valeur dune variable prsente dans le code, il suffit de la survoler avec le cur-
seur de la souris : la valeur apparat dans une bulle daide.
Pour ajouter une expression dans le volet "Dbogueur", il suffit de slectionner lexpression dans
lditeur de code, et de slectionner loption "Ajouter lexpression dans le dbogueur" du menu
contextuel de lditeur de code.
Lorsque lutilisation du dbogueur nest plus ncessaire, vous pouvez :
utiliser la touche [F5] pour continuer lapplication sans utiliser le dbogueur.
utiliser la touche [SHIFT + F5] pour arrter lapplication. Dans ce cas, lditeur de code sera r-
affich en mode normal sur le code en cours dexcution.
Nous avons vu ici les points les plus importants du dbogueur. De nombreuses options sont gale-
ment disponibles, comme les expressions auto-stop, la modification de code pendant le
dbogage, ... Nous vous conseillons de consulter laide en ligne pour plus de dtails (mot-cl :
"Dbogueur").
Fentre de trace du dbogueur
Pour dboguer un projet, il est galement possible dutiliser la fonction WLangage Trace. Cette
fonction permet dafficher dans une "fentre de trace" toutes les informations que vous voulez.
Par exemple, il est possible dafficher la valeur dune variable, un message pour savoir par o
passe lapplication, ...
Lors du GO (du projet, de la fentre, ...), lorsque la fonction Trace est rencontre, la fentre de
trace saffiche automatiquement (cette fentre saffichera galement en clientle). Lorsque le test
se termine, cette fentre disparat. Cependant, vous pouvez retrouver les informations affiches
dans la fentre de trace grce au volet "Trace du dbogueur".
Ce volet affiche toutes les informations affiches pendant le test avec la fonction "Trace". Un clic
sur une des lignes du volet de trace permet daccder automatiquement la ligne de code corres-
pondante.
N
o
t
e
s
Une erreur survient pendant le test de votre application? Vous navez pas le
temps de noter les informations affiches? Pas de problme, le volet de trace a
mmoris ces informations. Un double-clic sur le message derreur permet
dobtenir toutes les informations dtailles.
GAF WinDev.book Page 466 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 467 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Dboguer un projet
Nous venons de voir comment dboguer une fentre, mais il est galement possible de dboguer
le projet dans son ensemble. Dans ce cas, les paramtres spcifis dans loption "Projet .. Mode
test .. Paramtrage du mode test" sont pris automatiquement en compte.
Options avances du dbogueur
Le dbogueur de WinDev est un outil puissant, permettant de dboguer de nombreuses applica-
tions, dans les cas les plus divers. Il est ainsi possible de dboguer :
un composant, par exemple depuis un projet qui utilise le composant.
un excutable (sur le poste en cours ou sur une machine distante)
un excutable dj lanc (sur le poste en cours ou sur une machine distante)
...
GAF WinDev.book Page 467 Jeudi, 5. juillet 2012 9:16 09
468 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.9. LANALYSEUR DE PERFOR-
MANCES
Ce que vous allez apprendre dans cette leon ...
Prsentation de lanalyseur de performances.
Utilisation de lanalyseur de performances.
Dure estime : 20mn
GAF WinDev.book Page 468 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 469 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Lanalyseur de performances est un outil permettant de vrifier et d'optimiser le temps dexcu-
tion de votre application.
Il est conseill d'utiliser lanalyseur de performances pour optimiser votre application (avant sa dif-
fusion par exemple).
Son principe est simple : Vous testez votre application. Pendant ce test, lanalyseur de performan-
ces rpertorie toutes les actions et traitements excuts.
la fin du test, l'analyseur de performances vous prsente :
les 10 traitements qui ont pris le plus de temps
toutes les actions effectues dans lapplication teste, tries par dure (de laction la plus
longue laction la moins longue).
Il est possible de slectionner en particulier un traitement afin danalyser les causes dun temps
de traitement trop important.
Utiliser lanalyseur de performances
Lanalyseur de performances peut tre lanc :
directement depuis l'diteur de WinDev (option "Projet .. Analyseur de performances .. Analyser
les performances").
Dans ce cas, le projet est alors automatiquement excut en mode test. Vous pouvez manipuler
votre application et lancer les traitements de votre choix.
Pour revenir sous l'diteur WinDev, il suffit de quitter votre application.
Lanalyseur de performances affiche alors le rsultat de l'analyse. Ce rsultat est enregistr
sous forme d'un fichier WPF.
depuis un de vos traitements en WLangage, grce aux fonctions suivantes :
Dans ce cas, seul le code prsent entre les fonctions AnalyseurDbut et AnalyseurFin est ana-
lys. Le fichier WPF correspondant peut tre ouvert dans l'analyseur de performances (option
"Projet .. Analyseur de performances .. Rapport de performances .. Ouvrir un rapport de perfor-
mances").
Par dfaut, lanalyseur de performances enregistre les statistiques ralises sur le code de lappli-
cation dans un fichier <Nom du Projet>.WPF.
Pour changer ce nom, cliquez sur le bouton "Enregistrer sous ..." dans lanalyseur de performan-
ces.
Pour ouvrir un fichier de statistiques spcifique (par exemple un fichier cr par programmation) :
1. Slectionnez l'option "Projet .. Analyseur de performances .. Rapport de performances ..
Ouvrir un rapport de performances".
2. Indiquez le chemin et le nom du fichier de statistiques.
La liste des derniers fichiers de statistiques ouverts est prsente dans le menu "Projet .. Analyseur
de performances .. Rapport de performances".
AnalyseurDbut Lance la "collecte d'informations" pour l'analyseur de performances.
AnalyseurFin Arrte la "collecte d'informations" pour l'analyseur de performances.
GAF WinDev.book Page 469 Jeudi, 5. juillet 2012 9:16 09
470 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Optimiser un traitement avec lanalyseur de performances
Lire le rsultat de lanalyseur de performances
L'analyseur de performances prsente le rsultat de l'analyse dans deux onglets :
l'onglet "Synthse" prsente les 20 traitements qui ont pris le plus de temps.
l'onglet "Dtail" prsente tous les traitements lancs lors du test de l'application (classs du
plus long au plus rapide).
Pour chaque traitement, les informations suivantes sont affiches :
Les lments affichs sont les suivants :
1. Fonction : Fonction, traitement ou procdure excute.
2. Temps Total : Temps dexcution de la fonction.
3. Nb appels : Nombre dappels effectus la fonction (procdure ou traitement)
4. Temps 1 appel : Temps dexcution dun appel la fonction (procdure ou traitement)
5. % Code : Pourcentage du temps pass dans le traitement de la fonction ou de la procdure
(code du dveloppeur pouvant tre optimis)
6. Parent : Elment qui contient le traitement.
Choisir un traitement optimiser
Le choix du traitement optimiser se fait en fonction de plusieurs critres :
le temps d'excution du traitement. Les traitements les plus longs doivent bien entendu tre
optimiss.
le pourcentage de temps pass dans le traitement de la fonction ou procdure. Plus ce pourcen-
tage est important, plus le code peut contenir des traitements pouvant tre optimiss.
Optimiser un traitement
Lorsque le traitement optimiser est choisi, l'analyseur de performances vous permet de conna-
tre le dtail des oprations effectues.
Pour afficher le dtail des oprations effectues dans un traitement :
1. Slectionnez la fonction optimiser dans l'onglet "Dtail".
2. Affichez le dtail de cette fonction :
soit en double-cliquant sur la fonction.
soit en cliquant sur le bouton "Appels".
GAF WinDev.book Page 470 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 471 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
L'onglet suivant apparat :
Cet onglet est divis en trois parties :
La fonction slectionne (avec le nombre d'appels cette fonction et le temps total de traite-
ment).
La liste des fonctions appeles par la fonction slectionne.
La liste des fonctions appelant le traitement slectionn.
La liste des fonctions appeles permet d'affiner la recherche du traitement optimiser. En effet, il
est possible de visualiser les diffrentes fonctions appeles et le temps de traitement de chaque
fonction.
Tous les traitements contenant du code WLangage (nomm "Code du dveloppeur") peuvent tre
optimiss.
Un double-clic sur une des fonctions de cette liste (par exemple : "Clic sur Valider") permet de
visualiser le dtail des traitements appels par cette fonction.
Remarques :
Le libell "Traitement interne au moteur d'excution" correspond au temps d'excution de la
fonction ou de la procdure (cas dune fonction WLangage par exemple). Ce temps est incom-
pressible et ne peut pas tre optimis.
Le libell "Code du dveloppeur" correspond au temps d'excution du code mme de la fonction
ou de la procdure (hors appels de sous-fonctions). Ce temps est compressible et peut tre opti-
mis.
Pour visualiser rapidement le code du traitement en cours, il suffit de cliquer sur le bouton
"Code". Lanalyseur reste ouvert et vous pouvez modifier le code en cours.
Le bouton "Prcdent" permet de revenir la fonction immdiatement appelante.
Le bouton "Dbut" permet de revenir au traitement du dbut de l'application.
GAF WinDev.book Page 471 Jeudi, 5. juillet 2012 9:16 09
472 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.10. IMPORT/EXPORT
Ce que vous allez apprendre dans cette leon ...
Importer des lments dun projet dans un autre.
Exporter les lments de votre projet.
Imports spcifiques (Projet WebDev, Access, Visual Basic, fentres non
WinDev, ...).
Dure estime : 10mn
GAF WinDev.book Page 472 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 473 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Importer des lments
Vous avez la possibilit dimporter des lments WinDev existants dans votre projet. Vous pouvez
importer tous les types dlments WinDev :
des fentres, des tats,
des classes, des composants,
des procdures, ...
!
Pour importer des lments existants dans le projet en cours :
1. Slectionnez loption "Fichier .. Importer .. Des lments WinDev et leurs dpendances...".
2. Cliquez sur "..." et slectionnez le rpertoire o se trouvent les lments importer (le
rpertoire doit comporter des lments WinDev).
3. Validez. WinDev liste alors les diffrents lments que vous pouvez importer prsents dans
le rpertoire spcifi (les sous-rpertoires ne sont pas pris en compte).
GAF WinDev.book Page 473 Jeudi, 5. juillet 2012 9:16 09
474 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
4. Slectionnez les lments importer, puis validez.
Les lments (et tous les fichiers utiliss par ces lments : images, ...) font dsormais partie
du projet.
Exporter des lments
Vous pouvez galement exporter des lments de votre projet vers un autre rpertoire par exem-
ple. Ces lments pourront alors tre rutiliss dans dautres projets.
!
Pour exporter des lments de votre projet :
1. Cliquez sur "Fichier .. Exporter .. Vers un rpertoire...".
Dans la fentre qui saffiche, slectionnez les lments de votre projet que vous souhaitez
exporter.
2. Indiquez le nom du rpertoire de destination (ou slectionnez-le avec le bouton "...").
3. Validez.
Les lments sont alors exports vers le rpertoire indiqu. Ces lments sont toujours dispo-
nibles dans votre projet.
N
o
t
e
s
Le bouton "Calculer" (prsent dans la fentre dimportation) permet de calculer la
taille des lments slectionns avec toutes leurs dpendances.
A
t
t
e
n
t
i
o
n
!
Lexportation dlments est plus quune simple copie dlments. En effet, cest
le seul moyen sr pour transmettre un lment dun projet avec toutes ses
dpendances (images, icnes ...). Une solution pratique pour transmettre des
fentres avec leurs dpendances par e-mail, par exemple.
N
o
t
e
s
Le bouton "Calculer" (prsent dans la fentre dimportation) permet de calculer la
taille des lments slectionns avec toutes leurs dpendances.
GAF WinDev.book Page 474 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 475 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Importations spcifiques
Importation dun projet WebDev
WinDev permet dimporter une page ou un projet WebDev entier dans une application WinDev.
Lors de cette importation :
Les pages sont transformes en fentres.
Les codes "Serveur" et "Navigateur" sont regroups.
Limport dlments sans quivalent en WinDev (code Javascript par exemple) est effectu sous
forme de commentaires ou dlments spars.
Pour importer un projet WebDev dans un projet WinDev :
1. Slectionnez loption "Fichier .. Importer .. Importer de WebDev .. Un projet WebDev".
Lassistant dimport de projet WebDev se lance.
2. Slectionnez le projet WebDev importer. Ce projet ne sera pas modifi et un nouveau pro-
jet WinDev sera cr.
3. Donnez le nom et lemplacement du projet WinDev crer.
4. Si une analyse est lie au projet, indiquez son nom, son emplacement, et si elle doit tre
utilise par le projet WinDev.
5. Indiquez les lments partager entre le projet WinDev et le projet WebDev (lments com-
muns du type Etats, Classes, ...). Si les lments sont partags, ils ne seront pas copis dans
le projet WinDev.
6. Validez. Le projet WebDev est converti en projet WinDev.
Pour importer des lments WebDev dans un projet WinDev :
1. Ouvrez le projet WinDev dans lequel llment doit tre import.
2. Slectionnez l'option "Fichier .. Importer .. Importer de WebDev .. Des lments WebDev".
La liste des lments pouvant tre imports saffiche.
3. Slectionnez les lments importer. Passez lcran suivant.
4. Indiquez les lments partager entre les projets WinDev et WebDev. Ces lments ne
seront pas copis dans le projet WinDev.
5. Validez (bouton "Terminer"). Les lments spcifis sont automatiquement imports dans
le projet WinDev en cours.
Importation dune fentre
Une fentre dune application non WinDev vous intresse ? Vous souhaitez rcuprer son
interface? Rien de plus simple.
WinDev permet dimporter une fentre ouverte dans lenvironnement en cours.
La fentre est importe dans le projet en cours. Chaque lment de la fentre est automatique-
ment transform en lment WinDev (libell, champ de saisie, bouton, ...).
Remarque : Tous les lments de la fentre sont imports mais il est souvent ncessaire de modi-
fier la fentre pour obtenir linterface voulue.
GAF WinDev.book Page 475 Jeudi, 5. juillet 2012 9:16 09
476 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Pour importer une fentre dans un projet WinDev :
1. Ouvrez le projet WinDev dans lequel la fentre doit tre importe.
2. Slectionnez l'option "Fichier .. Nouveau .. Fentre".
3. Affichez longlet "Import". Les fentres actuellement affiches sur le poste en cours sont
automatiquement listes. Ces fentres sont identifies par leur titre (affich dans la barre de
titre).
Remarque : Loption "Gnrer des images pour les champs non reconnus" permet de rendre
linterface finale plus proche de linterface de la fentre importer.
4. Validez. Laperu de la fentre importer saffiche.
5. Modifiez si ncessaire le type de champ cr lors de limportation de la fentre (bouton
"Dtails").
6. Validez. La fentre est automatiquement intgre au projet WinDev en cours.
Limites : Ne sont pas imports :
le code des lments.
les champs diffrents des champs suivants :
champ standard de Windows.
champs Delphi.
champs Visual Basic.
les images et les images de fond (sauf si loption "Gnrer des images pour les champs non
reconnus" est coche).
la couleur des lments.
Importation Access
WinDev offre la possibilit dimporter des lments Access : Analyse, Formulaire, Requte ou pro-
jet complet.
Pour importer des lments dune application Access :
1. Slectionnez loption "Fichier .. Importer .. Un projet ou des lments Access".
2. Slectionnez le fichier ".mdb" correspondant au projet Access.
3. Slectionnez les lments importer. Indiquez si ncessaire si la base de donnes doit
tre migre au format HyperFileSQL ou conserve au format Access.
4.Validez.
Attention : Limportation dlments dune application Access peut tre relativement longue.
Importation Visual Basic
WinDev offre la possibilit dimporter des projets Visual Basic et des formulaires Visual Basic.
Pour importer des lments dune application Visual Basic :
1. Slectionnez loption "Fichier .. Importer .. Un projet ou des lments Visual Basic".
2. Slectionnez les fichiers correspondants aux lments importer.
3. Validez.
Attention : Limportation dlments dune application Visual Basic peut tre relativement lon-
gue.
GAF WinDev.book Page 476 Jeudi, 5. juillet 2012 9:16 09
Partie 9 : Gestion de projet avance 477 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
LEON 9.11. INSTALLATION DUNE
APPLICATION
Ce que vous allez apprendre dans cette leon ...
Editeur dinstallation
Update rseau, update Web
Questions/Rponses
Dure estime : 20mn
GAF WinDev.book Page 477 Jeudi, 5. juillet 2012 9:16 09
478 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite
Prsentation
Nous avons effectu prcdemment le dploiement dune application simple.
Cette leon revient sur linstallation dune application en prsentant plus particulirement
les installations avec mise jour automatique
lditeur dinstallation qui permet de crer des installations entirement personnalises.
Update rseau/update Web
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 dins-
tallation sera excut par lutilisateur final, directement sur son poste.
Pour mettre jour lapplication, il suffira de recrer une installation de lapplication. Lutilisateur
final devra installer ce nouveau programme.
Nous avons utilis ce type dinstallation avec lapplication "MesComptes" dans la partie 2 de ce
cours.
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.
Dtaillons un peu plus le fonctionnement dune installation avec mise jour.
Installation avec mise jour rseau
La cration du programme dinstallation est ralise grce lassistant de cration de pro-
gramme dinstallation (option "Atelier .. Crer la procdure dinstallation").
Le programme dinstallation obtenu la fin de lassistant est en fait compos de deux
insta