Vous êtes sur la page 1sur 26

6, bd marchal Juin F-14050 Caen cedex 4

Spcialit Informatique 2e anne

Rapport de projet

Gestpharma
Logiciel de gestion pour pharmacie

BENNADY Achraf JRAIF Tarik

Suivi : Clouard Rgis

Anne 2004-2005

Table des matires


1. Introduction......................................................................................................................3 2. Client et cahier de charge.................................................................................................4 2.1) Notre client .................................................................................................................4 2.2) Le cahier de charge......................................................................................................4 2.2.1) Introduction .........................................................................................................4 2.2.2) Linterface du logiciel...........................................................................................4 2.2.3) Le diagramme des cas dutilisation .......................................................................5 2.2.4) Les fonctionnalits du logiciel ..............................................................................5 3. Conception de la base de donnes....................................................................................8 3.1) Pourquoi une base de donnes ? ..................................................................................8 3.2) Conception de la base de donnes................................................................................8 3.2.1) Dictionnaire des donnes .....................................................................................8 3.2.2) Graphe des dpendances fonctionnelles ................................................................9 3.2.3) Modle conceptuel final......................................................................................10 3.2.4) Reprsentation physique de la base de donnes...................................................10 3.2.4.1) Pourquoi Access ?........................................................................................10 3.2.4.2) Gestpharma et Access ..................................................................................11 4. Dveloppement du logiciel..............................................................................................12 4.1) Lenvironnement de dveloppement ..........................................................................12 4.1.1) Borland C++ Builder ..........................................................................................12 4.1.2) Les composants utiliss ......................................................................................12 4.2) Dveloppement du logiciel ........................................................................................13 4.2.1) Analyse et Modlisation ....................................................................................13 4.2.2) Conception du logiciel........................................................................................15 4.2.2.1) La fentre principale ....................................................................................15 4.2.2.2) Les pages du logiciel....................................................................................15 4.2.2.3) Fonctionnalits globales...............................................................................16 4.2.3) Installation du logiciel ........................................................................................16 5. Conclusion ......................................................................................................................17 6. Annexe ............................................................................................................................18 6.1) Documentation du logiciel.........................................................................................18 6.1.1) La page didentification et les utilisateurs ...........................................................18 6.1.2) Les pages des fonctionnalits lies au stock ........................................................18 6.1.3) Les pages des fonctionnalits lies la vente ......................................................20 6.1.4) Les pages des fonctionnalits lies aux commandes............................................21 6.1.5) Les pages des fonctionnalits lies aux changes ................................................22 6.1.6) Les pages des fonctionnalits lies aux crdits....................................................24 6.1.7) Les pages des fonctionnalits lies aux fournisseurs et bons de livraison.............25

1. Introduction
Ce travail sintgre dans le cadre du programme de formation de la 2me anne de lENSICAEN filire Informatique. Nous avons choisi pour notre projet de concevoir un logiciel de gestion pour pharmacie. Notre choix a t motiv par plusieurs points et notamment le fait davoir un client pour notre logiciel ce qui nous permet de nous initier lapproche client dveloppeur et au cycle de vie du logiciel, et nous engage concevoir un produit fiable, robuste et rpondant compltement au besoins du client. Notre choix a aussi t influ par les outils informatiques que nous allions mettre en uvre pour ce logiciel savoir la conception dune base de donnes, dune GUI (Graphical User Interface) et de toute la programmation quil y a derrire pour satisfaire le cahier de charge du client et aboutir une application simple, utile, performante, ergonomique et fiable. La conception et la mise en uvre des bases de donnes constituent un volet trs important de linformatique car elles sont aujourdhui au cur des applications quotidiennes et du systme dinformation des entreprises. Les GUI constituent aussi une partie primordiale de linformatique moderne car ils permettent la vulgarisation des applications pour le grand public et laugmentation de linteraction des utilisateurs avec le logiciel permettant ainsi une prise en main facile et une organisation visuelle efficace surtout quant il sagit de la manipulation des bases de donnes. Cest pour toutes ces raisons que nous avons choisi ce projet, et nous esprons que ce travail satisfera notre client et notre cole et nous permettra denrichir notre savoir. Pour ce projet nous avons choisit de suivre le cycle de dveloppement logiciel complet pour nous initier aux mthodes de dveloppement professionnelles et aboutir un produit fini. Le travail que nous avons effectu se dcompose en trois grandes partie : premirement, lanalyse du cahier de charge et des besoins du client. Deuximement, la conception de la base de donnes du logiciel en utilisant le SGBD Ms Access. Et troisimement, le conception de lapplication avec sa GUI, ses fonctionnalits et ses tests dintgration et de validation en utilisant le langage C++ et lenvironnement de dveloppement (IDE) Borland C++ Builder. Dans ce rapport nous allons dtailler toutes les tapes de conception de notre logiciel, et il se composera des trois parties cites dans le paragraphe prcdent.

2. Client et cahier de charge


2.1) Notre client
Notre client est un pharmacien marocain dont la pharmacie, qui porte le nom de Pharmacie Chorfa , se situe dans un village au sud de la capitale conomique marocaine Casablanca. Sa pharmacie a ouvert en juin 2000, et prs de 5 ans aprs, son activit a volu et le pharmacien a ressenti le besoin dinformatiser la gestion de sa pharmacie. Les logiciels de gestion prsents dans le march marocain cotent en moyenne 500 euros ce qui reprsente une somme importante par rapport au bnfice de cette pharmacie. De plus les fonctionnalits quils offrent ne correspondent pas au besoin de notre client car les logiciels disponibles regroupent la gestion du stock et la gestion comptable. Le pharmacien a trouv que ctait trop compliqu utiliser et avec trop de fonctionnalits inutiles. Il a donc voulu soumettre un cahier de charge pour lapplication quil dsir avoir quelques entreprises de dveloppement logiciel mais le prix a rapidement doubl et le pharmacien a prfrer renoncer. Aprs avoir pris connaissance du cahier de charge et de la prsence dun projet dans le cadre de notre deuxime anne lcole nous lui avons propos de concevoir ce logiciel bnvolement. Voil, ceci tait lhistoire de notre rencontre avec notre premier client et nous esprons quil y en aura dautres tout au long de notre carrire professionnelle.

2.2) Le cahier de charge


2.2.1) Introduction Le cahier de charge au dpart ntait pas bien mis en forme pour tre directement exploitable vu que notre client, comme la plupart des clients, est un novice en informatique et narrivait pas cerner prcisment toutes les fonctionnalits quil voulait avoir dans son logiciel. Mais aprs plusieurs rencontres de quelques heures avec notre client pendant les vacances de la toussaint nous avons pu discuter avec lui de toutes les fonctionnalits et les caractristiques du logiciel. Cela nous a permis de comprendre prcisment ce que le pharmacien attendait du logiciel et le fonctionnement de la pharmacie. 2.2.2) Linterface du logiciel Le client dsire une interface ergonomique, claire, sobre et surtout trs facile utiliser. Il veut une organisation des diffrentes fonctionnalits du logiciel sous forme dune barre de menu droulante. Linterface graphique doit tre de type SDI (Single Document Interface cest dire une fentre principale et plusieurs pages lintrieurs) car lutilisateur naime pas les interfaces MDI (Multiple Document Interface) quil trouve confuse et difficile manipuler. Le client veut une utilisation importante des tableaux pour organiser les donnes car il a lhabitude de les manipuler. Il veut aussi que chaque fonctionnalit accessible par le menu soit reprsente par une page (frame) dans la fentre principale qui doit safficher plein cran. Il veut une couleur de fond simple et claire de prfrence verte pour concider avec les couleurs de la pharmacie. Les pages doivent comporter des labels pour indiquer leur rle.

2.2.3) Le diagramme des cas dutilisation

2.2.4) Les fonctionnalits du logiciel Les utilisateurs : Le logiciel doit demander au dmarrage une identification de lutilisateur pour assurer la confidentialit et lintgrit des donnes. Le pharmacien et ses collgues doivent pouvoir consulter et manipuler la liste des utilisateurs (pharmaciens) qui seront identifis par un identifiant et un mot de passe. Le Stock : Le logiciel doit grer compltement le stock lors des diffrentes oprations dentre et de sortie de mdicaments. Lutilisateur doit pouvoir ajouter des mdicaments au stock avec leurs donnes (dsignation, forme cest dire le type du mdicament, le prix unitaire de vente, le prix unitaire dachat et la quantit prsente initialement). Le prix unitaire dachat est calcul grce un coefficient sur le prix de vente qui est de 70% du prix de vente pour les mdicaments, 50% pour le paramdical et 85,16% pour les laits. Le client doit pouvoir supprimer un mdicament sil nest pas utilis dans des oprations ou modifier ses donnes. Les formes des mdicaments ne doivent pas tre tapes pour chaque mdicament car il ny en a pas beaucoup. Lutilisateur doit pouvoir voir son stock complet sous forme dun tableau avec une indication sur le nombre de produits, de mdicaments diffrents et sa valeur en sappuyant sur le prix de vente. Il faut aussi pouvoir imprimer le tableau reprsentant le stock pour les besoins dinventaire.

Les changes : Le logiciel doit grer les changes de mdicaments avec les pharmacies (cest une pratique courante entre pharmaciens dans les zones loigns car les fournisseurs ne font que 2 livraisons par jour au maximum et il faut rpondre aux demandes des clients). Lutilisateur doit pouvoir manipuler une liste des pharmacies avec lesquels il a eu des changes et il veut enregistrer le nom de la pharmacie, son adresse et son n de tlphone. Il doit pouvoir ajouter un change avec ses mdicaments et la pharmacie concerne. A la slection de la forme dun mdicament il veut saisir de faon intuitive la dsignation du mdicament ou avec une liste droulante, puis sa quantit. Et il veut aussi voir la valeur de lchange en mme temps. Il y a deux type dchange, en sortie (les mdicaments seront retirs du stock) et en entre (les mdicaments seront ajouts au stock). Toutes les donnes concernant les changes doivent tre enregistres pour pouvoir tre consultes. Le client veut pouvoir consulter les changes avec une pharmacie prcise, une date prcise ou dans une priode entre deux dates (mois, anne) avec la possibilit de voir tout le dtail des mdicaments dun change prcis. Les ventes : Le logiciel doit enregistrer les ventes et les oprations qui leurs sont lies. Lutilisateur doit pouvoir saisir la liste des mdicaments de la vente de la mme faon que celle des mdicaments dun change et voir en mme temps la valeur de la vente. Il y a trois types de vente : - La vente normale, et il faut enregistrer la date et lheure de la vente, le nombre de mdicaments et le montant de la vente sans le dtail complet. - Une vente avec facture, et dans ce cas il faut enregistrer la vente de la mme faon quune vente normale en ajoutant le nom du client. Il faut en plus gnrer une facture pour limprimer avec un numro de facture ordonn croissant et lenregistrer avec le n de facture, la date, lheure et le nom du client. Lutilisateur doit pouvoir manipuler une liste des factures quil a dit pour changer le client ou la date ou supprimer une facture. Il doit pouvoir consulter chaque facture et limprimer nimporte quel moment. Un exemple de facture nous a t fourni par le pharmacien. - Une vente crdit, et dans ce cas il faut enregistrer la vente de la mme faon quune vente normale en slectionnant le client de la vente dont on doit avoir enregistrer plusieurs informations que nous allons voir dans la partie des crdits, et il faut aussi saisir le montant rgl. Le montant de la vente moins le montant rgl donnera la somme ajouter au montant du crdit du client avec comme date de crdit la date de la vente. On doit aussi enregistrer le dtail de la vente qui sera ajout au dtail du client pour pouvoir tre consult. Aprs chaque vente valide, les mdicaments doivent tre retirs du stock et ajouter la commande courante que nous allons voir plus bas dans la partie des commandes. Lutilisateur doit pouvoir consulter les ventes effectues une date ou une priode entre deux dates avec un calcul de la recette et du nombre de vente et de mdicaments. Les commandes : Pour assurer lapprovisionnement du stock, tous les mdicaments vendus doivent tre ajout la commande courante qui est la commande contenant tous les mdicaments vendus aprs la dernire commande effectue. Lutilisateur doit pouvoir consulter cette commande courante et la modifier. Quand la commande courante sera effectue, une nouvelle commande vide prendra sa place et lancienne sera enregistre avec lheure pour tre consulte. On doit pouvoir consulter les commandes avec leur valeur et nombre de mdicaments une date ou un intervalle entre deux dates avec la possibilit de voir le dtail des mdicaments.

Les crdits : Avant deffectuer une vente crdit il faut saisir des donnes sur le client si cest un nouveau client (Nom du client, son n de carte didentit nationale CIN et son n de tlphone). Aprs la vente on ajoute le montant du crdit au client et on met jour le montant quil lui reste payer. A chaque client correspond un seul crdit dont le montant est la somme de tous les crdits quil a pris, son dtail contient tous les mdicaments quil a pris et sa date celle du dernier crdit pris. Il faut pouvoir ajouter les paiements des clients avec leur montant et leur date et mettre jour le montant restant payer. Il faut aussi pouvoir consulter les paiements pour modifier leur montant ou les supprimer. Lutilisateur doit pouvoir consulter les crdits dun client ou dune date ou dune priode entre deux dates avec la possibilit de voir le dtail des mdicaments et des paiements de chaque client ainsi que le montant du crdit et le reste payer. Les bons de livraison : Le logiciel doit permettre la saisie des donnes dun bon de livraison dun fournisseur et mettre jour le stock. Lutilisateur doit pouvoir manipuler une liste contenant ses fournisseurs (nom, adresse, n tlphone). Un exemple de bon de livraison nous a t fourni par le client. Il faut aussi pouvoir consulter les bons de livraison par fournisseur, par date et priode entre deux dates avec la possibilit de voir tout le dtail du bon de livraison. Fonctionnalits ajoute : Aprs accord du client nous avons ajout une page avec les statistiques des ventes sous forme dhistogrammes et plusieurs informations calcules sur les rsultats de consultation des diffrentes pages.

3. Conception de la base de donnes


3.1) Pourquoi une base de donnes ? Gestpharma est un logiciel de gestion de stock qui offre son utilisateur plusieurs
fonctionnalits dont la consultation, lenregistrement, la modification ou mme la suppression de donnes relatives son commerce. Ces informations devraient donc tre stockes sous un format particulier qui pourrait offrir une souplesse en lecture et criture tout en assurant la non-volatilit des donnes. La meilleure solution si ce nest la seule - tait donc de reprsenter toutes ces informations sous la forme dune base de donnes. Or cette base de donnes se doit dtre normalise afin de supprimer la redondance logique, viter les anomalies de stockage et rsoudre les problmes de reconnexion. Pour cela, nous avons opt pour la mthode de synthse Merise que nous allons dtailler dans les paragraphes suivants.

3.2) Conception de la base de donnes


Mthode de synthse MERISE :
3.2.1) Dictionnaire des donnes Donnes
@_fourn1 @_pharmacien date_commande date_credit date_echange date_facturation date_facture date_paiement date_vente heure_commande heure_debut heure_facture heure_fin heure_vente montant_facturation montant_vente mot_de_passe nbr_medica nom_client nom_fourn nom_medica nom_pharmacien nom_utilisateur num_bl3 num_cin4 num_client num_commande num_doc num_echange num_facture

Type
AN AN AN AN AN AN AN AN AN AN AN AN AN AN N N AN N A A AN A A N AN N N N N N

Unit

Type de donnes
E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E

Opration de calcul

Rgles intgrit

Document
Fournisseur Pharmacien Commande Client Echange BonLivraison Facture Paiement Vente Commande BonLivraison Facture BonLivraison Vente BonLivraison Vente Utilisateurs Vente Client Fournisseur Stock Pharmacien Utilisateurs BonLivraison Client Client Commande BonLivraison Echange Facture

Dhs2 Dhs

num_fourn num_medica num_paiement num_pharmacien num_tel_client num_tel_fourn num_tel_pharmacien num_type_medica num_utilisateur num_vente prix_achat prix_medica qte_medica qte_medica_bl3 qte_medica_com qte_medica_credit qte_medica_echange qte_medica_fac somme_credit somme_paiement type_echange type_medica 1 : @ = Adresse.

N N N N N N N N N N N N N N N N N N N N AN AN

Dhs Dhs

Dhs Dhs

E E E E E E E E E E E E E E E E E E E E E E

Fournisseur Stock Paiement Pharmacien Client Fournisseur Pharmacien Forme Utilisateurs Vente Stock Stock Stock DetailBl DetailCommande DetailClient DetailEchange DetailFacture Client Paiement Echange Forme

2 : Dirhams (monnaie du Maroc). 3: bl = Bon de Livraison.

3.2.2) Graphe des dpendances fonctionnelles Le graphe ci-dessus reprsente toutes les donnes et les relations qui les lient. Seules les dpendances fonctionnelles lmentaires et directes sont reprsentes.

Dpendances fonctionnelles simples Dpendances fonctionnelle partie gauche compose

3.2.3) Modle conceptuel final

3.2.4) Reprsentation physique de la base de donnes Aprs avoir tabli une reprsentation logique de la base de donnes, nous devions choisir un outil informatique qui puisse permettre une reprsentation physique de ladite base. Parmi les logiciels de gestion de BDD prsents sur le march, nous avons opt pour le plus classique et le plus utilis : Microsoft Access. 3.2.4.1) Pourquoi Access ? Le client, auquel est destin ce logiciel, travaille sur une machine qui tourne sous Windows. Il fallait donc imprativement trouver un gestionnaire de base de donnes qui puisse sadapter parfaitement avec la plateforme de la machine. Microsoft Access nous paraissait donc le mieux adapt cette situation vue son utilisation massive dans le domaine de la gestion de base de donnes (grande quantit dinformations, de tutoriaux et de F.A.Q sur Internet) et le fait quil fait partie des programmes livrs lachat dune machine tournant sous Windows (Microsoft Office). Aux qualits cites ci-dessus sajoutent aussi une grande souplesse et une facilit dutilisation.

10

3.2.4.2) Gestpharma et Access Quelques points concernant la conception de la base de donnes sous Access : Les entits et les associations sont reprsentes par des tables. Ces tables sont initialement vides. Les donnes de type alphanumrique sont de type Texte sous Access. Les donnes numriques sont de type Entier (ex. qte_medica) ou Rel Double (ex. prix_achat). Les identifiants des tables Client, Fournisseur, Forme, Paiement, Pharmacien Et Utilisateurs sont de type NumroAuto sous Access. Leur valeur sincrmente automatiquement aprs chaque enregistrement, mais ne se dcrmente pas aprs une suppression. Cette proprit permet dinsrer une donne sans se soucier du numro quon doit attribuer son identifiant. Les dates ont t dclares comme tant de type Texte au lieu de Date. Ceci est d au fait que Access interprte les dates la fois en franais et en anglais (02/03/2005 signifie pour lui la fois le 02 Mars2005 et le 03 Fvrier 2005) ce qui pourrait nuire la recherche dinformations par intervalle de dates.

iConcernant les cardinalits, reprsentes sur le modle conceptuel, Access suit une logique
inverse celle utilise par lapproche Merise (logique UML) ! Exemple : Relation Stock - Forme Une forme peut tre affecte plusieurs mdicaments et un mdicament ne peut avoir quune seule forme prcise.

11

4. Dveloppement du logiciel
4.1) Lenvironnement de dveloppement
4.1.1) Borland C++ Builder C++Builder est un IDE (environnement de dveloppement intgr). Il regroupe tout un ensemble d'outils permettant d'effectuer un maximum de tches de dveloppement au sein du mme environnement de travail. C++ Builder est de plus un environnement de dveloppement visuel C++ RAD (Rapid Application Development). Il permet de construire rapidement des applications bases sur une GUI et interagissant avec une base de donne en utilisant des composants et simplifie au maximum l'criture du code et la ralisation de l'interface. On peut ainsi trs rapidement se consacrer la partie "mtier" du code (le code rellement utile de l'application). 4.1.2) Les composants utiliss Pour raliser notre logiciel nous avons utilis plusieurs composants offerts par lenvironnement de dveloppement dans deux bibliothques : la bibliothque de composants visuels (VCL) et la bibliothque de composants multiplate-forme (CLX). Ces composants se divisent en deux groupes, ceux lis lutilisation de la base de donnes et ceux des lments de notre interface graphique. Les composants lis la base de donnes : Nous avons choisi de travailler avec des composants ADO (ActiveX Data Object) permettant d'accder aux bases de donnes de faon beaucoup plus facile sans se soucier de tout ce qui est allocation des environnements de travail (cf. programmation avec la couche basse d'ODBC). ADO fournit des objets qui permettent de se connecter une base et de raliser des requtes SQL sur cette base et voici ceux que nous avons utiliss : TADOConnection : Se connecte un stockage de donnes ADO et les autres composants accdent la base de donnes travers lui. TADOCommand : Permet dexcuter des requtes SQL qui ne retournent pas de rsultats (INSERT, UPDATE, DELETE). TADODataSet : Reprsente un ensemble de donnes rcupr dans une base de donnes avec une requte SQL et il permet de manipuler cet ensemble. TADOTable : reprsente une image dune table dans une base de donnes et permet de la manipuler. TADOQuery : Permet dexcuter des requtes SQL sur une base de donnes et de manipuler le rsultat. TDataSource : Sert d'interface entre un composant densemble de donnes et les contrles orients donnes d'une fiche comme les tableaux ou les listes droulantes. TDBGrid : Affiche et manipule les enregistrements d'un ensemble de donnes dans une grille tabulaire. TDBNavigator : Est utilis pour se dplacer dans un ensemble de donnes et effectuer des actions sur les donnes (par exemple, insrer un nouvel enregistrement ou expdier un enregistrement). TDBLookupComboBox : Reprsente une liste droulante qui identifie un ensemble de valeurs de champ d'un ensemble de donnes l'aide d'un ensemble de valeurs correspondantes d'un autre ensemble de donnes (utilis pour les jointure naturelles). 12

Les composants de linterface graphique : Nous avons choisi dutiliser les composants de la VCL qui sont des objets visuels quon peut manipuler lors de la conception et grer leurs proprits, leurs mthodes et leurs vnements. TForm : reprsente une fentre (fiche) standard d'une application (la fentre principale). TFrame : Cest un conteneur de composants qui peut tre imbriqu dans des fentres, ou dans d'autres cadres (les pages insres dans la fentre principale pour linterface SDI). TMainMenu : Encapsule dans une fentre une barre des menus et ses menus droulants. TLabel : Cest un contrle non-fentr qui affiche du texte ou un bitmap dans une fiche. TEdit : Cest un contrle de saisie monoligne. TRadioGroup : Reprsente un groupe de boutons radio qui fonctionnent ensemble. TGroupBox : reprsente une bote groupe contenant plusieurs composants. TComboBox : Combine une bote de saisie et une liste droulante. TPanel : implmente un contrle volet gnrique contenant plusieurs composants. TBitBtn : Cest un contrle bouton poussoir qui peut contenir une image sur sa face. TStringGrid : Cest un contrle grille (tableau) conu pour simplifier la gestion de chanes et d'objets associs et leur affichage. TImage : Affiche une image graphique (bmp, jpeg...). TRichEdit : Encapsule un contrle diteur de texte format de Windows. TDateTimePicker : Affiche une bote liste permettant la saisie de dates ou d'heures. TChart : Permet de construire et dafficher des graphes (histogrammes, camembert). TPrintDialog : Affiche une bote de dialogue d'impression. RXGifAnimator : Affiche une image graphique anime de type GIF. TPrintDialog : Affiche une boite de dialogue pour les options dimpression.

4.2) Dveloppement du logiciel


4.2.1) Analyse et Modlisation Le point central du logiciel est sa GUI, donc toutes les fonctionnalits seront intgres laide de composants visuels intgrs linterface et interagissant avec des composants de bases de donnes. La modlisation du logiciel suit le modle de son interface. Cette interface est de type SDI avec une fentre principale (TForm) et plusieurs frames (TFrame) lintrieur accessibles grce une barre de menu (TMainMenu). Les frames sont composes de plusieurs composants visuels et de composants orients base de donnes. Certain composant sont couteurs dvnements et excutent des mthodes en rponse. Dans la page qui suit, on peut voir une partie de la modlisation UML de lapplication. Pour des soucis de place et de lisibilit, nous avons choisi de modliser une seule frame, celle de la liste des clients TClient1 , et nous navons pas not tous les attribut et mthodes des objets. Les autres frames suivent le mme modle. Le menu de la fentre principale contient plusieurs items ordonns suivant leur fonctionnalit, et ils serviront afficher les diffrentes frames. Diagramme de classes UML :

13

14

4.2.2) Conception du logiciel 4.2.2.1) La fentre principale La fentre principale est un objet hritant de la classe TForme. Elle reprsente une fentre standard affiche en plein cran. Elle se compose dune barre de menu (TMainMenu), elle-mme compose de plusieurs items (TMenuItem). A cette fentre viendront sajouter toutes les frames (TFrame) du logiciel. Le menu permettra de naviguer travers les pages en utilisant une mthode HideAll() de la fentre principale qui cache toutes les frames puis en appelant la methode Show() de la frame quon dsire afficher avec des oprations de mise jour des composants de la frame lis la base de donnes. La fentre principale permet aussi dimprimer la page visible avec une bote de dialogue doption dimpression (TPrintDialog) et permet aussi dafficher laide du logiciel qui est sous forme dun fichier .hlp conu avec le logiciel Help&Manual et compil avec Help Workshop. 4.2.2.2) Les pages du logiciel La page didentification et la page de gestion des utilisateurs : La page d'identification est la premire page qui s'affiche au dmarrage du logiciel qui est protg par mot de passe. Il y a aussi une page pour grer les utilisateurs avec leur identifiant et leur mot de passe. Les pages des fonctionnalits lies au stock : Il y a 4 pages pour grer le stock. Une pour ajouter de nouveau mdicaments au stock. Une autre pour diter le stock et modifier les donnes concernant un mdicament. Une troisime page pour la liste de formes des mdicaments prsents dans le stock. Et enfin une page pour voir le stock compltement et pouvoir limprimer. Les pages des fonctionnalits lies la vente : Il y a 4 pages pour grer les ventes. Une pour effectuer une vente (normale, crdit ou avec facture). Une autre pour consulter les ventes. Une troisime page pour consulter les factures et pouvoir les imprimer. Et enfin une page pour consulter les statistiques des ventes sous forme dhistogrammes. Les pages des fonctionnalits lies aux commandes : Il y a 2 pages pour grer les commandes. Une pour consulter ou modifier la commande courante. Et une deuxime pour consulter les commandes effectues. Les pages des fonctionnalits lies aux changes : Il y a 3 pages pour grer les changes. Une pour la liste des pharmacies (consultation et modification). Une autre pour ajouter un change avec une pharmacie. Et enfin une page pour consulter les changes effectus avec leurs donnes. Les pages des fonctionnalits lies aux crdits: Il y a 3 pages pour grer les crdits. Une pour la liste des clients (consultation et modification). Une autre pour ajouter les paiements dun client. Et enfin une page pour consulter les crdits des clients avec leurs donnes. Les pages des fonctionnalits lies aux fournisseurs et leurs bons de livraison : Il y a une page permettant de consulter les bons de livraisons enregistrs et visualiser leurs donnes. Cette page permet aussi de voir la liste des fournisseurs (consultation et 15

modification). Une autre page permet dajouter les bons de livraisons avec une interface proche du document fournit par le client. 4.2.2.3) Fonctionnalits globales Toutes les actions de lutilisateurs sont contrles et toutes les erreurs cartes. Les zones de saisie dispose dune validation de la saisie suivant le type de caractres quils peuvent contenir. Les oprations incohrentes sont notifies lutilisateur. Toute opration enregistre est rversible par modification ou suppression. 4.2.3) Installation du logiciel Nous avons utilis InstallShieldExpress pour fabriquer un fichier dinstallation automatique qui installe le logiciel sur la machine cible. Le logiciel est compos dun excutable Gestpharma.exe et dun dossier Data contenant la base de donnes Gestpharma.mdb , laide Gestpharma.hlp et les diffrentes images insres dans le logiciel. Lexcutable a besoin de 2 DLL (borlndmm.dll et cc3260mt.dll) et 6 packages .bpl (adortl60.bpl, tee60.bpl, dbrtl60.bpl, rtl60.bpl, vcl60.bpl, vcldb60.bpl). Nous avons choisi de fournir le logiciel sur CD-ROM avec excution automatique de linstallation. Le fichier dinstallation Setup.exe installe le logiciel avec ses donnes, place les DLLs et les packages dans le rpertoire systme de Windows et ajoute un raccourcie dans le menu dmarrer.

16

5. Conclusion
Ce projet nous a permis davoir une approche complte du dveloppement logiciel. Il nous a permis de nous initier au contact avec le client et lanalyse des besoins et du cahier de charge. Nous avons aussi pu nous initier au cycle complet du dveloppement logiciel de la conception la validation en passant par les diffrentes tapes incrmentales de codage et de tests. Ce travail nous a appris concevoir une base de donnes complte en utilisant la mthode merise et en se basant sur les besoins de lapplication raliser. On a aussi appris utiliser le SGBD Microsoft Access et lenvironnement de dveloppement trs performant Borland C++ Builder. On a aussi pu dcouvrir le fonctionnement dune pharmacie et les besoins de gestion informatique quils peuvent avoir. Notre client a beaucoup apprci lapplication et il la trouve ergonomique, simple et complte. Il nous a propos de jouer le rle de commercial pour essayer de distribuer le logiciel auprs des diffrentes pharmacies du royaume. Nous avons aussi reu plusieurs demandes pour concevoir des logiciels de gestion de stock pour dautres commerces. Et avec le savoir-faire que nous avons acquis dans ce projet, nous sommes capable de concevoir ce type de logiciel en moins dun mois ce qui nous permet de rpondre rapidement aux clients potentiels. Ce travail nous a donn un avant-got du mtier de dveloppeur et il nous a permis de concevoir pour la premire fois une vraie application pour un vrai client et cela constitue une grande satisfaction personnelle et professionnelle qui signe le dbut daboutissement de notre formation.

17

6. Annexe
6.1) Documentation du logiciel
6.1.1) La page didentification et les utilisateurs La page d'identification est la premire page qui s'affiche au dmarrage du logiciel. Elle comporte un champs de saisie pour l'identifiant de l'utilisateur et un champs pour son mot de passe. Vous validez l'identification en cliquant sur le bouton OK. Si l'identification russie la barre de menu de la fentre principale du logiciel devient active, la page de vente s'affiche et vous pouvez naviguer grce la barre de menu dans les diffrentes rubriques du logiciel. Cette page est lie la table Utilisateur de la base de donnes pour vrifier lidentification grce un composant TADODataSet qui execute des requtes SQL et rcupre le resultat. Pour grer les utilisateurs et leur mot de passe, une liste des utilisateurs est dans la page accessible par le menu "Utilisateurs" puis "Liste des Utilisateurs". Cette page comporte un tableau (TDBGrid) reprsentant une image de la table Utilisateur, grce un composant TDataSource li un TADOQuery qui excute la requte SELECT * FROM Utilisateur et stock le rsultat. On peut insrer un nouvel utilisateur, modifier son identifiant et/ou mot de passe ou supprimer un utilisateur en utilisant le tableau ditable et le composant TDBNavigator qui est li au TADOQuery travers un composant TDataSource. Les composants lis la base de donnes sont connects grce leur proprit ConnexionString qui spcifie tous les paramtres. 6.1.2) Les pages des fonctionnalits lies au stock La page dajout de mdicaments au stock : La page d'ajout au stock est accessible par le menu "Stock" puis "Ajouter au stock". Cette page comporte un tableau (TDBGrid) qui reprsente une image de la table Stock avec une jointure naturelle avec la table Forme grce un composant TDataSource li un TADOQuery. Ce tableau montre tous les mdicaments prsents dans le stock avec leur forme, leur prix unitaire dachat et de vente et leur quantit dans le stock. En haut gauche du tableau, vous avez un bouton "Actualiser" qui sert actualiser l'affichage du tableau en cas de ralentissement l'insertion d'un nouveau mdicament qui doit normalement s'afficher instantanment en haut du tableau (on utilise la methode Requery() de lobjet TADOQuery). La liste droulante en dessous du bouton "Actualiser" sert changer l'ordre des mdicaments affichs dans le tableau, soit par ordre dajout soit par ordre alphabtique de la dsignation du mdicament (cest un changement de lORDER BY de la requte SQL du TADOQuery). La barre en dessous du tableau sert ajouter un nouveau mdicament dans le stock avec un champs de saisie pour la dsignation, une liste droulante pour la forme qui est remplit avec les donnes de la table Forme chaque affichage de la page (clique sur le menu "Ajouter au stock".), un champs de saisie pour le prix dachat et le prix de vente est automatiquement calcul suivant le forme et saisie avec possibilit de le modifier puis un champs de saisie pour la quantit. Le bouton ajouter vrifie la validit des champs et ajoute le nouveau mdicament dans le stock grce une requte INSERT excute par un composant TADOCommand. La connexion avec la base de donnes est assure avec un 18

composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet. La page de la liste des formes : La liste des formes est dans la page accessible par le menu "Stock" puis "Liste des Formes". Cette page comporte un tableau (TDBGrid) reprsentant une image de la table Forme, grce un composant TDataSource li un TADOQuery qui execute la requte SELECT * FROM Forme et stock le resultat. On peut insrer une nouvelle forme, modifier son nom ou la supprimer en utilisant le tableau ditable et le composant TDBNavigator qui est li au TADOQuery travers un composant TDataSource. Les composants lis la base de donnes sont connects grce leur proprit ConnexionString qui spcifie tous les paramtres. La page ddition du stock : Pour diter le stock, c'est dire modifier les donnes concernant un mdicament (Dsignation, Prix, quantit ou forme), il faut aller la page d'dition du stock en cliquant sur le menu "Stock" puis "Editer le stock". Cette page comporte un tableau (TDBGrid) qui reprsente une image de la table Stock grce un composant TDataSource li un TADOQuery. La jointure naturelle avec la table Forme est ralise avec un objet TDBLookupComboBox qui met dans la table Stock le n de forme correspondant celle slectionne dans la liste et qui est connect la table Forme avec un composant TADOTable. On peut modifier les donnes dun mdicament en utilisant le tableau ditable et le composant TDBNavigator qui est li au TADOQuery travers un composant TDataSource. Pour modifier la forme d'un mdicament, il faut utiliser la liste droulante. Cette liste donne la forme du mdicament courant slectionn dans le tableau. La liste droulante en haut droite du tableau sert changer l'ordre des mdicaments affichs dans le tableau (par ordre dajout, ordre alphabtique, prix croissant, quantit croissante ou forme, cest un changement de lORDER BY de la requte SQL du TADOQuery). La liste droulante en dessous permet de rechercher un mdicament dans le tableau et de slectionner sa ligne (utilise la methode Locate() de TADOQuery). La liste est criture intuitive de la dsignation des mdicaments. Pour rechercher le mdicament il faut cliquer sur le bouton Rechercher aprs avoir tap le nom du mdicament ou une partie du nom dans la liste. La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet. La page pour voir le stock : Pour voir le stock il faut cliquer sur le menu "Stock" puis "Voir le stock". Cette page comporte un tableau (TDBGrid) qui reprsente une image de la table Stock avec une jointure naturelle avec la table Forme grce un composant TDataSource li un TADOQuery. Ce tableau montre tous les mdicaments prsents dans le stock avec leur forme, leur prix unitaire dachat et de vente et leur quantit dans le stock. A droite du tableau, il y a un panel avec des labels reprsentant des informations calcules sur le stock (valeur, nombre de mdicaments, nombre de produits). On peut limprimer en cliquant sur le menu "Fichier" puis "Imprimer". Le tableau du stock peut tenir sur plusieurs pages, dans ce cas on a une indication "Page" au dessus du tableau qui donne le nombre de pages totales imprimer, pour changer de page il faut cliquer sur les boutons "Prcdente" ou "Suivante" qui changeront automatiquement la page affiche du tableau. La connexion avec la base de donnes est assure avec un composant TADOConnection. 19

6.1.3) Les pages des fonctionnalits lies la vente La page pour effectuer une vente : Pour effectuer une vente il faut cliquer sur le menu "Vente" puis "Effectuer une vente", ou sur la touche F1 du clavier. Pour effectuer une vente il faut suivre deux tapes: remplir la liste de mdicaments de la vente, puis valider la vente suivant son type (vente normale, avec facture ou avec crdit). La liste des mdicaments est un tableau (StringGrid) de 5 colonnes. Pour la remplir il faut slectionner une forme dans la liste droulante Forme (remplit avec les donnes de la table Forme chaque affichage de la page) ce qui remplit la liste des mdicaments avec ceux de la forme slectionne (table Stock), puis slectionner le nom dun mdicament avec saisie intuitive dans la liste Mdicament, puis saisir sa quantit dans la vente. Il est possible de supprimer une ligne de la liste en cliquant sur le bouton Supprimer Ligne . Le panel sous le tableau affiche en permanence le montant de la vente. On peut valider 3 types de ventes : Vente normale : pour cela il suffit de cliquer sur le bouton "Valider vente" aprs avoir remplit la liste des mdicaments. Les mdicaments de la vente seront retirs du stock (table Stock) et ajout la commande courante (table Commande et DetailCommande). La recette, le nombre de mdicaments, la date et lheure seront enregistrs dans la table Vente et une confirmation du succs de l'opration apparat. Vente crdit : pour cela il faut cliquer sur le bouton "Vente crdit", choisir le client auquel vous allez accorder le crdit (si c'est un nouveau client, il faut cliquer sur le bouton nouveau qui affiche la page de la liste des clients, et insrer le nouveau client avec ses donnes puis revenir la page des ventes pour terminer la vente). Vous devez saisir aussi le montant rgl lors de la vente qui sera soustrait du montant de la vente pour donner la valeur du crdit accord ce client. La valeur de la vente sera ajoute la recette et le montant du crdit sera ajout au crdit du client et une confirmation du succs de l'opration apparat. Enfin, les mmes oprations quune vente normale seront enregistres. Vente avec facture : pour cela il faut cliquer sur le bouton "Vente avec facture" aprs avoir saisi le nom du client dans le champ "Nom client". Une confirmation du succs de l'opration apparat, puis la facture est affiche. Les mmes oprations qune vente normale seront enregistres. Sur la facture on peut changer les coordonns de la pharmacie en haut gauche de la facture et l'identit du client droite de la facture en dessous de la date grce deux TRichEdit droite de la facture. On peut imprimer la facture grce au menu "Fichier" puis "Imprimer". La facture sera enregistre dans la base de donnes (table Facture et DetailFacture) et vous pourrez la consulter pour changer sa date ou son client et la rimprimer. Les mmes oprations quune vente normale seront enregistres. La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet est les insertion par un TADOCommand. La page pour consulter les ventes : Pour consulter les ventes il faut aller la page de consultation des ventes grce au menu "Vente" puis "Consulter les ventes". Il y a plusieurs critres applicables la consultation et le cadre Vente de la page fournit plusieurs boutons pour la consultation des ventes. Le bouton "Consulter pour cette date" permet de consulter toutes les ventes effectues la date slectionne dans le champ "Date" (TDateTimePicker) qui reprsente un calendrier droulant. Le bouton "Consulter pour cet intervalle" permet de consulter toutes les ventes effectues dans l'intervalle de date entre le champ "Date" et le champ "Date intervalle". 20

Le bouton "Tout consulter" permet de consulter toutes les ventes. Le rsultat de la consultation s'affiche sous forme d'un tableau (TDBGrid connect un TDataSource li un TADODataset) comportant les informations (table Vente) sur chaque vente avec des donnes calcules sur le rsultat en dessous du tableau. La connexion avec la base de donnes est assure avec un composant TADOConnection. La page pour consulter les factures : Pour voir les factures que ont t dit lors des ventes, il faut aller la page de consultation des factures en cliquant sur le menu "Vente" puis "Consulter les factures". Cette page comporte un tableau (TDBGrid connect un TDataSource li un TADOQuery) reprsentant une image de la table Facture. On peut modifier leur date et le nom de leur client ou les supprimer grce au tableau et au TDBNavigator. Et on peut aussi les afficher pour les imprimer en slectionnant une facture dans le tableau et en cliquent sur le bouton "Voir cette facture". La facture s'affiche et vous pouvez l'imprimer en cliquant sur le menu "Fichier" puis "Imprimer". Les factures ont la mise en forme du model fournit par le client avec des labels et un tableau (StringGrid) reprsentant la listes de mdicaments. La page pour consulter les statistiques des ventes : Pour consulter les statistiques des ventes sous forme d'histogramme reprsent par un composant TChart il faut cliquer sur le menu "Vente" puis "Statistique des ventes". Les donnes sont regroupes par mois et concernent une anne prcise quon doit saisir. On peut consulter l'histogramme des recettes, du nombre de ventes, du nombre de mdicaments ou les 3 sur un mme graphe (liste droulante) en cliquant sur le bouton afficher . On utilise la methode Add() du composant Chart pour ajouter les couples de donnes extraits de la table Vente avec un composant TADODataset connect avec un TADOConnection. 6.1.4) Les pages des fonctionnalits lies aux commandes La page pour de la commande courante : La commande courante, menu Commande puis Commande courante , contient la liste des mdicaments vendus aprs la dernire commande effectue. La liste des mdicaments est un tableau StringGrid de 4 colonnes. Le cadre en dessus du tableau prsente quelques information sur la commande notamment sa valeur et le nombre de mdicaments. On peut ajouter des mdicaments la commande ou augmenter la quantit d'un mdicament dj prsent dans la commande, et cela en utilisant la barre en dessous du tableau. La liste droulante "Forme" (remplit avec les donnes de la table Forme chaque affichage de la page) permet de slectionner la forme d'un mdicament que vous pouvez choisir ensuite dans la liste Mdicament. Aprs cela il faudra saisir sa quantit ajouter la commande. Ensuite, il faut cliquer sur le bouton ajouter pour ajouter ce mdicament la commande reprsente par le tableau du milieu. Pour effectuer la commande il faut cliquer sur le bouton "Effectuer commande" en dessous du tableau. Aprs cela la commande est enregistre (table Commande et DetailCommande). Aprs avoir effectuer une commande une nouvelle commande courante vide au dpart la remplacera et contiendra tous les mdicaments vendus aprs. La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet est les insertion par un TADOCommand. La page pour consulter les commandes : Pour consulter les commandes effectues il faut aller la page de consultation des commandes grce au menu "Commande" puis "Consulter les commandes". 21

Il y a plusieurs critres applicables la consultation et le cadre Commande de la page fournit plusieurs boutons pour la consultation. Le bouton "Consulter pour cette date" permet de consulter toutes les commandes effectues la date slectionne dans le champ "Date" (TDateTimePicker) qui reprsente un calendrier droulant. Le bouton "Consulter pour cet intervalle" permet de consulter toutes les commandes effectues dans l'intervalle de date entre le champ "Date" et le champ "Date intervalle". Le bouton "Tout consulter" permet de consulter toutes les commandes. Le rsultat de la consultation s'affiche sous forme d'un tableau (TStringGrid) 4 colonnes comportant les informations (table Commande et DetailCommande) sur chaque commande avec des donnes calcules sur le rsultat en dessous du tableau. Le bouton "Voir le dtail" affiche un deuxime tableau (TStringGrid) contenant les mdicaments de la commande slectionne dans le premier tableau. Le bouton "Cacher le dtail" permet de cacher le tableau de dtail. Le bouton "Commande courante" affiche la page de la commande courante. La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet. 6.1.5) Les pages des fonctionnalits lies aux changes La page de la liste des pharmacies : La liste des pharmaciens est dans la page accessible par le menu " Echanges" puis "Liste des Pharmacies". Cette page comporte un tableau (TDBGrid) reprsentant une image de la table Pharmacien, grce un composant TDataSource li un TADOQuery qui execute la requte SELECT * FROM Pharmacien et stock le resultat. On peut insrer une nouvelle pharmacie, modifier ses donnes ou la supprimer en utilisant le tableau ditable et le composant TDBNavigator qui est li au TADOQuery travers un composant TDataSource. La liste droulante droite permet de rechercher une pharmacie dans le tableau et de slectionner sa ligne (utilise la methode Locate() de TADOQuery). La liste est criture intuitive du nom de la pharmacie (remplit avec les donnes la table Pharmacien chaque affichage de la page). Pour rechercher la pharmacie il faut cliquer sur le bouton Rechercher aprs avoir tap le nom de la pharmacie ou une partie du nom dans la liste. Les composants lis la base de donnes sont connects grce leur proprit ConnexionString qui spcifie tous les paramtres. La page pour ajouter un change : Pour ajouter un change la base de donne il faut aller la page d'ajout d'change en cliquant sur "Echange" puis "Ajouter un change". Pour ajouter un change il faut suivre 3 tapes: remplir la liste de mdicament de l'change puis slectionner le nom de pharmacien et le type de l'change et enfin valider l'change. La liste au milieu (tableau StringGrid 4 colonnes) doit contenir tous les mdicaments de l'change. La liste droulante "Forme" (remplit avec les donnes de la table Forme chaque affichage de la page) permet de slectionner la forme d'un mdicament que vous pouvez choisir ensuite dans la liste Mdicament. Aprs cela il faudra saisir sa quantit dans l'change que vous voulez ajouter. Ensuite, il faut cliquer sur le bouton ajouter pour ajouter ce mdicament la liste du milieu. Si ce mdicament n'est pas prsent dans le stock, il faut choisir sa forme, taper sa dsignation la main dans le champ mdicament puis cliquer sur le bouton "Nouveau" qui affichera la page d'ajout dans le stock avec la forme et la dsignation du mdicament que vous avez tap, et il ne vous reste plus 22

qu' saisir son prix et sa quantit initiale(qui est normalement nulle) et cliquer sur "Ajouter" pour l'ajouter au stock, puis revenir la page d'ajout d'change pour l'ajouter la liste. Le bouton "Supprimer ligne" permet de supprimer la ligne slectionne dans le tableau des mdicaments en cas d'erreur de saisie. La valeur de l'change est affiche instantanment l'ajout des mdicaments dans la zone en haut droite de la quantit. Avant de valider l'change il faut choisir la pharmacie dans la liste droulante (remplit avec les donnes de la table Pharmacien chaque affichage de la page), puis choisir le type de l'change. Enfin il faut cliquer sur le bouton "Valider Echange". Une boite de dialogue confirmera le succs de l'opration. Si la pharmacie de l'change n'est pas prsente dans la liste il faut aller la liste des pharmacies, ajouter la nouvelle pharmacie avec ses informations puis revenir la page d'ajout d'change pour continuer l'enregistrement de l'change. Une fois l'enregistrement valid avec succs, les quantits des mdicaments seront ajoutes au stock si c'est un change en entre et soustraites si c'est un change en sortie et les donnes seront enregistres dans la table Echange et DetailEchange. La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet est les insertion par un TADOCommand. La page pour consulter les changes : Pour consulter les changes il faut aller la page de consultation des changes grce au menu "Echange" puis "Consulter les changes". Il y a plusieurs critres applicables la consultation et le cadre Echange de la page fournit plusieurs boutons pour la consultation. Le bouton "Consulter pour cette pharmacie" permet de consulter tous les changes effectus avec la pharmacie slectionne dans la liste droulante "Pharmacie" (remplit avec les donnes la table Pharmacien chaque affichage de la page). Le bouton "Consulter pour cette date" permet de consulter tous les changes effectus la date slectionne dans le champ "Date" (TDateTimePicker) qui reprsente un calendrier droulant. Le bouton "Consulter pour cet intervalle" permet de consulter tous les changes effectus dans l'intervalle de date entre le champ "Date" et le champ "Date intervalle". Le bouton "Consulter pour cette pharmacie cette date" permet de consulter tous les changes effectus la date slectionne dans le champ "Date" avec la pharmacie slectionne dans la liste droulante "Pharmacie". Le bouton "Consulter pour cette pharmacie cet intervalle" permet de consulter tous les changes effectus dans l'intervalle de date entre le champ "Date" et le champ "Date intervalle" avec la pharmacie slectionne dans la liste droulante "Pharmacie". Le bouton "Tout consulter" permet de consulter tous les changes. Le bouton "Supprimer Echange" permet de supprimer l'change slectionn dans le tableau de rsultat de la consultation avec tout son dtail (table Echange et DetailEchange). Le rsultat de la consultation s'affiche sous forme d'un tableau (StringGrid 5 colonnes) comportant les informations sur chaque change avec des donnes calcules sur le rsultat en dessous du tableau(e nombre d'changes, le nombre de mdicaments total et la valeur totale). On peut voir le dtail concernant un change du rsultat en cliquant sur un change dans le tableau rsultat puis en cliquant sur le bouton "Voir le dtail". Le dtail s'affiche sous forme d'un deuxime tableau (StringGrid) droite du celui du rsultat avec l'ensemble des mdicaments de l'change et leur quantit. Le bouton "Cacher le dtail" permet de cacher le tableau de dtail. La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet est les insertion par un TADOCommand.

23

6.1.6) Les pages des fonctionnalits lies aux crdits La page de la liste des clients : La liste des clients est dans la page accessible par le menu "Crdit" puis "Liste des Clients". La page comporte un tableau (TDBGrid) reprsentant une image de la table Client, grce un composant TDataSource li un TADOQuery qui execute la requte SELECT * FROM Client et stock le resultat. On peut insrer un nouveau client, modifier ses donnes ou la supprimer en utilisant le tableau ditable et le composant TDBNavigator qui est li au TADOQuery travers un composant TDataSource. La liste droulante droite permet de rechercher un client dans le tableau et de slectionner sa ligne (utilise la methode Locate() de TADOQuery). La liste est criture intuitive du nom du client (remplit avec les donnes de la table Client chaque affichage de la page). Pour rechercher le client il faut cliquer sur le bouton Rechercher aprs avoir tap le nom du client ou une partie du nom dans la liste. Les composants lis la base de donnes sont connects grce leur proprit ConnexionString qui spcifie tous les paramtres. La page pour ajouter les paiements : Pour ajouter les paiements dun client qui a pris un crdit, il faut cliquer sur le menu "Crdit" puis "Ajouter un paiement". Cette page permet de voir le dtail des paiements d'un client et la somme restant du. On peut aussi ajouter un nouveau paiement du client qui fera diminuer le montant du et cela grce au cadre "Paiement" de la page. La liste droulante client (remplit avec les donnes de la table Client chaque affichage de la page) permet de slectionner un client dont le dtail apparatra instantanment en dessous de ce cadre sous forme dun tableau (TDBGrid reprsentant une image de la table Paiement pour le client slectionn, grce un composant TDataSource li un TADODataSet). Il faut ensuite saisir le montant de son paiement et cliquer sur Valider pour l'ajouter aux paiements de ce client et diminuer ainsi son crdit. Vous pouvez supprimer un paiement du client ou modifier sa somme directement sur le tableau TDBGrid en cliquant sur la cellule correspondante ou en utilisant le composant TDBNavigator qui est li au TADODataSet a travers un composant TDataSource. Un label en dessus du tableau informe si le crdit de ce client est sold ou pas. Le cadre en bas de la page regroupe quelques informations utiles comme le total du montant des crdit de ce client, la date du crdit qui est la date du dernier crdit que ce client a pris, le nombre de paiements et le plus important le montant qui reste payer qui est la diffrence entre le montant total du crdit et la somme des paiements du client (table Paiement et Client). La connexion avec la base de donnes est assure avec un composant TADOConnection. Les diffrentes lectures de la base de donnes sont effectues avec un composant TADODataSet est les insertion par un TADOCommand. La page pour consulter les crdits : Pour consulter les crdits il faut aller la page de consultation des crdits grce au menu "Crdit" puis "Consulter les crdits". Il y a plusieurs critres applicables la consultation et le cadre Crdit de la page fournit plusieurs boutons pour la consultation. Le bouton "Consulter ce client" permet de consulter les informations sur le crdit du client slectionn dans la liste droulante "Client" (remplit avec les donnes de la table Client chaque affichage de la page). Le bouton "Consulter cette date" permet de consulter toutes les informations sur le crdit des clients ayant pris leur crdit la date slectionne dans le champ "Date" (TDateTimePicker) qui reprsente un calendrier droulant. Le bouton "Consulter cet intervalle" permet de consulter toutes les informations sur le crdit des clients ayant pris leur crdit dans l'intervalle de date entre le champ "Date" et le champ "Date intervalle". Le bouton "Tout consulter" permet de consulter les informations sur le crdit de tous les clients. Le rsultat de la consultation 24

s'affiche sous forme d'un tableau (StringGrid 4 colonnes) comportant les informations sur chaque client (table Client Paiement et DetailClient) avec des donnes calcules sur le rsultat en dessous du tableau (le total des montants, le nombre de crdits et le total de la somme du sur cette lensemble du rsultat de la consultation). On peut voir le dtail concernant un client du rsultat en cliquant sur un client dans le tableau rsultat puis en cliquant sur le bouton "Voir le dtail". Le dtail s'affiche sous forme de deux tableaux (StringGrid) droite de celui du rsultat avec l'ensemble des mdicaments qu'a pris ce client en payant par crdit (table DetailClient), le dtail des ses paiements (table Paiement) et des informations complmentaire sur son crdit en bas de la page (la somme total des crdits que vous lui avez accord, la date de son dernier crdit, le nombre de paiements de ce client et le plus important la somme qu'il lui reste payer). Le label en dessus du tableau informe si le crdit de ce client est sold ou pas. Le bouton "Cacher le dtail" permet de cacher le tableau de dtail. 6.1.7) Les pages des fonctionnalits lies aux fournisseurs et bons de livraison La page de la liste des fournisseurs : La liste des fournisseurs est dans la page accessible par le menu "Bon livraison" puis "Consulter Bl et fournisseurs". La page comporte un tableau (TDBGrid) reprsentant une image de la table Fournisseur, grce un composant TDataSource li un TADOQuery qui excute la requte SELECT * FROM Fournisseur et stock le rsultat. On peut insrer un nouveau fournisseur, modifier ses donnes ou le supprimer en utilisant le tableau ditable et le composant TDBNavigator qui est li au TADOQuery travers un composant TDataSource. La page de consultation des bons de livraison : La consultation des Bl se fait sur la page contenant la liste des fournisseurs. Le cadre Recherche Bons de livraison fournit un ensemble de boutons permettant une recherche selon plusieurs critres. La liste droulante des fournisseurs permet daffiner la recherche en slectionnant un fournisseur prcis ou en choisissant loption tous les fournisseurs. Le bouton Recherche permet de rechercher tous les bons de livraison dont la date de facturation est celle slectionne sur la liste droulante des dates (TDateTimePicker). Le bouton Rechercher par priode permet une recherche par intervalle de dates (les deux dates reprsentant les bornes de lintervalle sont slectionnes sur les deux TDateTimePicker). Le rsultat de la recherche saffiche sous la forme dun tableau (TStringGrid). Sous ce tableau se trouvent deux boutons : Un bouton Voir dtails du on de livraison qui permet dafficher les dtails du Bl slectionn, et un bouton Supprimer Bl qui supprime le Bl slectionn. Le Panel Cumul Priode T.T.C situ au-dessous de la table affiche la somme des montants de facturation des Bl prsents dans la table. La page dajout des bons de livraison : Cette page est accessible par le menu "Bon livraison" puis "Ajouter un BL". Elle permet l'utilisateur d'ajouter un nouveau bon de livraison sa liste de Bl en entrant tous les paramtres de ce dernier. Cette page comporte :

25

Une zone En-tte o l'utilisateur peut entrer le nom du fournisseur (dans une liste droulante), le numro de document (dans un champ TEdit) ainsi que la date de facturation (dans une liste droulante de type TDateTimePicker). Une zone Corps qui sert ajouter les mdicaments dans le bon de livraison en entrant la Quantit (dans un champ TEdit), la forme (dans une liste droulante) et le nom du mdicament ajouter (dans une liste droulante). Le bouton Ajouter (resp. Supprimer ) sert ajouter (resp. supprimer) un mdicament une table situe gauche et contenant la liste des mdicaments prsents dans le Bl. Si le mdicament ajouter n'existe pas, l'utilisateur devra ce moment l'ajouter la table des stocks (en cliquant sur le bouton Nouveau ) puis revenir la page "Ajouter un bon de livraison" pour pouvoir insrer le nouveau mdicament. Les deux TEdit (H. Dbut et H. Fin) situs au-dessous de la table permettent dentrer lheure de dbut et de fin de la facturation du Bl. Un Label Total P. Net T.T.C situ au-dessous de la table affiche la montant du Bl. Enfin un bouton Valider permet denregistrer le Bl dans la table des bons de livraisons.

26