- -

  ( )  
   

~~~ : { } . : (18) |


  >




 
  : ( 1 )  
03-31-2012, 10:29 PM
  Safe Mode
 
Safe Mode
[ ]

  Safe Mode    
: 17916
: Dec 2008
:  Male
: Boot device
: 389 [+]
: 40
: Safe Mode is on a distinguished road
.

:


.
.

Cours N : 3

Travailler avec un fichier de donnes



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 surSuivant.


Vous pouvez choisir entre un Modle Logique de Donnes et un Modle Conceptuel de Donnes. Cliquez sur
Suivantpour 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 bud*** 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 Suivantpuis 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 :


Nom Libell Type Taille Date Date de l'opration Date Sera rempli automatiquement Descriptif Description de l'opration Texte 50 Dpense Montant Dbit Numrique (Format 999 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 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 :

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 :

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
HLitPremier(Mouvement,IDMouvement)
TANTQUE PAS HEnDehors
TableAjoute(Tmouv,Mouvement.Date+TAB+Mouvement.Des criptif+TAB+Mouvement.Dpense+TAB+Mouvement.Recett e+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 :

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 les champs
Date, Descriptif, Dpense, Recette sur la fentre saisie.




Votre fentre devrait correspondre celle-ci :



Pour tre sr que chaque champ est bien li une rubrique du fichier, cliquez sur l'un d'entre 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 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 :

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




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

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
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
SI Date="" OU Descriptif="" OU (Dpense=0 ET Recette=0) ALORS
Info("L'un des champs n'a pas t rempli !")
Ferme
FIN
SI Dpense <>0 ET Recette <>0 ALORS
Info("Vous ne pouvez saisir qu'un montant au Dbit ou alors au Crdit !")
Ferme
FIN



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 comme Nom 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, vousdevez 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
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.Des criptif+TAB+Mouvement.Dpense+TAB+Mouvement.Recett e+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
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 :

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
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 fini et enregistr, entrez dans la zone code du bouton Imprime :
other
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.
Safe Mode

Mode Sans Echecs



Mode Sans Echecs
07-27-2012, 02:04 AM   : ( 2 )
Dado.com

  Dado.com

: 25401
: May 2010
:  Female
: Alger ...India..checher..Khenchela..
: 2,764 [+]
: 49
: Dado.com is on a distinguished road


Dado.com

: .



Dado.com
 


« | »


:
:
HTML :



. Safe Mode 1 07-27-2012 02:05 AM
. Safe Mode 1 07-27-2012 01:49 AM
(( )) 18 01-19-2011 01:16 PM
忿 MISS-houda 3 02-08-2010 06:25 PM
: 2 03-01-2007 06:38 PM


:::::::::: / . . :::::::::::::: :::::::::::::::

www.dzsecurity.com - www.himaia.com - www.gcmezdaouet.com - www.dypix.com

- - -

Powered by vBulletin™ Version 3.8.7
Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.
˙0● ●0˙