Vous êtes sur la page 1sur 25

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

Cours WinDev Numro 3


VERSION 19

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.

http://www.btsig.org/

Jean-Luc Baptiste

Page 1 sur 24

Cours WinDev Numro 3

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 :

http://www.btsig.org/

Jean-Luc Baptiste

Page 2 sur 24

Cours WinDev Numro 3

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)
http://www.btsig.org/

Jean-Luc Baptiste

Page 3 sur 24

Cours WinDev Numro 3

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.

http://www.btsig.org/

Jean-Luc Baptiste

Page 4 sur 24

Cours WinDev Numro 3

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
automatiquement

Descriptif

Description
lopration

Dpense

Montant Dbit

Rel (Format 99 999,99)

Sera
automatiquement

Recette

Montant Crdit

Idem

Idem

de Texte

rempli

50
rempli

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 :

http://www.btsig.org/

Jean-Luc Baptiste

Page 5 sur 24

Cours WinDev Numro 3

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
http://www.btsig.org/

Jean-Luc Baptiste

Page 6 sur 24

Cours WinDev Numro 3

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.

http://www.btsig.org/

Jean-Luc Baptiste

Page 7 sur 24

Cours WinDev Numro 3

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.
http://www.btsig.org/

Jean-Luc Baptiste

Page 8 sur 24

Cours WinDev Numro 3

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 :

http://www.btsig.org/

Jean-Luc Baptiste

Page 9 sur 24

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 10 sur

Cours WinDev Numro 3

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 :

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 11 sur

Cours WinDev Numro 3

Nom : ajout
Nom : supprime
Nom : Imprime
Nom : quitte
Nom du champ : Solde - Type Numrique

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 :

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 12 sur

Cours WinDev Numro 3

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 :

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 13 sur

Cours WinDev Numro 3

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

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

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

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 14 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 15 sur

Cours WinDev Numro 3

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 cidessus pourrait ressembler ceci :

Testez votre fentre avec le bouton


droit pour choisir Tester.

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

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

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 16 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 17 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 18 sur

Cours WinDev Numro 3

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 .

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 19 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 20 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 21 sur

Cours WinDev Numro 3

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 :
http://www.btsig.org/
Jean-Luc Baptiste
24

Page 22 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 23 sur

Cours WinDev Numro 3

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.

http://www.btsig.org/
24

Jean-Luc Baptiste

Page 24 sur

Vous aimerez peut-être aussi