Vous êtes sur la page 1sur 13

I.

Prsentation
Objectifs : Travailler avec un fichier de donnes :Etude du gestionnaire
d'analyse,Manipulation des tables mmoires, Manipulation de donnes, Cration
d'tats

L'objectif de cette leon est de vous familiariser avec l'utilisation des fichiers, du
gestionnaire d'analyse et de la conception d'tats.
Vous allez commencer par crer un nouveau projet nomm TP3. Dans l'assistant,
vous slectionnerez votre thme prfr, confirmerez le choix de cration d'une
Analyse et finirez le processus de l'assistant. Un nouvel assistant de cration
d'analyse va apparatre, cliquez sur Suivant.
Vous pouvez choisir entre un Modle Logique de Donnes et un Modle
Conceptuel de Donnes. Cliquez sur Suivant pour choisir le MLD.
Dans la zone Nom de l'analyse appelez l : TP3 et vrifiez qu'elle soit bien
associe au projet en cours, cliquez ensuite sur Suivant.
Nous ne donnerons pas de mots de passe l'analyse donc cliquez encore
sur Suivant.
Cette nouvelle fentre vous demande de choisir le type de base de donnes que
vous voulez "attaquer". C'est ici par exemple que vous pourriez dcider d'utiliser
une base de donnes tierce du type Mysql, Access ou autres. Comme le but de
cette leon est de travailler avec WinDev nous allons faire en sorte de Crer une
nouvelle description de fichier. Ce choix tant valid nous allons maintenant
crer notre structure de fichier.
Ah oui ! J'ai 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 l'opration, le montant au dbit ou le montant au crdit. Cela devrait
vous faire penser votre relev de compte bancaire.
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. Nous
allons ainsi crer un identifiant automatique par WinDev. L'identifiant
automatique est comparable un compteur, c'est lui qui vous garantit l'unicit
de vos tuples. Je vous renvoie au cours d'analyse Merise pour les complments
d'informations que vous pourriez avoir sur le rle des identifiants !

Cliquez 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). Cliquez sur Suivant puis de nouveau sur Suivant. La nouvelle fentre
vous propose des options RAD (Rapid Application Development). Le RAD est
oublier, c'est WinDev qui fait tout, vous n'apprendrez rien le voir faire, il vaut
mieux que a soit vous qui crez que lui. Donc dcochez ces cases et cliquez
sur Terminer.
Vous voil maintenant dans le gestionnaire d'analyse, vous vous trouvez plus
exactement dans la fentre de description des fichiers. C'est 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 l'identifiant. Nous allons insrer
les rubriques suivantes :
Libell

Type

Taille

Date de l'opration

Date

Sera rempli automatiquement

Description de l'opration

Texte

50

Montant Dbit

Numrique (Format 999 999,99)

Sera rempli automatiquement

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 OK.
Vous pouvez maintenant Retourner sous l'diteur de WinDev. Choisissez
ensuite Aller directement dans l'diteur WinDev et OK.
Voici une reprsentation de ce que vous devriez obtenir

Maintenant que votre fichier est dcrit, il ne vous reste plus qu' gnrer
l'analyse.
Nous allons maintenant fabriquer les fentres de notre application. Allez dans le
menu Fichier / Nouveau et 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 l'application
Titre : Bienvenue dans votre mini compte bancaire
Appliquez les modifications et cliquez sur Ok.
Nous allons insrer dans cette fentre une table mmoire qui sera le conteneur
du fichier. Choisissez un champ table dans la barre d'outils et positionnez le sur
votre fentre. Dites l'assistant que vous remplirez la table vous-mme, cliquez
sur Suivant.
Choisissez Type de Table en affichage puis Terminer. La table est dfinie
par dfaut, allez dans la Description (clic droit sur la table).
Respectez les mmes conventions de nommage que celles indiques car tout le
reste du projet s'appuiera sur ces noms l !!
Le nom de la table : Tmouv

Nom de la colonne 1 : tdate


Type de la colonne 1 : Date
Titre de la colonne 1 : Date
Nom de la colonne 2 : tdescription
Type de la colonne 2 : Texte
Titre de la colonne 2 : Description de l'opration
Taille de saisie : 50
Nom de la colonne 3 : tdbit
Type de la colonne 3 : Numrique
Titre de la colonne 3 : Dpense
Nom de la colonne 4 : tcrdit
Type de la colonne 4 : Numrique
Titre de la colonne 4 : Recette
Nom de la colonne 5 : cl
Type de la colonne 5 : Numrique
Masque de saisie : 999 999 999.
Dans l'onglet IHM de cette 5me colonne, dcochez Visible, nous mettrons dans
ce champ l'identifiant de la ligne. Il n'est pas ncessaire de le montrer
l'utilisateur, c'est pour que je vous conseille de le mettre invisible.
Une fois tous les champs renseigns, cliquez sur Appliquer puis OK
Voici ce qu'il vous reste concevoir pour terminer notre projet :

Il me semble que a fait longtemps que vous n'avez pas sauvegard


votre projet ! ce n'est pas trs prudent. N'oubliez 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 s'il n'existe pas, pour cela allez dans le menu Projet / Code
du projet et dans la zone Initialisation de TP3 inscrivez le code suivant :
Slectionnez
HCrationSiInexistant(Mouvement)

Remarque : Cette ligne indique WinDev de commencer chercher


si le fichier Mouvement existe, s'il 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 :
Slectionnez
Ferme

Voyons maintenant la dcomposition possible des vnements. Il faut qu'au


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

l'ensemble des lignes du fichier Mouvement.fic et les placer les unes aprs
les autres dans la table mmoire. C'est ce que nous allons faire maintenant.
Allez dans le code de la fentre dans la zone Initialisation de dpart et
saisissez le code suivant :
other
Slectionnez
HLitPremier(Mouvement,IDMouvement)
TANTQUE PAS HEnDehors
TableAjoute(Tmouv,Mouvement.Date+TAB+Mouvement.Descriptif+TAB+Mouvement.Dp
ense+TAB+Mouvement.Recette+TAB+Mouvement.IDMouvement)
HLitSuivant(Mouvement)
FIN

Explication du code :
HLitPremier(Mouvement,IDMouvement) // Cette ligne ordonne WinDev d'ouvrir
le fichier Mouvement et de lire la premire ligne en plaant les champs
correspondants en mmoire.
TANTQUE PAS HenDehors // Ici on commence une boucle qui sera vraie tant que
l'on reste dans le fichier. Le mot cl Hendehors renvoie Vrai si on est hors du
fichier. Donc PAS HenDehors est vrai tant que la fin du fichier n'est pas atteinte.
C'est tout simple en fait, non ?
La squence tableajoute est connue , elle permet de positionner du texte - ici les
rubriques du fichier - l'intrieur d'un fichier.
Hlitsuivant(Mouvement) // Fait descendre le pointeur du fichier d'une ligne vers
le bas.
Le bouton Ajouter va ouvrir une fentre de saisie qui nous permettra de rentrer
les informations. Donc le code sera dans Clic surajout :
Slectionnez
Ouvre(saisie)

Il est normal que WinDev vous renvoie un message d'erreur si nous essayons
d'excuter le projet car la fentre saisie n'existe pas, crons-la de suite.
Fichier / Nouveau / Fentre
Dans la description de la fentre :
Nom logique : saisie
Description : Fentre de saisie
Titre : Saisissez votre opration
Faites
glisser
fentre saisie.

les

champs Date, Descriptif, Dpense, Recette sur

la

Votre fentre devrait correspondre celle-ci :

que chaque champ est bien li une rubrique du fichier, cliquez sur l'un d'entre eux et vrifiez dans la barre
n 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 n'est
donc plus la peine que je vous indique la marche suivre. En cas de problme je
vous rappelle que l'aide 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 l'ajout. Pour placer les rubriques de la
fentre dans le fichier, l'ordre est le suivant :
Slectionnez
EcranVersFichier(saisie) // saisie tant le nom de la fentre

La validation d'ajout est commande par l'ordre suivant :


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

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


Voici le code intgral du bouton Valider :
other
Slectionnez
EcranVersFichier(saisie)
HAjoute(Mouvement)
Ferme

Vous pouvez faire en sorte de programmer le contrle pour qu'il vrifie que l'on
n'a qu'un dbit ou qu'un crdit, ou alors que l'un des champs n'est pas vide. Le
code placer juste avant celui que l'on voit ci-dessus pourrait ressembler ceci :
other
Slectionnez
SI Date=""
Info("L'un
Ferme
FIN
SI Dpense
Info("Vous
Ferme
FIN

OU Descriptif="" OU (Dpense=0 ET Recette=0) ALORS


des champs n'a pas t rempli !")
<>0 ET Recette <>0 ALORS
ne pouvez saisir qu'un montant au Dbit ou alors au Crdit !")

Testez votre fentre avec le bouton


ou en cliquant droite de l'cran 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 et choisissez Mouvement commeNom du fichier.

Maintenant que vos lignes s'insrent, 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 l'insertion n'a pas t dtecte et donc la table mmoire n'est 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 :
other
Slectionnez
TableSupprimeTout(Tmouv) // Efface la table mmoire pour viter d'insrer
les enregistrements la suite des prcdents
HLitPremier(Mouvement,IDMouvement)
TANTQUE PAS HEnDehors
TableAjoute(Tmouv,Mouvement.Date+TAB+Mouvement.Descriptif+TAB+Mouvement.Dp
ense+TAB+Mouvement.Recette+TAB+Mouvement.IDMouvement)
HLitSuivant(Mouvement)
FIN

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 l'identifiant de la ligne. Pour supprimer cette ligne dans le fichier nous
allons donc rechercher cet identifiant dans le fichier et supprimer la ligne
correspondante.
Voici la squence de code ncessaire :
other
Slectionnez
HLitRecherche(Mouvement,IDMouvement,cl)
SI HTrouve ALORS
HSupprime(Mouvement)
Info("La suppression est effective")
SINON
Info("Grave problme de l'application")
FIN

Explications :
La premire ligne fait rechercher dans le fichier Mouvement et sur l'identifiant la

valeur du champ cl pointe dans notre table mmoire. Ce n'est 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 l'enregistrement on inscrit un message
d'erreur.
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 s'est
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 :
Slectionnez
ExcuteTraitement(depart,trtPriseFocus)

Cette commande fait rejouer un traitement existant.


Testez et vrifiez la cohrence de votre projet.
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.

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.
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 :
other
Slectionnez
PROCEDURE calcsolde()
sdebit,scredit sont des rels=0 // on affecte la valeur 0 aux deux
variables
HLitPremier(Mouvement,IDMouvement)
TANTQUE PAS H.endehors
Sdebit+=Mouvement.Dpense // += signifie Sdebit=Sdebit+Mouvement.Dpense
Scredit+=Mouvement.Recette
HLitSuivant(Mouvement,IDMouvement)
FIN
solde=sdebit-scredit

Le code est suffisamment simple pour ne pas avoir l'expliquer. La question qui
se pose est o lancer calcsolde. Les plus russ d'entre vous auront compris qu'il
nous faut activer cette procdure aux mmes endroits o l'on 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). N'oubliez pas de tester la
cohrence de votre projet.
Il ne nous reste plus qu' fabriquer l'tat de sortie. Choisissez Fichier /
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 d'un fichier Hyper file. Slectionnez
le fichier Mouvement, la cl de parcours est un identifiant qui sert pour donner
l'ordre 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 d'appeler
l'tat Etatmouv.
Remarques : Les dtails du choix du style, de la mise en forme sont
votre discrtion, faites comme bon vous semble. N'oubliez pas que le
client n'a 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 l'utilisateur
qu'il devient dficient visuel.

Une fois votre tat


bouton Imprime :

fini

et

enregistr,

entrez

dans

la

zone code du

other
Slectionnez
iAperu(i100) // On enverra l'tat l'cran avec un zoom de 100 %
iImprimeEtat(Etatmouv) // Gnration de l'tat et utilisation des
paramtres dfinis par iApercu

Remarques : Les Commandes WinDev sont classes. Celles qui


commencent par H sont des commandes d'accs aux fichiers, celles
qui commencent par i sont des commandes de pilotage d'tat.
N'oubliez pas de refaire ce TP plusieurs fois, le but tant de se
passer du guide papier et d'apprcier la facilit avec laquelle on peut
travailler avec WinDev.
II. Exercices applicatifs
II-A. Rpertoire d'amis

Enonc :
Ecrire un programme grant un fichier des amis. Pour chacun d'eux, on souhaite
connatre le nom, le prnom et le numro de Tlphone.
Faites en sorte que le programme puisse permettre l'utilisateur de :

Saisir un nouvel ami.


Supprimer l'ami qui vous a fait une embrouille.
Modifier le numro de tlphone d'un ami.
Imprimer la liste des amis.
Afficher le nombre d'amis.
Quitter.

II-B. La Vidothque

Enonc :
Un proche vous demande de lui concevoir un programme d'archivage de ses
casettes vido. Il veut connatre le titre du film, l'anne de sortie, l'acteur
masculin principal, l'actrice 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.

Vous aimerez peut-être aussi