14/02/2015
Lobjectif de ce cours est de vous familiariser avec lutilisation des fichiers lis.
Nous allons crer une mini GPAO (Gestion de Production Assiste par Ordinateur). Vous
travaillez pour un assembleur informatique, son processus de production est le suivant : Il reoit
les diffrentes pices dtaches (disque dur, mmoires, cartes mres) et assemble ces
diffrentes pices pour en faire un modle fini. Comme vous pouvez le percevoir, le modle
conceptuel travaillera avec 2 entits (Ensemble fini et composants). Voici une reprsentation du
MCD :
Remarque : Je nai pas besoin de vous rappeler que les proprits soulignes et en
gras dsignent les identifiants de lentit, donc je ne le fais pas.
Vous allez commencer par crer un nouveau projet nomm TP4. Dans lAssistant, vous
slectionnerez votre thme prfr, confirmerez le choix de cration danalyse et finirez le
processus de lassistant. Un nouvel assistant de Cration danalyse va apparatre. Vous pouvez
ensuite valider les diffrentes fentres de lAssistant jusqu arriver lAssistant de Cration
dun fichier de donnes.
Restez sur Crer une nouvelle description dun fichier de donnes, dans le plan suivant
donnez Ensemble comme Nom et Ordinateurs assembls comme Libell. Pensez choisir
Aucun dans la zone Identifiant automatique puisque nous avons Refens qui sera notre
identifiant.
Gardez HFSQL Classic comme Type de base de donnes. Lassistant va se terminer
http://www.btsig.org/
Jean-Luc Baptiste
Page 1 sur 16
Cest elle qui va vous permettre de saisir toutes les proprits de votre entit. Remplissez-la
pour quelle ressemble ceci et noubliez pas de mettre RefEns en cl unique (notre identifiant):
Une fois remplie, cliquez sur le jet vert et retournez sous lditeur de Windev. Enregistrez le
projet.
Attention un cran va vous demander si vous voulez crer une fentre ou allez sous lditeur,
cliquez sur Editeur de Windev pour rester dans lanalyse.
http://www.btsig.org/
Jean-Luc Baptiste
Page 2 sur 16
Voyez les utilisations des diffrentes icnes en passant le curseur de la souris dessus.
Comme vous tes dgourdis et intelligents je vous laisse finir de concevoir le modle !
Voil quoi vous devez arriver :
HCrationSiInexistant(Composant)
HCrationSiInexistant(Ensemble)
HCrationSiInexistant(Intgre)
HGreIntgrit("*", "*", hCardinalit+hEnModification+hEnSuppression, Faux)
La dernire ligne indique WinDev de ne pas se soucier de grer lintgrit rfrentielle, nous
le ferons nous-mme.
Maintenant que lanalyse est cre, nous allons commencer construire notre application.
Choisissez Accueil / Nouveau / Fentre.
Crez une fentre nomme Dpart qui sera la premire fentre du projet. Faites en sorte qu'elle
ait les caractristiques suivantes (dans sa description):
Onglet Gnral :
Nom logique : dpart
Description : Premire fentre du projet
Titre : Bienvenue dans la Mini Gp
Onglet IHM :
Taille : Taille 640*480
Onglet Dtail :
Type de fentre : Mre Mdi
Remarque : Une fentre mre MDI est obligatoirement la premire fentre d'un projet
WinDev. Cette fentre permet d'afficher toutes les fentres de l'application.
Une fentre mre MDI a les caractristiques suivantes (non modifiables) : bords
modifiables, bouton d'iconisation, d'agrandissement, menu systme, barre de titre,
barre d'icnes, possibilit d'avoir un menu droulant et des barres outils.
Dans une fentre mre MDI, seuls les champs situs dans la zone "barre d'icnes"
peuvent tre en saisie. En dehors de cette zone, aucun champ ne peut tre en saisie,
aucun clic souris n'est actif.
http://www.btsig.org/
Jean-Luc Baptiste
Page 3 sur 16
Crer une barre doutils (Cliquez sur le menu Fentre pour voir licne)
, choisissez
Barre doutils et placez le dans le bord suprieur gauche de la fentre. Faites un clic droit sur
ce nouvel objet et allez dans Description. Nous allons placer 5 boutons dans cette barre doutils
(un pour saisir les nouveaux composants, un pour crer des ensembles, un pour imprimer la
liste des composants, un pour imprimer lensemble et ses composants, le dernier pour quitter
lapplication).
Vous allez donc cliquer sur le bouton Crer puis choisissez Bouton. Le rsultat obtenu devrait
ressembler ceci :
Cliquez sur Bouton1, puis sur le bouton Editer, dans cette fentre Description dun bouton
saisissez nc dans la zone Nom, supprimez le libell par dfaut, cliquez ensuite sur Catalogue
pour la zone Image.
Le catalogue apparat, sur la gauche choisissez seulement 16*16 (nous naurons que des petites
images), dans la zone Recherche frappez dossier puis appuyez sur la loupe.
Prenez le 4me bouton de la 4me ligne puis validez. Dans longlet Aide de la fentre description,
dans la zone Bulle daide inscrivez Saisie dun nouveau composant.
Pour les boutons suivants, faites de mme en suivant les instructions suivantes :
Boutons
Nom
BULLE DAIDE
Bouton2
Crer
Crer
Bouton3
ImprimeC
Imprimer
Bouton4
ImprimeE
Imprimer
Bouton5
Fermer
Quitter lapplication
Annuler
Vous choisirez les icnes les plus en phase avec le but du bouton.
Remarque : Si vous avez des difficults pour placer les boutons (chevauchement par
exemple), allez dans leur onglet Dtail et affectez leurs les dimensions suivantes :
largeur 32, hauteur 24.
Voici un exemple de ce que devrait tre la barre doutils :
http://www.btsig.org/
Jean-Luc Baptiste
Page 4 sur 16
Nous allons crer les 4 fentres filles ncessaires pour faire fonctionner notre application (fentre
filles car elles doivent sexcuter lintrieur de la fentre mre, logique ! Non ? ). Pour le bouton
Quitter, je vous laisse mettre le code correspondant, vous navez plus besoin de mon aide,
sinon retour aux TP prcdents.
http://www.btsig.org/
Jean-Luc Baptiste
Page 5 sur 16
Crez
2
boutons :
BAjout et
BSup
Il devra aussi mettre blanc les 3 champs pour prparer une nouvelle saisie,
.
Rafficher la table mmoire (supprimer le contenu existant et rcrire avec le contenu du
fichier),
.
Voici les diffrents codes (je vous rappelle quils ont dj t tudis la leon 3) :
http://www.btsig.org/
Jean-Luc Baptiste
Page 6 sur 16
TableSupprimeTout(Table1)
POUR TOUT Composant
TableAjouteLigne(Table1,Composant.RefComp,Composant.DsignationC,Compo
sant.PrixAHT)
FIN
Cette squence devrait vous tre familire donc je ne vous la commente pas, sinon retour au
cours 3.
Rappel pour faire une procdure locale cliquez sur Procdures locales en bas de lcran :
http://www.btsig.org/
Jean-Luc Baptiste
Page 7 sur 16
http://www.btsig.org/
Jean-Luc Baptiste
Page 8 sur 16
Nom
Rle
RefEns
PrixVHT
Li Ensemble.PrixVHT
Dsignation
Li Ensemble.Dsignation
BPremier
BPrecedent
BSuivant
BDernier
Table1
BAjout
10
BSupprime
11
BNouveau
12
BValide
13
BSupp
http://www.btsig.org/
Jean-Luc Baptiste
Page 9 sur 16
HLitPremier(Ensemble,RefEns)
SI HNbEnr(Ensemble)>0 ALORS // si le fichier Ensemble contient au moins un
enregistrement
remplir(Ensemble.RefEns)
SINON
Info("Le fichier est vide")
FIN
Voyons le code ncessaire aux boutons 4, 5, 6 et 7 (pour les icnes, faites un tour du ct des
flches en 16x16).
Je vous donne le code du bouton 4, vous tes suffisamment aguerri pour pouvoir crer le code
des boutons 5, 6 et 7.
Comment a ? Rflchissez un peu et vous y arriverez ! Non mais, il faudrait tout leur faire
(Si vous ne savez pas hop, au TP 3).
Dailleurs, je ne vous le donne pas, non je ne suis pas mchant, jai seulement la flemme de
vous rcrire la squence de code du dessus. Eh oui, cest ce bout de code, analysez le et
regardez quel point il est idal pour notre bouton 4.
Nous allons traiter le bouton 9. Ce bouton doit nous permettre de slectionner dans le fichier
Composant le composant que nous voulons insrer dans la table mmoire. Nous allons voir si
WinDev peut nous gnrer la fentre qui va bien. Allez sur Accueil / Nouveau / Fentre.
Cherchez une fentre nomme Vision et validez.
Dans lAssistant qui arrive, cliquez sur Composant, cliquez encore sur Suivant, vrifiez que
tous les champs soient cochs, cliquez encore sur Suivant 2 fois. Interdisez la saisie dans le
champ table. Puis saisissez Selection comme Nom. Enfin cliquez sur Terminer.
Vous avez maintenant une fentre fonctionnelle dans laquelle on peut supprimer le bouton
Nouveau (on peut utiliser la cration de composants avec notre 1 er bouton du menu). Rduisezla pour quelle soit plus petite. Voici quoi elle pourrait ressembler :
http://www.btsig.org/
16
Jean-Luc Baptiste
Page 10 sur
Regardons comment nous pourrions modifier le code pour quil nous soit utile. Allez dans le code
du bouton OK. Vous pouvez voir que la fentre retourne vrai si on clique sur OK, faux sur
Annuler.
Qui dit bandeau dplac dit structure mmoire du fichier contenant les valeurs recherches !
Donc, nous naurons qu lancer la fentre et tester si elle retourne vrai.
Fermez-la et retournez sur Gensemble dans le code du bouton BAjout. Saisissez la squence
de code suivante :
HSupprime(Intgre)
FIN
FIN
HLitRecherchePremier(Ensemble,RefEns,RefEns)
SI HTrouve ALORS
HSupprime(Ensemble)
Info("La suppression est russie")
ExcuteTraitement(Gensemble,trtInit)
FIN
Vous navez pas besoin que je vous commente ce code, il est limpide.
La squence du bouton Valider va tre un peu plus rude, mais gure plus. En fait, lorsquun
nouvel ensemble est cr ou modifi par ladjonction dun nouveau composant, il va nous falloir
faire plusieurs actions diffrentes.
Il faut supprimer lensemble existant dans le fichier pour le recrer avec ses nouveaux
composants, donc on commence par une phase de suppression (voir code ci-dessus) et on
achve par une phase dinsertion dans le fichier.
Le code est long mais nest pas complexe, prenez le temps de ltudier.
i est un entier
HLitRecherchePremier(Ensemble,RefEns,RefEns)
SI HTrouve(Ensemble) ALORS // l'enregistrement existait dans le fichier, on va le
supprimer
HLitRecherche(Intgre, RefEns, RefEns)
POUR TOUT Intgre AVEC Intgre.RefEns = RefEns
HSupprime(Intgre)
FIN
HSupprime(Ensemble)
FIN
// Maintenant inscrivons l'ensemble dans le fichier
Ensemble.RefEns=RefEns
Ensemble.DsignationE=DsignationE
Ensemble.PrixVHT=PrixVHT
HAjoute(Ensemble)
// Remplissons le fichier Intgre
POUR i=1 A TableOccurrence(Table1) // Pour i=1 aux max de la table mmoire
Intgre.RefComp=Table1.RefComp[i] // [i] indique l'indice de la ligne
Intgre.RefEns=RefEns
Intgre.Qt=Table1.Qt[i]
HAjoute(Intgre)
FIN
Info("L'ajout s'est bien pass")
Voil, la super fentre de gestion des ensembles est finie Noubliez pas de sauvegarder votre
uvre.
Le troisime bouton de la barre doutil sert imprimer la liste des composants, vous avez dj
tudi la procdure dans le TP 3 donc je ny reviens pas.
Voyons comment imprimer les ensembles et leurs composants (bouton 4)
http://www.btsig.org/
16
Jean-Luc Baptiste
Page 12 sur
Cliquez ensuite sur Suivant. A la question Voulez-vous des ruptures dans ltat rpondez
Oui et cliquez sur Suivant.
La fentre suivante vous demande de slectionner la rupture, vrifiez que Rfrence de
lensemble soit bien coch, cliquez sur Suivant.
http://www.btsig.org/
16
Jean-Luc Baptiste
Page 13 sur
Cliquez ensuite sur Suivant. La fentre suivante vous demande quels sont les champs
numriques sur lesquels vous voulez effectuer un calcul, essayer de faire en sorte quelle
ressemble ceci :
Cliquez sur Suivant. Les choix suivants concernent les formats du papier, laissez-les par dfaut
sauf lorientation que vous prendrez en Paysage et cliquez sur Suivant.
Choisissez un gabarit et Suivant. Nommez cet tat Iensemble, comme titre Etat des
ensembles . Ouf ! Vous pouvez enfin cliquer sur Terminer.
Comme votre tat est plus large que la feuille, passez en mode paysage. Votre tat apparat
maintenant dans lditeur dtat. Si vous voulez faire quelques retouches, cest maintenant.
http://www.btsig.org/
16
Jean-Luc Baptiste
Page 14 sur
iAperu(i100)
iImprimeEtat(Iensemble)
Voil, ce modeste "mini-lab" est fini. Vrifiez que tous les boutons fonctionnent, que les
traitements sont cohrents. Il y aurait des amliorations possibles (concevoir un compteur qui
totalise les prix HT des composants entrant dans la composition dun ensemble). Mais je
considre que vous tes apte le faire vous-mme.
Vous avez mrit la pause syndicale
http://www.btsig.org/
16
Jean-Luc Baptiste
Page 15 sur
Exercice Pratique
Enonc :
La municipalit de votre lieu de rsidence dsire ouvrir une bibliothque municipale.
Connaissant vos nombreuses comptences informatiques, ladjoint au maire charg de
la culture vous demande de concevoir le logiciel charg de la gestion des prts de livre
et des achats.
Voici quelques lments de rflexion :
Chaque livre est rfrenc par un numro ISBN qui sert didentifiant et qui est dfini de
faon internationale, par exemple le livre WinDev, WebDev, WinDev Mobile crit par
Jean-Luc Baptiste aux ditions ENI a le numro ISBN 978-2-7460-5898-9.
Le directeur de la bibliothque voudrait pouvoir saisir les rfrences compltes du livre
(la date dachat, son prix dachat, la quantit achete, le fournisseur, sa classification :
policier, aventure).
Cette saisie doit lui permettre de connatre le nombre total de livre en stock, le cot du
stock, le nombre et le cot par type de livre, le nombre de livre par auteur avec le titre
et la quantit en stock. Si vous avez dautres statistiques lui proposer, elles seront les
bienvenues.
Un client est rfrenc par un numro alatoire gnr par la base de donnes. Les
emprunteurs doivent pouvoir tre ajouts, modifis, supprims.
Les rgles de gestion sont les suivantes :
Une personne ne peut pas emprunter plus de 3 livres de la bibliothque. Elle peut
en emprunter 3 dun coup ou les uns aprs les autres ;
Elle doit ramener un livre 15 jours aprs son emprunt. Le systme doit pouvoir
faire un tat des livres emprunts non rentrs et diter un listing avec les noms,
prnoms, adresses et N de tlphone des emprunteurs et la liste des livres quils
auraient d rendre. Ainsi, le bibliothcaire pourra tlphoner la personne pour
lui demander de rendre les ouvrages.
http://www.btsig.org/
16
Jean-Luc Baptiste
Page 16 sur