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 installations : linstallation de lapplication de rfrence. Lapplication de rfrence doit tre installe sur le rseau (par exemple dans un rpertoire partag ou sur un serveur), accessible par tous les utili- sateurs finals de lapplication. linstallation de lapplication elle-mme. Cette installation est englobe dans lapplication de rfrence. Elle nest accessible quune fois lapplication de rfrence installe. Le schma suivant prsente le mode dinstallation dune application utilisant une base HyperFi- leSQL Classic en local, avec une mise jour rseau. A chaque lancement de lapplication par lutilisateur final, la vrification de la version de lapplica- tion de rfrence est automatiquement ralise. Si cette version a t modifie (par exemple si une mise jour de la version de rfrence a t effectue), une mise jour de lapplication finale est automatiquement propose. GAF WinDev.book Page 478 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 479 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite GAF WinDev.book Page 479 Jeudi, 5. juillet 2012 9:16 09 480 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Installation avec mise jour Internet Linstallation avec mise jour par Internet utilise le mme principe. La cration du programme dinstallation est ralise grce lassistant de cration de pro- gramme dinstallation (option "Atelier .. Crer la procdure dinstallation"). Le programme dinstallation obtenu la fin de lassistant est en fait compos de : linstallation de lapplication de rfrence et la page Web permettant de tlcharger linstalla- tion cliente. Ces lments doivent tre installs sur un serveur HTTP. linstallation de lapplication elle-mme. Cette installation est englobe dans lapplication de rfrence. Elle nest accessible quune fois lapplication de rfrence installe, par la page Web de tlchargement. Le schma suivant prsente le mode dinstallation dune application utilisant une base HyperFi- leSQL Client/Serveur, avec une mise jour par Internet. GAF WinDev.book Page 480 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 481 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite GAF WinDev.book Page 481 Jeudi, 5. juillet 2012 9:16 09 482 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Editeur dinstallation Nous avons ralis jusqu prsent des programmes dinstallation avec lassistant dinstallation. Mais pour aller plus loin dans le paramtrage de vos installations, WinDev propose un diteur dinstallation regroupant toutes les options disponibles. Pour lancer lditeur dinstallation, slectionnez loption de menu "Outils .. WDInst - Editeur dins- tallation". Lcran suivant apparat : GAF WinDev.book Page 482 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 483 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Questions/Rponses 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 "CD-ROM", Win- Dev 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 ! Lorsque lexcutable a t ralis (option "Atelier .. Excutable .. Gnrer lexcutable ..."), le rper- toire 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 installer une application? GAF WinDev.book Page 483 Jeudi, 5. juillet 2012 9:16 09 484 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite LEON 9.12. UML ET 3-TIERS Ce que vous allez apprendre dans cette leon ... Quest-ce que le UML? Les diffrents types de diagrammes grs par WinDev. Dure estime : 10mn GAF WinDev.book Page 484 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 485 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Quest-ce que UML? UML (Unified Modeling Language) est une norme de modlisation permettant de "modliser" des traitements. Les diagrammes grs par WinDev Diagramme de classes Le diagramme de classes permet de modliser la structure dun systme et des relations entre les diffrents lments composant ce systme. Il est principalement utilis en POO. Avec WinDev, grce au dessin dun diagramme de classe UML, vous pourrez automatiquement gnrer les classes et les mthodes qui en dcoulent. Utilisable en rtro-analyse ("reverse engineering"), vous pourrez alors avoir un aperu visuel des relations entre les diffrentes classes que vous aurez cres. Diagramme de cas dutilisation Utilisable une fois le cahier des charges tabli (en phase de pr-projet), le diagramme de cas duti- lisation permet dtablir de faon claire et visuelle le comportement de votre projet (correspon- dance entre les implmentations des demandes des utilisateurs par les dveloppeurs, ...). On nomme parfois ce type de diagramme, "un diagramme de squence" (sans chronologie particu- lire). Il nest pas possible de gnrer une application partir de ce type de diagramme. Ce type de dia- gramme sert uniquement lors de la mise en place de la gestion de projet. Diagramme dobjets Un diagramme dobjets reprsente un ensemble dobjets et leurs relations un moment donn. Un diagramme dobjets est utilis pour montrer un contexte (avant ou aprs une interaction entre objets par exemple). Diagramme de composants Un diagramme de composants dcrit l'architecture physique et statique d'une application informa- tique. Par exemple : fichiers sources, librairies, excutables, ... Diagramme dactivit Un diagramme dactivit reprsente le comportement dune mthode ou le droulement dun cas dutilisation. N o t e Configuration ncessaire Pour utiliser les diagrammes UML proposs par WinDev, la fonctionnalit UML doit tre active dans votre configuration. Nous vous conseillons dutiliser lenvi- ronnement en mode complet. Pour plus de dtails, consultez Configuration ncessaire, page 417. GAF WinDev.book Page 485 Jeudi, 5. juillet 2012 9:16 09 486 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Diagramme de squence Un diagramme de squence reprsente lordre chronologique des messages envoys et reus par un ensemble dobjets. Diagramme de collaboration Un diagramme de collaboration prsente lorganisation structurelle des objets qui envoient et reoivent des messages. Diagramme dtats-transitions Un diagramme dtats-transitions prsente un automate tats finis. Il permet ainsi de dcrire les changements d'tats d'un objet ou d'un composant. Un tat se caractrise par sa dure et sa stabilit. Une transition reprsente le passage instantan d'un tat vers un autre. Une transition est dclenche : soit par un vnement. soit automatiquement lorsquaucun vnement dclencheur est spcifi. Diagramme de dploiement Un diagramme de dploiement montre la rpartition physique des matriels (les nuds) utiliss dans un systme et lassociation des programmes excutables ces matriels. Nous ne dtaillerons pas plus lutilisation du langage UML avec WinDev. Consultez laide en ligne pour plus dinformations (mot-cl : "UML"). 3-Tiers Le 3 tiers, c'est quoi? Le dveloppement en architecture "3-tiers" est maintenant simplifi avec WinDev. Le but du 3 tiers est de sparer les 3 couches habituelles d'une application : IHM, Traitements et donnes. Une application sera compose de 3 couches indpendantes : couche prsentation couche Traitements couche d'accs aux donnes. Ces 3 couches communiqueront entre elles l'aide de fonctions spcifiques (des API dans les lan- gages traditionnels, des fonctions avances en WLangage). Cette sparation a pour but de rendre indpendantes chacune des couches afin de simplifier la maintenance et les volutions futures de l'application (par exemple, changement de systme de base de donnes, portage d'un environnement graphique un autre, ...). Elle assure une scurit plus importante car l'accs la base de donnes n'est autoris que par la couche Traitements. Elle a galement l'avantage d'optimiser le travail en quipe et le dveloppement multi-cibles. GAF WinDev.book Page 486 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 487 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Comment mettre en uvre le 3 tiers? Le dialogue entre les diffrentes couches s'effectue par classes ou par structures ( votre choix) qui sont gnres automatiquement par WinDev. 1. Vous choisissez les sources de donnes (fichiers ou requtes que vous dsirez manipuler en 3- Tiers). Vous crez sous l'diteur d'analyses et l'diteur de requtes les diffrents fichiers et requtes ncessaires. 2. WinDev construit automatiquement le diagramme de classes qui correspond aux classes et structures qui vont tre gnres. Pour cela, sous l'diteur d'analyses, slectionnez l'option "Analyse .. Gnrer le diagramme UML correspondant l'analyse". Il est galement possible, dans l'diteur d'UML de crer un diagramme de classes correspondant l'analyse (Option "Fichier .. Nouveau .. Architecture .. UML .. Diagramme de classe .. Construire le diagramme de classe correspondant l'analyse et aux requtes"). Choisissez le type de code gnrer (procdural ou objet) 3. Les classes et structures sont gnres en WLangage. Fermez le modle UML et slectionnez l'option "Atelier .. Modlisation UML .. Gnrer le code". Les collections de procdures et/ou les classes sont automatiquement gnres. 4. Vous pouvez apporter une "valeur ajoute" en dveloppant vos propres mthodes dans ces classes. La synchronisation entre les classes et le diagramme est effectue en temps rel. Il est galement possible de modifier l'analyse, et de synchroniser le diagramme UML avec l'ana- lyse. 5. Il ne vous reste plus qu' utiliser ces classes ou structures pour faire circuler les informations entre la couche "Traitement" et la couche "Prsentation". Manipulation des diffrentes couches Pour la couche "Accs aux donnes" : Vous manipulez les ordres d'accs aux donnes habituels : lecture, criture, requtes, transac- tions, ... Pour la couche "Traitements" : Des fonctions WLangage spcifiques peuvent tre utilises : FichierVersMmoire et MmoireVer- sFichier. Ces fonctions permettent de remplir les membres de la classe partir des rubriques des fichiers correspondants, et inversement. Pour la couche "Prsentation" : Vous manipulez les classes gnres, sans vous soucier de la structure de la base de donnes. Pour la communication entre les couches : Suivant le protocole de communication entre les 2 couches (composant, service Web, HTTP, Site WebDev, ...), les classes peuvent tre srialises en XML ou dans un format binaire (Fonctions Srialise et Dsrialise). GAF WinDev.book Page 487 Jeudi, 5. juillet 2012 9:16 09 488 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite LEON 9.13. MODLISATION SOUPLE Ce que vous allez apprendre dans cette leon ... Principe Manipulation Dure estime : 20mn GAF WinDev.book Page 488 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 489 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Principe Lditeur de modlisation permet de reprsenter toutes les organisations, existantes ou venir. Lditeur de modlisation peut par exemple vous permettre de reprsenter lorganisation de la gestion des mails dans votre entreprise, lorganisation des contacts clients, ... Pour mieux connatre les possibilits de lditeur de modlisation, nous vous avons prpar un exemple de modlisation. Cette modlisation reprsente une partie de lERP (Entreprise Res- source Planning) de lentreprise fictive H2M. Manipulations ! 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 "Modlisation souple". 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 .. Modlisation souple". ! Ouvrez le fichier "Precilia_ERP.wem" (option "Fichier .. Ouvrir" ou en double-cliquant sur la modlisation dans lexplorateur de projet). Dans cette modlisation, vous constatez que plusieurs grands domaines sont prsents : Ges- tion des clients, des devis, marketing, ... Licne signale quune sous-modlisation est prsente. En double-cliquant sur cette icne, vous accdez cette sous-modlisation. GAF WinDev.book Page 489 Jeudi, 5. juillet 2012 9:16 09 490 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite ! Dans notre exemple, ouvrez la sous-modlisation correspondant la gestion des devis. Vous retrouvez les diffrentes tapes de la gestion des devis : ! Regardons en dtail llment "Base du sige". Une flche est prsente en haut gauche de cet lment. Cette flche indique une liaison. Si vous double-cliquez sur la flche, lanalyse de lapplication souvre automatiquement. Cest une fonctionnalit importante de lditeur de modlisation : tout lment de la modlisa- tion peut tre li un lment de votre projet (fentre, code, ...). ! Fermez lditeur danalyses. ! Tous les lments de la modlisation ont des caractristiques. Ces caractristiques peuvent tre affiches en slectionnant loption "Description" du menu contextuel de llment. Par exemple : GAF WinDev.book Page 490 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 491 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Cette fentre permet dindiquer : la liaison de llment avec un fichier externe (analyse, fentre, ...) le niveau dautomatisme de llment : traitement ralis automatiquement, manuellement, ... les acteurs intervenant dans ce traitement (responsable, utilisateurs, dveloppeurs, ...). Ces informations peuvent provenir directement des intervenants dcrits au niveau du Centre de Suivi de Projets. Pour plus de dtails sur les modlisations souples, consultez laide en ligne. GAF WinDev.book Page 491 Jeudi, 5. juillet 2012 9:16 09 492 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite LEON 9.14. MULTILINGUE Ce que vous allez apprendre dans cette leon ... Quest-ce quune application multilingue? Etape par tape, cration dune application multilingue. Dure estime : 20mn GAF WinDev.book Page 492 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 493 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Quest-ce quune application multilingue? Cest une application qui peut sexcuter en anglais, en franais, en allemand ou dans une autre langue. Une seule et mme application peut donc tre utilise dans plusieurs langues. Mais comment est- ce possible? Cest ce que nous allons voir dans cette leon. Nous allons manipuler un projet qui pourra sexcuter en franais ou en anglais, selon le choix de lutilisateur. Les principales tapes dune application multilingue sont : Le choix des langues du projet. Linternationalisation de lanalyse. Linternationalisation des lments du projet (fentres, tats, champs, aide, ...). Linternationalisation des messages prsents dans le code. Linternationalisation des fonctions WLangage. La programmation du changement de langue dans lapplication. Nous allons appliquer ces diffrentes tapes au projet "WD Bourse International". Ce projet, dispo- nible en Franais, va tre traduit en Anglais et en Arabe (avec inversion du sens dcriture). Choix des langues du projet ! Fermez si ncessaire le projet en cours. La fentre de bienvenue apparat. ! Dans la fentre de bienvenue, cliquez sur "Cours dauto-formation" et slectionnez le projet "Application multilingue". 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 multilingue"). ! Lanalyse associe est "WD Bourse". Vous pouvez vrifier cette information dans la description du projet (option "Projet .. Description du projet", onglet "Analyse"). La premire opration consiste choisir les langues du projet. ! Affichez la description du projet si ce nest dj fait (option "Projet .. Description du projet"). ! Cliquez sur longlet "Langues". Notre application va grer le Franais, lAnglais et lArabe : slectionnez ces trois langues. ! Cet onglet permet galement de paramtrer les options linguistiques concernant les nombres, les montaires, les dates, ... pour la langue slectionne. Voyons un exemple : Cliquez sur la langue "Anglais". Cliquez sur "Date" Par dfaut, les options linguistiques de Windows sont utilises. Si vous slectionnez loption "Utiliser les paramtres suivants", il est possible de dfinir le format de date utilis ainsi que la traduction des jours et des mois. Conservez loption "Utiliser les paramtres dfinis dans les options linguistiques de Win- dows". GAF WinDev.book Page 493 Jeudi, 5. juillet 2012 9:16 09 494 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite ! Validez. Internationalisation de lanalyse Par dfaut, une analyse est cre dans une langue et ne peut pas tre traduite. Cependant, cer- taines informations peuvent tre saisies dans plusieurs langues (notes du dossier, informations partages, ...). Si votre application utilise le module Etats et Requtes, il est galement possible de traduire les noms de fichiers et les noms de rubriques. Cette traduction peut tre ralise dans longlet "Etats et Requtes" (de la description de fichiers ou de rubriques). Les champs crs partir des rubriques de lanalyse ont par dfaut le libell de la rubrique spci- fi dans lanalyse. Si un libell a t spcifi dans les informations partages de la rubrique, ce libell sera utilis lors de la cration du champ. Pour grer plusieurs langues dans une analyse : 1. Affichez lditeur danalyses (option "Projet .. Charger lanalyse"). 2. Dans la description de lanalyse (option "Analyse .. Description de lanalyse"), slectionnez longlet "International". N o t e s Dans les options linguistiques, il est possible de choisir le sens dcriture de la langue (case "Divers", option "Sens dcriture"). Il est ainsi possible de crer des interfaces avec une langue scrivant de droite gauche. GAF WinDev.book Page 494 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 495 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite 3. Indiquez les diffrentes langues gres par lanalyse et validez. Pour saisir les informations partages dans plusieurs langues : 1. Affichez la description des rubriques dun fichier de donnes (option "Structure de fichiers .. Rubriques"). 2. Pour chaque rubrique, affichez les paramtres du champ reli la rubrique slectionne (informations partages). Pour cela, cliquez sur la double flche en bas de lcran. GAF WinDev.book Page 495 Jeudi, 5. juillet 2012 9:16 09 496 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Internationalisation des lments du projet Tous les lments du projet peuvent devenir multilingues : fentres, tats, aide, ... Regardons tout dabord les caractristiques dune fentre et de ses champs. Caractristiques traduire ! Ouvrez la fentre "FEN_Graphique.WDW". ! Affichez la description de la fentre (option "Description" du menu contextuel de la fentre). Slectionnez longlet "Langue" : les trois langues slectionnes dans le projet apparaissent. Slectionnez longlet "Gnral" : le titre de la fentre doit tre traduit. Fermez cette fentre. ! Affichez la description du bouton "Paramtres". GAF WinDev.book Page 496 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 497 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Regardons les diffrentes zones concernes par la gestion des diffrentes langues Dans la zone "Libell", les trois langues sont disponibles. Faites dfiler la zone "Libell". Si le projet nest pas encore traduit, le contenu de la langue "Franais" est recopi dans les autres langues. Dans la zone "Image", le bouton permet de configurer la gestion du multilingue. Cliquez sur ce bouton. Dans la fentre qui saffiche, il est possible dutiliser une image diffrente pour chaque lan- gue. Cette fonctionnalit est trs utile si vous utilisez des images contenant du texte. Fermez cette fentre. Cliquez sur longlet "Aide". Cet onglet contient les diffrents messages daide associs au champ. Ici aussi, ces informations doivent tre traduites. GAF WinDev.book Page 497 Jeudi, 5. juillet 2012 9:16 09 498 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Le mme type dinformations est galement traduire pour : tous les champs des fentres les fentres les tats, les champs des tats les messages texte prsents dans lditeur de code. Comment traduire toutes ces informations? Pour traduire ces informations, WinDev met plusieurs moyens votre disposition : une traduction directe des messages dans les diffrents diteurs. une traduction ralise grce un outil externe (WDMSG et WDTRAD) Saisie directe des traductions Les traductions sont directement saisies dans linterface du produit. Par exemple, le libell du bouton "Paramtre" devient "Setting" en anglais. Il suffit douvrir la fentre de description du champ et de saisir dans la langue voulue la traduction correspondante. Si vous disposez dun logiciel de traduction ou dun site de traduction, vous pouvez configurer Win- Dev pour utiliser ce logiciel : 1. Slectionnez loption "Outils .. Options .. Options gnrales de WinDev". 2. Affichez longlet "Traduction". 3. Spcifiez : Si les paramtres rgionaux doivent tre automatiquement activs selon la langue en cours de saisie. Dans ce cas, si la langue ncessite un alphabet spcifique, cet alphabet sera automatiquement slectionn. Le logiciel ou le site utiliser pour la traduction. Les langues gres. 4. Lorsque les paramtres de traductions sont dfinis, il est possible dutiliser le bouton pour utiliser le logiciel dfini pour la traduction. GAF WinDev.book Page 498 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 499 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Cas particuliers Traduction directe des menus La traduction des options dun menu peut tre ralise directement partir de lditeur de fen- tres. Pour traduire le menu dune fentre : 1. Ouvrez la fentre "FEN_Menu.WDW". 2. Slectionnez loption "Affichage .. Langue affiche..." et slectionnez la langue visualiser sous lditeur. Les options de menu saffichent dans la langue slectionne. Si aucune traduction ne corres- pond la langue slectionne, les options de menu saffichent en franais. 3. Saisissez directement le libell des options de menu dans la langue slectionne. Traduction directe des messages de programmation Tous les messages de votre programme peuvent galement tre saisis dans plusieurs langues. Deux types de messages peuvent tre rencontrs : les chanes de caractres simples, par exemple : Pour traduire ce type de message, utilisez loption "Code .. Messages multilingues .. Traduc- tion des messages". La fentre suivante apparat : Cette fentre permet de saisir tous les messages de votre programme dans toutes les lan- gues du projet. Un numro est attribu chaque message. Lorsquune traduction est saisie pour le message, licne apparat sous lditeur de code. GAF WinDev.book Page 499 Jeudi, 5. juillet 2012 9:16 09 500 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite les interrogations directives, par exemple : Pour traduire ce type de message, utilisez loption "Code .. Messages multilangues .. Interro- gations directives". La liste des interrogations directives saffiche. Il suffit de double-cliquer sur la phrase traduire. Traduction directe des fichiers daide La traduction dun systme daide peut tre ralise directement sous lditeur daide. Il suffit de changer la langue daffichage. Si le systme daide na pas encore t traduit, le texte apparatra dans la langue originale (Franais si le texte a t saisi en Franais). GAF WinDev.book Page 500 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 501 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Traduction du rsultat des fonctions WLangage et des messages derreurs du framework De nombreuses informations et messages sont prsents dans le framework WinDev. Par exemple, les noms des jours et des mois utiliss par les fonctions de gestion des dates proviennent du fra- mework WinDev. Pour traduire une ou plusieurs librairies de ce framework, il est ncessaire dutili- ser WDINT (non fourni en standard avec WinDev). Ce logiciel permet dobtenir un fichier dextension WDM. Pour utiliser ce fichier dans votre application : vous pouvez utiliser la fonction ChargeErreur. vous pouvez intgrer le fichier la description du projet dans longlet "Langues". Il suffit de slectionner la langue voulue et de slectionner longlet "Divers". Pour obtenir plus dinformations sur WDINT, contactez le Service Commercial de PC SOFT. Traduction avec WDMSG et WDTRAD Il existe galement un outil nomm WDMSG (non fourni en standard avec WinDev) qui permet : dextraire tous les messages dun projet (libell des champs, message de code, titre des fentres, ...) pour les traduire, de rintgrer les messages traduits. Les messages traduire sont extraits dans un format texte, pouvant tre configur pour tre uti- lis avec la majorit des logiciels de traduction. WDMSG est galement fourni avec un outil daide la traduction, WDTRAD. WDTRAD permet de saisir simplement toutes les traductions des informations multilingues dun projet. Pour obtenir plus dinformations sur WDMSG et WDTRAD, contactez le Service Commercial de PC SOFT. GAF WinDev.book Page 501 Jeudi, 5. juillet 2012 9:16 09 502 Partie 9 : Gestion de projet avance (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Programmation du changement de langue Par dfaut, le projet sexcute dans la langue dexcution dfinie pour le projet (option "Projet .. Description du projet", onglet "Langues"). La fonction Nation permet de changer de langue. Dans une application, le choix de la langue peut tre dfini selon deux mthodes : mmorisation de la langue dans un fichier de paramtres propre lapplication. slection de la langue par une option de menu (utilis dans lexemple). Utilisation dun fichier de paramtres Dans le cas dun fichier de paramtres, le choix de la langue est totalement transparent pour luti- lisateur. La langue peut tre choisie par exemple lors de linstallation du projet ou lors de premier lance- ment de lapplication, et pourra tre modifie par la suite. Pour dterminer la langue dans laquelle sexcutera lapplication, il est ncessaire de lire ce fichier de paramtres dans le traitement dinitialisation du projet. Le traitement est le suivant : Ce traitement ncessite quelques commentaires : La langue choisie est lue dans le fichier "International.INI" La fonction Nation permet de modifier la langue dexcution du projet. La constante passe en paramtre la fonction Nation correspond la langue choisie. Il est ncessaire dutiliser la fonction Nation dans le traitement dinitialisation du projet car le changement de langue sera effectif dans la prochaine fentre qui souvrira. En effet, si la fonction Nation est appele dans le code douverture de la premire fentre du pro- jet, cette fentre sera dans la langue par dfaut et le changement de langue ne sera effectif que pour les autres fentres. Par contre, si la fonction Nation est appele dans le code dinitialisation du projet, la premire fentre du projet sera dans la langue slectionne par la fonction Nation. Utilisation des options de menu Dans le menu de la fentre "FEN_Menu.WDW", loption "Fichier .. Langue" permet de changer la langue. Le code associ ces options est le suivant : Langue est une chane; NomFic est une chane //Lecture du fichier de paramtres NomFic = "INTERNATIONAL.INI" Langue = INILit("PARAMETRE", "LANGUE", "FRANCAIS", NomFic) SELON Langue CAS "FRANCAIS" : Nation(nationFranais) CAS "ANGLAIS" : Nation(nationAnglais) CAS "ARABE" : Nation(nationArabe) FIN - - Choix menu : &Fichier..&Langue.....&Franais Nation(nationFranais) Utilise(FEN_Menu) GAF WinDev.book Page 502 Jeudi, 5. juillet 2012 9:16 09 Partie 9 : Gestion de projet avance 503 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite La fonction Utilise permet de recharger la fentre passe en paramtre. Le changement de langue effectu par la fonction Nation est donc immdiatement effectif. ! Testez le projet. Gestion de lUnicode et des alphabets spcifiques WinDev propose deux modes de gestion : le mode mono alphabet : Dans ce mode, si votre application gre des langues utilisant des alphabets spcifiques (grec, coren, ...), il est possible de changer par programmation : l'alphabet utilis par toutes les polices cran (fonction ChangeAlphabet). Cet alphabet pourra galement tre utilis pour les donnes enregistres dans les fichiers HyperFileSQL. Pour plus de dtails, consultez laide en ligne (mot-cl : Multilingue). la langue du clavier manipul par les utilisateurs de l'application (fonction ChangeClavier). le support complet de Unicode : Ce mode permet de grer les alphabets non latins. Dans ce mode, les fonctions ChangeAlphabet et ChangeClavier sont inutiles. Le changement dalphabet est ralis automatiquement selon les options de langue dfinies dans la description du projet. Il est galement possible de mlanger les diffrents alphabets. La configuration du mode de gestion de lUnicode est ralise dans les options de la configuration en cours (onglet "Unicode" de la fentre de description de la configuration). - - Choix menu : &Fichier..&Langue.....&Anglais Nation(nationAnglais) Utilise(FEN_Menu) N o t e Important Si vous choisissez de passer vos projets en mode UNICODE, la cohabitation ANSI / Unicode gnre toutefois des contraintes : il faut traduire les donnes lors du passage dun systme de codage lautre. Lchange de chanes texte avec lextrieur de lapplication doit tre adapt pour prendre en compte la nouvelle reprsentation mmoire des chanes (en Unicode, 1 caractre est cod sur 2 octets alors quen ANSI il est cod sur 1 seul octet) : appel dAPI, lecture ou cri- ture sur disque pour change de donnes, lecture ou criture de sockets conte- nant des chanes, ... Si vous choisissez de passer vos projets en mode UNICODE, un assistant mesu- rant limpact du passage Unicode est dclench sur le projet lors du passage la norme Unicode. GAF WinDev.book Page 503 Jeudi, 5. juillet 2012 9:16 09 504 Conclusion (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite CONCLUSION Le cours est maintenant termin! Ce cours a abord un ensemble de sujets, mais pas la totalit des fonctionnalits de WinDev, loin sen faut! Vous tes maintenant familiaris avec les principaux concepts. Nous vous conseillons de consacrer une journe supplmentaire explorer les diffrents choix de menu de WinDev, pour chacun des modules. Explorez galement les exemples livrs avec WinDev : certains sont simples et ne traitent que dun sujet, dautres sont trs complets. Ces exemples vous montreront les diffrentes facettes de WinDev. La lecture du code source sera galement instructive en gnral. Faute de place, nous navons pas pu aborder tous les sujets (il y en a des centaines, voire des milliers!). WinDev offre de nombreuses possibilits non abordes ou non approfondies dans ce cours : groupware utilisateur fonctions sockets, HTTP, tlphonie cration de gabarits ... tats imbriqus, requtes paramtres ... compilation dynamique, appels de DLL, langages externes ... Pour plus de dtails sur toutes ces possibilits, nhsitez pas consulter laide en ligne. Rappel : Pour recevoir directement des mises jour intermdiaires et des conseils dutilisation, abonnez-vous la LST (revue trimestrielle + DVD), en franais. Nous vous souhaitons de bons dveloppements, avec WinDev 17, AGL n1 en France ! GAF WinDev.book Page 504 Jeudi, 5. juillet 2012 9:16 09 Index 505 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite INDEX A ActiveX 214 Administrateur du GDS 438 Agenda (champ) 208 Aide des nouveauts 146 Aide en ligne 46 Alignement 222 Analyse 30 Cl 88 Cl compose 92 Configuration pour le RAD 96 Cration 83 Gnration 98 Identifiant automatique 86 Import de fichiers (dictionnaire) 93 Importer directement des fichiers 93 Importer un fichier XML 90 Liaisons 94 Mtatype 90 Modification automatique des donnes 98 Ancrage 220 Animation de fentres 165 Animation des fentres 225 Application 30 Installation 146 Arbre (champ) 204 Ascenseur (champ) 211 Assistant Cration de projet 82 Assistants Personnalisation 161 Assombrir les fentre inaccessibles 165 B Barre doutils (champ) 216 Base de donnes 250 Base externe 281 Bote outils (champ) 216 Bouton (champ) 175 C Calendrier (champ) 208 Carrousel (champ) 209 Catalogue dimages 182 Centre de Suivi de Projets 440 Retours Client 444 Centres de Contrle 440 Retours Client 444 Chane de caractres Fonctionnalits WLangage 62 Champ 32 Alignement 222 Ancrage 220 Image des champs (style) 226 Transparence 226 Types de champs 167 Zone rpte 202 Champ ActiveX 214 Champ Agenda 208 Champ Arbre 204 Champ Ascenseur 211 Champ Barre doutils 216 Champ Bote outils 216 Champ Bouton 175 Champ Calendrier 208 Champ Carrousel 209 Champ Code-barres 210 Champ Combo 195 Champ Confrence 214 Champ Cube 210 Champ de saisie 171 Champ Forme 210 Champ Graphe 206 Champ HTML 214 Champ Image 179 Champ interrupteur 185 Champ Jauge 205 Champ Libell 169 Champ Liste 187 Champ Liste image, Liste image (champ) 192 Champ Notation 212 Champ OLE 215 Champ Onglet 223 Champ Organigramme 209 Champ Planning 208 Champ Potentiomtre 212 Champ Range Slider 211 Champ Ruban 217 Champ slecteur 184 Champ Sparateur 224 GAF WinDev.book Page 505 Jeudi, 5. juillet 2012 9:16 09 506 Index (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Champ Spin 212 Champ Table 197 Champ Table hirarchique 204 Champ Tiroir 210 Champ TreeMap 209 Champ Treeview 204 Champ Web camra 213 Champ Xaml 217 Cl 32, 88 Cl avec doublons 88 Cl compose 92 Cl full-text 93 Cl unique 88 Cl unique 86 Client/Serveur 288 Centre de Contrle HyperFileSQL 296 Installer une application 304 Migrer une application 292 Code-barres (champ) 210 Collection de procdures 60 Colonne de table Sauvegarder la position 226 Combo (champ) 195 Commentaires (WLangage) 58 Confrence (champ) 214 Correcteur dinterface 222 Cration Analyse 83 Fentre 106 Liaisons (analyse) 94 Projet 82 Rgle mtier 448 Cryptage des donnes 270 Cube (champ) 210 D Date Fonctionnalits WLangage 67 Dplacement par le fond 165 Description Fichier de donnes 84 Diagrammes UML 485 Dictionnaire Importer des fichiers 93 E Editeur Analyse 83 Enregistrement 31 Environnement 34, 158 Menu personnalis 159 Paramtrage 34 Volets 158 Ergonomie 219 Erreurs HyperFileSQL 257 Etat 32, 125 Cration dun tat 125 Etat automatique sur table 123 Modifier un tat 129 Excutable 30 Cration 143 Framework 145 Installation 146 Patch 144 F Fentre 32 Animation 165, 225 Assombrir la fentre inaccessible 165 Champs 167 Correcteur dinterface 222 Cration 106 Crer un menu 50 Crer une fentre 36 Dplacement par le fond 165 Description 164 Ergonomie 219 Fentre redimensionnable 165 Fermeture automatique 165 Grisage automatique 225 Image de fond 166 MDI 230 Mmoriser la position 165 Mmoriser la taille 165 Multifentrage 227 Plan 223 Redimensionnement 220 Rgles 222 Saisie denregistrements 106 Tester une fentre 42 Validation automatique 165 Fentre interne 236 Fermeture automatique (fentre) 165 Fichier 31 Fichier de donnes Description 84 Fichier XML GAF WinDev.book Page 506 Jeudi, 5. juillet 2012 9:16 09 Index 507 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Importer dans lanalyse 90 Forme (champ) 210 Framework 145 Full-text 93 G Gabarit 32, 219 GDS 428 Administrateur 438 Configuration 433 Cration de la base de sources 429 Extraction dun lment 435 Intgration dun projet 430 Ouverture dun projet 433 Rintgration dun lment 436 Gnration Analyse 98 Gestion du temps 443 Gestionnaire de sources 428 GFI 165, 225 Graphe (champ) 206 Grisage automatique des fentres 225 Groupware utilisateur 131 H Heure Fonctionnalits WLangage 67 HTML (champ) 214 HyperFileSQL Cryptage des donnes 270 Gestion des erreurs 257 Journalisation 262 Parcours de fichiers de donnes 253 Rplication 274 Transactions 266 Triggers 278 HyperFileSQL Client/Serveur 288 Centre de Contrle 296 Installer une application 304 Migrer une application 292 I Identifiant automatique 86 Image Catalogue dimages 182 Image clicable 183 Image (Champ) 179 Image dintroduction 143 Image de fond (Fentre) 166 Image des champs 226 Importer Fichier XML 90 Fichiers dun dictionnaire 93 Fichiers de donnes (fic) 93 Imprimer Contenu dune table 122 Index 32 Index full-text 93 Installation 146 Aide des nouveauts 146 Installation autonome 147 Installation avec mise jour 147 Installer un serveur HyperFileSQL 291 Instructions WLangage 57 Instructions conditionnelles 57 Instructions de boucle 58 Interface Correcteur dinterface 222 Interrupteur (champ) 185 J Jauge (champ) 205 Journalisation 262 L Libell (Champ) 169 Liste (champ) 187 M MCU 143 MDI (fentres) 230 Mmoriser Position de la fentre 165 Taille de la fentre 165 Menu Crer un menu 50 Menu automatique 102 Menu personnalis 159 Mtatype 90 Modle de champs 237 Modification automatique des donnes 98 MoiMme 59 Montaires Fonctionnalits WLangage 65 Multifentrage 227 GAF WinDev.book Page 507 Jeudi, 5. juillet 2012 9:16 09 508 Index (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite N Notation (champ) 212 Numrique Fonctionnalits WLangage 64 O OLE (champ) 215 Onglet 223 Optimisation Requte 139 Ordre de saisie 221 Ordre de tabulation 221 Organigramme (champ) 209 P Patch dapplication 144 Pattern RAD 100 PersoMenu 159 Personnalisation des assistants 161 Plan 223 Planning (champ) 208 Position Sauvegarder la position des colonnes de table 226 Potentiomtre (champ) 212 Procdure 50 Collection de procdures 60 Procdure globale 60 Procdure locale 60 Procdures WLangage 59 Programme dinstallation 146 Programme excutable 30 Projet 30 Cration 82 R RAD 100 Configuration de lanalyse 96 Dfinition 100 Gnration du RAD 100 Pattern RAD 100 RAD Application 100 RAD Fentre 100 Range Slider (champ) 211 Recherche full-text 93 Redimensionner une fentre 220 Rgle mtier Cration 448 Rgles 222 Rplication 274 Requte 118 Cration dune requte 118 Optimisation 139 Requte paramtre 118 Table base sur une requte 120 Retours Client 444 Rutilisabilit Fentre interne 236 Modle de champs 237 Superchamp 235 RID 100 Ruban (champ) 217 Rubrique 31 S Sauvegarde de la position des colonnes de table 226 Slecteur (champ) 184 Sparateur 224 Serveur HyperFileSQL 291 Spin (champ) 212 Splash screen 143 Style 32, 219 Superchamp 235 T Table Champ Table 197 Etat automatique sur table 123 Imprimer le contenu de la table 122 Sauvegarde de la position des colonnes226 Table base sur une requte 120 Table hirarchique (champ) 204 Totaux dans les tables 225 Tableau de bord 420 Configuration 425 Optimisation des requtes 139 Tests automatiques 135 Tabulation (Ordre de) 221 Test automatique 135 Tester une fentre 42 Tiroir (champ) 210 Totaux dans les tables 225 Transactions 266 Transparence des champs 226 TreeMap (champ) 209 Treeview (champ) 204 GAF WinDev.book Page 508 Jeudi, 5. juillet 2012 9:16 09 Index 509 (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite Triggers 278 U UML 485 Diagramme 485 V Validation automatique (fentre) 165 Variable WLangage 56 Volet 158 W Web camra (champ) 213 WLangage Commentaires 58 Instructions 57 Procdures 59 Traitement des chanes de caractres 62 Traitement des dates et heures 67 Traitement des montaires 65 Traitement des numriques 64 Variable 56 X Xaml (champ) 217 Z Zone rpte 202 GAF WinDev.book Page 509 Jeudi, 5. juillet 2012 9:16 09 510 Index (c) PC SOFT - www.pcsoft.fr - Version Express - Diffusion interdite GAF WinDev.book Page 510 Jeudi, 5. juillet 2012 9:16 09