Upload
abourizk-badi
View
15
Download
2
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.