25
COURS WINDEV NUMERO 3 01/02/2015 Travailler avec un fichier de données Etude du gestionnaire d’analyse, Manipulation des tables mémoires, Manipulation de données, Création d’états, Pré requis : Cours WinDev Numéro 1 et 2

comprendre les fonctionalités de windev

Embed Size (px)

DESCRIPTION

comprendre les fonctionalités de WinDev par des études de cas

Citation preview

  • COURS WINDEV NUMERO 3

    01/02/2015 Travailler avec un fichier de donnes

    Etude du gestionnaire danalyse,

    Manipulation des tables mmoires,

    Manipulation de donnes,

    Cration dtats,

    Pr requis : Cours WinDev Numro 1 et 2

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 1 sur 24

    Cours WinDev Numro 3 V E R S I O N 1 9

    Lobjectif de cette leon est de vous familiariser avec lutilisation des fichiers, du gestionnaire danalyse

    et de la conception dtats.

    Vous allez commencer par crer un nouveau projet nomm TP3. Dans lassistant, vous slectionnerez votre

    thme prfr, confirmerez les choix par dfauts jusqu ce point :

    Ici, il est impratif de slectionner le choix Oui, crer une nouvelle base de donnes . Cliquez sur

    Suivant.

    Par dfaut, les informations sont correctes, vous pouvez cliquer sur suivant.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 2 sur 24

    Comme vous pouvez le constater, le choix des types de bases de donnes est vaste ! Nous allons

    travailler avec le format natif de WinDev HyperFileSQL Classic. Nous pouvons passer lcran suivant.

    Voil, la description de lanalyse est finie !

    Un assistant de cration de fichier va prendre le relais :

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 3 sur 24

    Ici, nous laissons le choix par dfaut.

    Ah oui ! Jai oubli de vous dire ce que nous allions faire En fait nous allons programmer une mini

    gestion de budget familial. Pour cela on va utiliser un seul fichier des mouvements dans lequel on inscrira

    le descriptif des oprations, la date de lopration, le montant au dbit ou le montant au crdit. Cela

    devrait vous faire penser votre relev de compte bancaire.

    Voici la fentre suivante

    Dans la zone Nom, vous allez indiquer le nom suivant : Mouvement. Remarquez les champs suivants qui

    se remplissent automatiquement. Vrifiez que la case Le fichier possde un identifiant automatique

    soit coche. WinDev va ainsi crer un identifiant automatique. Lidentifiant automatique est comparable

    un compteur, cest lui qui vous garantit lunicit de vos enregistrements. Je vous renvoie au cours

    danalyse Merise pour les complments dinformations que vous pourriez avoir sur le rle des

    identifiants ! (A ce sujet, jai crit un bon livre la dessus Voir chez lditeur ENI)

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 4 sur 24

    On clique sur Suivant ?

    La nouvelle fentre vous demande de confirmer le fait que vous voulez travailler avec des fichiers de

    type Hyper file (Format propritaire WinDev).

    Et voil, la description du type de fichier est finie. Cliquez sur le bouton vert pour terminer. Lassistant se

    ferme et vous ouvre la fiche de description du fichier.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 5 sur 24

    Cest ici que nous allons dterminer la composition de chaque attribut de notre fichier mouvement.

    Vous pouvez remarquer que notre identifiant est dj cr Idmouvement et vous voyez la cl jaune

    gauche qui symbolise lidentifiant. Nous allons insrer les rubriques suivantes :

    Nom Libell Type Taille

    Date Date de lopration Date Sera rempli

    automatiquement

    Descriptif Description de

    lopration

    Texte 50

    Dpense Montant Dbit Rel (Format 99 999,99) Sera rempli

    automatiquement

    Recette Montant Crdit Idem Idem

    Pour insrer, cliquez sur une ligne vide dans la rubrique choisie. A vous de bien remplir vos champs, cela

    ne devrait vous poser aucun problme. Une fois la saisie termine, cliquez sur Valider.

    Lassistant vous propose de retourner sous lditeur de fentre. Cliquez sur Fermer pour rester sous

    lanalyse.

    Double-cliquez sur la table pour faire apparaitre la description, vous devriez avoir le rsultat suivant :

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 6 sur 24

    Pour que cette description de fichier soit prise en compte dans le projet nous devons gnrer lanalyse.

    Pour cela cliquez sur le drapeau

    Remarques : Ce drapeau sert lancer la gnration de lanalyse. En effet, chaque fois

    que vous crez ou modifiez une structure de fichier, vous devez lactiver pour synchroniser

    lanalyse et les champs des fentres qui accdent aux donnes.

    Comme vous pouvez le constater dans le volet droit de lAnalyse nous retrouvons notre fichier :

    Nous allons maintenant fabriquer les fentres de notre application. Cliquez sur licne Nouveau

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 7 sur 24

    Cliquez sur Fentre. Choisissez une fentre vierge.

    Cette fentre sera la premire fentre de notre application. Dans sa description (clic droit sur la fentre),

    vous lui donnerez les caractristiques suivantes :

    Nom logique : dpart

    Description : Fentre principale de lapplication

    Titre : Bienvenue dans votre mini compte bancaire

    Enregistrez les modifications.

    Nous allons insrer dans cette fentre une table mmoire qui sera le conteneur du fichier. Choisissez un

    champ table dans la barre doutils et positionnez le sur votre fentre. Dites lassistant que vous

    remplirez la table par programmation. Comme vous pouvez le constater, nous aurions pu prendre le

    choix par dfaut (Afficher des donnes dun fichier ou dune requte existante). Ce choix par dfaut

    parait sens, mais je prfre vous expliquer comment faire les choses manuellement. Vous aurez tout le

    temps ensuite de le faire faire de faon automatique.

    Cliquez sur Suivant.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 8 sur 24

    Choisissez Type de Table en affichage puis Suivant.

    Nous allons choisir un type de prsentation des donnes vertical. Cliquez sur Suivant.

    Cet cran nous permet de prdfinir le nombre de colonnes de la table. Indiquez quil y aura 5 colonnes.

    Cliquez ensuite sur Suivant.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 9 sur 24

    Donnez Tmouv comme nom de la table. Et cliquez sur le bouton Terminer. La table est maintenant

    prdfinie. Vous devriez voir ceci :

    Comme vous le voyez le nom des colonnes, le type des donnes nest pas dfini, faites un clic droit sur la

    table et activez le menu Description. Vous allez suivre les instructions suivantes pour tout modifier :

    Nom de la colonne 1 : Tdate

    Type de la colonne 1 : Date

    Titre de la colonne 1 : Date

    Voici ce que vous devriez voir ce stade :

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 10 sur 24

    Nom de la colonne 2 : Tdescription

    Type de la colonne 2 : Texte

    Titre de la colonne 2 : Description de lopration

    Taille de saisie : 50

    Nom de la colonne 3 : Tdbit

    Type de la colonne 3 : Numrique (Rel ayant un masque identique au fichier +99 999,99)

    Titre de la colonne 3 : Dpense

    Nom de la colonne 4 : Tcrdit

    Type de la colonne 4 : Numrique (Rel ayant un masque identique au fichier +99 999,99)

    Titre de la colonne 4 : Recette

    Nom de la colonne 5 : cl

    Type de la colonne 5 : Numrique

    Masque de saisie : 999 999 999.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 11 sur 24

    Dans longlet IHM de cette 5me colonne, dcochez Visible, nous mettrons dans ce champ lidentifiant de

    la ligne. Il nest pas ncessaire de le montrer lutilisateur, cest pour a que je vous conseille de le

    mettre invisible.

    Une fois tous les champs renseigns, cliquez sur Appliquer puis OK

    Vous devriez voir ceci :

    Vous pouvez redimensionner les largeurs des colonnes avec la souris si certains libells sont tronqus.

    Voici maintenant, ce quil vous reste concevoir pour terminer notre projet :

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 12 sur 24

    Il me semble que a fait longtemps que vous navez pas sauvegard votre projet !

    ce nest pas trs prudent Noubliez pas de dterminer cette fentre comme la

    premire fentre du projet

    Maintenant que le dcor est plant, nous pouvons commencer la programmation.

    La premier chose faire est de dire WinDev de nous crer le fichier Mouvement sil nexiste pas, pour

    cela allez dans le menu Projet / Code du projet.

    Dans la zone Initialisation de TP3 inscrivez le code suivant :

    Nom : ajout

    Nom : supprime

    Nom : Imprime

    Nom : quitte

    Nom du champ : Solde - Type Numrique

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 13 sur 24

    Remarque : Cette ligne indique WinDev de commencer chercher si le fichier Mouvement

    existe, sil ne le trouve pas il le conoit. Le code plac dans cette zone est excut avant le

    chargement de la premire fentre.

    Le code du bouton Quitter est trs facile : Dans clic sur Quitter inscrivez :

    Voyons maintenant la dcomposition possible des vnements. Il faut quau chargement de la fentre la

    table se remplisse avec les enregistrements contenus dans le fichier situ sur le disque dur. Pour cela nous

    allons parcourir lensemble des lignes du fichier Mouvement.fic et les placer les unes aprs les autres

    dans la table mmoire. Cest ce que nous allons faire maintenant.

    Allez dans le code de la fentre dans la zone Initialisation de dpart et saisissez le code suivant :

    Explication du code :

    Pour tout Mouvement // Cette ligne met en place une boucle qui ordonne WinDev douvrir le fichier

    Mouvement et de lire la premire ligne en plaant les champs correspondants en mmoire.

    La squence tableajouteligne est connue, elle permet de positionner du texte - ici les rubriques du fichier -

    lintrieur de la table mmoire.

    Fin // indique la fin de la boucle.

    En rsum, nous pourrions lire ce code de la faon suivante :

    Pour toutes les lignes du fichier Mouvement ,

    Ajoute les enregistrements physiques dans la table Tmouv

    Le bouton Ajouter va ouvrir une fentre de saisie qui nous permettra de rentrer les informations. Donc le

    code sera dans Clic sur ajout :

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 14 sur 24

    Il est normal que WinDev vous renvoie un message derreur si nous essayons dexcuter le projet car la

    fentre FSaisie nexiste pas, crons-la de suite.

    Dans la description de la fentre :

    Nom logique : Fsaisie

    Description : Fentre de saisie

    Titre : Saisissez votre opration

    Il me semble que a fait longtemps que vous navez pas sauvegard votre projet !

    Nous allons placer les champs ncessaires sur la fentre Fsaisie

    Faites glisser les champs Date, Descriptif, Dpense, Recette sur la fentre Fsaisie.

    Cliquez sur un champ en tenant le bouton gauche de la souris

    enfonc, faite glisser et dposez sur la fentre. Nhsitez pas

    changer la mise en forme du champ. Le fait de faire glisser le

    champ vous garantit que WinDev peut faire lassociation entre

    le champ sur la fentre et la rubrique du fichier.

    Vous pouvez slectionner plusieurs champs en maintenant la

    touche Ctrl

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 15 sur 24

    Voici le rsultat :

    Pour tre sr que chaque champ est bien li une rubrique du fichier, cliquez sur lun dentre eux et

    vrifiez dans la barre de message en bas gauche que le message Li : Mouvement.XXXXXX soit

    prsent.

    Cette fentre ne comporte que 2 boutons, le bouton Annuler nous servira juste fermer la fentre. Vous

    connaissez la squence de code le permettant, ce nest donc plus la peine que je vous indique la marche

    suivre. En cas de problme je vous rappelle que laide de WinDev est accessible par la touche F1.

    Consacrons-nous au bouton Valider, la validation consiste placer les rubriques de la fentre dans le

    fichier et valider lajout. Pour placer les rubriques de la fentre dans le fichier, lordre est le suivant :

    EcranVersFichier(Fsaisie) // Fsaisie tant le nom de la fentre

    La validation dajout est commande par lordre suivant :

    HAjoute(Mouvement) // Mouvement tant le fichier dans lequel on ajoute

    Il nous reste plus qu ajouter un ordre de fermeture de la fentre.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 16 sur 24

    Voici le code intgral du bouton Valider :

    Vous pouvez faire en sorte de programmer le contrle pour quil vrifie que lon na quun dbit ou quun

    crdit, ou alors que lun des champs nest pas vide. Le code placer juste avant celui que lon voit ci-

    dessus pourrait ressembler ceci :

    Testez votre fentre avec le bouton ou en cliquant droite de lcran sur la fentre avec le bouton

    droit pour choisir Tester.

    Insrez des valeurs dans les champs et validez.

    Pour voir si votre nouvelle ligne est prsente dans le fichier, allez dans le menu Outils / WDMAP

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 17 sur 24

    Choisissez Mouvement comme Nom du fichier.

    Maintenant que vos lignes sinsrent, lancez le projet en cliquant sur GO .

    Cliquez sur le bouton Ajouter, saisissez et validez un nouvel enregistrement. Vous pouvez constater que

    la table mmoire ne ragit pas correctement : en effet linsertion na pas t dtecte et donc la table

    mmoire nest pas synchronise avec le fichier. Nous allons essayer de remdier ce problme. En fait, il

    faudrait que lorsque la fentre saisie se ferme, la fentre dpart recharge la table mmoire.

    Placez-vous dans le code de la fentre dpart, vous devez trouver une zone nomme prise de focus de

    dpart . La prise de focus est le fait de remettre active une fentre inactive, en cliquant sur la barre de

    titre par exemple.

    Voici le code insrer dans cette zone :

    Testez cette modification, comme vous le voyez, les comportements sont maintenant cohrents.

    Intressons-nous au bouton Supprimer. Dans la table, nous avons une rubrique qui est lidentifiant de la

    ligne. Pour supprimer cette ligne dans le fichier nous allons donc rechercher cet identifiant dans le fichier

    et supprimer la ligne correspondante.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 18 sur 24

    Voici la squence de code ncessaire :

    Explications :

    La premire ligne fait rechercher lidentique dans le fichier Mouvement et sur lidentifiant la valeur du

    champ cl pointe dans notre table mmoire. Ce nest pas parce que la rubrique cl est invisible que

    nous ne pouvons pas en connatre la valeur.

    Si on trouve la ligne ayant le mme identifiant que cl alors on la supprime et on affiche un message

    indiquant la bonne marche des oprations. Sinon dans un cas fort improbable o il ne trouve pas

    lenregistrement on inscrit un message derreur.

    Je vous laisse le soin de tester cette nouvelle fonctionnalit de votre programme. Comme vous venez de

    le remarquer, la mise jour de la table mmoire ne sest pas faite. La valeur a t supprime mais la

    table ne le sait pas. Nous allons remdier ce problme.

    Le code de raffichage de la table mmoire existe dj (ex : dans la zone de prise de focus de la

    fentre dpart) nous allons donc r-excuter un traitement existant. Sous la ligne Info("La suppression

    est effective") inscrivez la commande suivante :

    ExcuteTraitement(depart,trtPriseFocus)

    Cette commande fait rejouer un traitement existant.

    Testez et vrifiez la cohrence de votre projet.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 19 sur 24

    LES PROCEDURES

    Maintenant nous avons calculer le solde (Dbit Crdit), pour ce faire nous allons crer une

    procdure qui scannera le fichier et fera les calculs pour nous.

    Pour crer une procdure

    Recherchez en bas de lcran cet onglet, Choisissez Procdures locales , et faite un clic droit dans

    cette zone. Dans le menu contextuel choisissez Nouvelle procdure locale .

    Nommez cette procdure Calcsolde.

    Remarques : Les procdures locales ne sont vues que par les objets de la fentre, les

    procdures globales sont actives pour tous les lments du projet

    Maintenant, vrifiez bien que vous vous trouvez dans la zone code de la procdure calcsolde.(Clic droit

    et ensuite loption Code .

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 20 sur 24

    Le code doit parcourir le fichier Mouvement, affecter le contenu de dbit dans une variable, le contenu

    de crdit dans une autre et cela jusqu' la fin du fichier et ensuite affecter la diffrence entre le dbit et

    le crdit au champ solde.

    Voici le code de la procdure :

    Le code est suffisamment simple pour ne pas avoir lexpliquer. La question qui se pose est o lancer

    calcsolde. Les plus russ dentre vous auront compris quil nous faut activer cette procdure aux mmes

    endroits o lon a activ le rafrachissement de la table mmoire. Je vous laisse modifier les zones de

    code en consquence (dans le code de la fentre dpart). Noubliez pas de tester la cohrence de votre

    projet.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 21 sur 24

    LES IMPRESSIONS

    Il ne nous reste plus qu fabriquer ltat de sortie. Choisissez Nouveau / Etat. Choisissez un tat de type

    Tableau.

    En cliquant sur Suivant WinDev vous demande la source de donne, il vous faut prciser que ce sont des

    enregistrements provenant dun fichier Hyper file.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 22 sur 24

    Slectionnez le fichier Mouvement.

    La cl de parcours est un identifiant qui sert pour donner lordre de tri.

    Continuez appuyer sur Suivant, je vous laisse dcouvrir les questions poses et vous de prendre les

    bonnes dcisions. Vous savez lire, donc vous prendrez les bonnes dcisions ! Je vous demande juste

    dappeler ltat Etatmouv.

    Remarques : Les dtails du choix du style, de la mise en forme sont votre discrtion, faites

    comme bon vous semble. Noubliez pas que le client na pas les mmes gots graphiques que

    vous, donc faites sobre. Eviter les styles Noir sur fond Noir Rose sur fond Vert et

    autres singularits visuelles qui feront penser lutilisateur quil devient dficient visuel.

    Une fois votre tat fini et enregistr, entrez dans la zone code du bouton Imprime :

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 23 sur 24

    Remarques : Les Commandes WinDev sont classes. Celles qui commencent par H sont des

    commandes daccs aux fichiers, celles qui commencent par i sont des commandes de pilotage

    dtat.

    Noubliez pas de refaire ce TP plusieurs fois, le but tant de se passer du guide papier et

    dapprcier la facilit avec laquelle on peut travailler avec WinDev.

  • Cours WinDev Numro 3

    http://www.btsig.org/ Jean-Luc Baptiste Page 24 sur 24

    EXERCICES APPLICATIFS

    Rpertoire damis

    Enonc :

    Ecrire un programme grant un fichier des amis. Pour chacun deux, on souhaite connatre le nom, le

    prnom et le numro de Tlphone.

    Faites en sorte que le programme puisse permettre lutilisateur de :

    Saisir un nouvel ami.

    Supprimer lami qui vous a fait une embrouille.

    Modifier le numro de tlphone dun ami.

    Imprimer la liste des amis.

    Afficher le nombre damis.

    Quitter.

    La Vidothque

    Enonc :

    Un proche vous demande de lui concevoir un programme darchivage de ses cassettes vido. Il veut

    connatre le titre du film, lanne de sortie, lacteur masculin principal, lactrice fminine principale et le

    genre du film (comdie, dramatique, policier, western, enfants, adultes.) Il vous demande aussi des

    tats imprims tris soit par anne de sortie, soit par genre, soit avec aucun tri.

    Comme vous tes un dveloppeur consciencieux, vous allez faire un programme qui apporte toutes

    satisfactions votre ami.