Logiciel Gestion Commerciale

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 34

Logiciel Gestion Commerciale

PREPARATION DU LOGICIEL :
1- créer dans le lecteur C du disque dur un nouveau dossier nommé : commerce (pour stocker le logiciel).
2- créer dans le dossier commerce 2 autres dossiers nommés : base (pour stocker la BD) et source (pour stocker le
code source)
3- lancer le BDE de Delphi par : (le menu Delphi) outils  module base de données.
4- créer un nouveau alias pour notre logiciel par : (le menu BDE) outils  gestionnaire d’alias
Ensuite : cliquer sur l’option : «  afficher seulement les alias publics »
Ensuite : cliquer sur le bouton : nouveau
Ensuite : écrire dans : Alias de la base : commerce
Chemin d’accès : c:\commerce\base
Ensuite cliquer sur Ok
En fin cliquer sur Oui pour que cet alias soit un alias public.

Remarque
On peut fixer cet alias comme alias de travail par défaut au cour du développement de notre logiciel et cela par le
choix de cet alias dans le menu du module base de données : fichier répertoire du travail.
(Le BDE se pointera automatiquement sur cet alias à chaque accès au module BD)

5- créer dans cet alias les tables suivantes, n’oubliez pas de les enregistrer dans l’alias « commerce »
Table: client Table : facture_achat Table : produit
Champ Type Taille index Champ Type Taille index Champ Type Taille index
Code_c i * Numero_a i * Reference i *
Nom_c A 20 Date_achat d Designation A 20
Prenom_c A 20 Reglement_a A 10 Qte_stock n
Adresse_c A 30 code_four i Prix_achat $
Telephone_c A 15 Table : facture_vente Prix_vente $
RC_c A 15 Champ Type Taille index Tva n
AI_c A 15 Numero_v i * Table : inventaire
IF_c A 15 Date_vente d Champ Type Taille Index
Table: fournisseur Reglement_v A 10 Numero_i i *
Champ Type Taille index code_cli i Date_inventaire d
Code_f i * Table : ligne_vente durée A 10
Nom_f A 20 responsable A 20
Prenom_f A 20 Champ Type Taille Index Table : ligne_inventaire
Adresse_f A 30 Num_vente i * Champ Type Taille Index
Telephone_f A 15 Ref_prod i * Num_inv i *
RC_f A 15 Qte_vente n Ref_prod i *
AI_f A 15 Table : ligne_achat Qte_theorique n
IF_f A 15 Champ Type Taille index Qte_reelle n
Num_achat i * Table protection
Ref_prod i * Champ Type Taille index
Qte_achat n Password A 20 *

MCD CORRESPONDANT (c’est seulement une partie du MCD réel et complet de la gestion commerciale) :

Fournisseur Facture_achat Inventaire


Code_f Numero_a Ligne_achat Ligne_inv Numero_i
Achat Qte_achat Qte_theorique
1.n Qte_reelle
1.n 1.1 1.n 1.n 1.n
Produit
Reference

Client Facture_vente 1.n


1.n 1.1 1.n
Code_c Numero_v
Ligne_vente
Vente
Qte_vente

- 47 -
Logiciel Gestion Commerciale

FICHE MENU

1- Retournez à l’environnement Delphi et choisir dans le menu : Fichier  nouvelle application.


Ensuite : insérer dans la fiche de ce nouveau projet (ce nouveau logiciel) un composant « mainmenu1 »
Ensuite : double clique sur ce composant et insérer le menu principal suivant :
Fichier Edition Consultation Statistiques Outils ?
Produit Facture achat Achats Règlements Inventaire Aide
Client Facture vente Ventes Archivage A propos
Fournisseur Protection
Cloture
Quitter

❖ Chaque fiche (ainsi que son unité) dans le logiciel doit être nommée par un nom significatif. pour notre fiche
actuelle (le menu général du projet) on procède comme suite :
Cliquer sur cette fiche (éviter le composant mainmenu1) et dans son inspecteur d’objet écrire dans la propriété :
name  fiche_menu.
Cliquer dans le menu Delphi sur : fichier  enregistrer sous, et dans le dossier « c:\commerce\source » on nomme
l’unité : « menu ».
Cliquer dans le menu Delphi sur : fichier  enregistrer le projet sous, et nommer le projet : commerce (toujours dans
« c:\commerce\source »)
2- insérer un composant ToolBar1 (palette win32).
Ensuite : clique droit sur ce composant et choisir « nouveau bouton » ou « nouveau séparateur »
Ensuite : répéter le clic droit pour insérer 15 boutons qui représentent les éléments du menu principal du logiciel;
Et 6 séparateurs pour les grands éléments du menu (fichier, édition, consultation, …)
Ensuite : insérer un composant imagelist1 (palette win32)
Ensuite : double clique sur ce composant et clique sur le bouton Ajouter pour choisir la gamme des images de notre
logiciel dans le chemin : « C:\program files\fichiers communs\borland shared\images\buttons »
Ensuite : après le choix de 15 images adéquates aux 15 boutons on clique sur Ok
Ensuite : clique sur le « mainmenu1 » et dans son inspecteur d’objet choisir dans la propriété :
Images  imagelist1
Ensuite : double clique sur le « mainmenu1 » et chaque élément de ce menu sera lié à une image adéquate par sa
propriété : « imageindex »
Enfin : fermer la petite fenêtre du menu et clique sur le composant « toolbar1 » et pour affecter des images à ses
boutons choisir dans sa propriété : Images  imagelist1.
(Chaque bouton du «toolbar1» peut avoir une image adéquate par le choix de cette image dans la propriété
« imageindex » de ce bouton).
3- pour expliquer le rôle de chaque bouton on clique sur ce dernier on écrit dans sa propriété : « Hint » l’éxplication
voulue, ensuite et pour voir cette éxplication on choisit dans la propriété : showHint  true
Programmation du sous menu : Quitter
Double clique sur le composant « mainmenu1 » et double clique sur son élément quitter (du sous menu fichier)
Ensuite : écrire dans la procédure : close;
Ensuite : dans la fiche_menu, double clique à droite de son événement «onclosequery» et écrire dans sa procédure :
if messagedlg('voulez vous quitter le logiciel?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
canclose:=true;
application.terminate;
end
else
canclose:=false;

- 48 -
Logiciel Gestion Commerciale

Résultat:
Cette technique assure l’affichage de la fenêtre de confirmation de sortie du logiciel pour n’importe quel type de
tentative de fermeture du logiciel :
- le menu : fichier  quitter.
- Par clavier en utilisant les touches : Alt + F4
- En cliquant sur la case fermer X en haut et à droite de la fenêtre.

4- Pour que la fiche menu occupe tous l’éspace de l’écran lors du lancement de l‘éxécution du logiciel :
- Clique sur cette fiche_menu (éviter de cliquer sur l’un de ses composants).
- Choisir dans sa propriété : « Window state  wsmaximized »
5- Enregistrer notre travail par le menu Delphi : fichier  tout enregistrer.

Remarques :
1- Pour lier chaque bouton de la barre d’outils « Toolbar1 » à une fiche on clique sur ce bouton et on choisit dans son
événement « onclick » la procédure qui appelle la fiche correspondante (faites ce travail à la fin du logiciel).
2- Lorsqu’on lance l’éxécution de notre logiciel la fiche menu apparaît automatiquement la première puisque elle est
la fiche principale dans notre logiciel, mais si cette fiche n’a pas été lancée la première donc elle n’est pas considérée
comme fiche principale et on doit corriger cette faute par le choix dans le menu Delphi : projet  options, et on choisit
dans la liste : « Fiche principale »  « fiche_menu » et clique sur Ok.
3- dans le menu principal :
✓ La partie fichier: sert à représenter les tables permanentes (produit, clients, fournisseur) qui se ressemble
coté programmation.
✓ Une table permanente est une table qui lors de l’archivage de notre BD pour le passage à une nouvelle
année d’activité, ses données ne seront pas vidés (conservent les mêmes données pour le nouvel an)
✓ La partie édition : sert à représenter les mouvements entre les tables permanentes. (bien sur les mouvements
sont représentés sous formes de tables de mouvement (facture_achat et ligne_achat par exemple)
Une table mouvement après son archivage (après copiage de son contenu dans un autre emplacement mémoire
comme réserve) doit être vidée pour commencer une nouvelle année d’activité.

L’image de l’arrière plan :


1- insérer un composant « image1 » de la palette « supplément ».
2- dans sa propriété picture on clique sur le bouton Charger et chercher l’image voulue.
(Exemple du chemin de l’image : C:\Program Files\Fichiers communs\Borland Shared\Images\Splash\256Color)
3- Enfin clique sur Ouvrir ensuite sur Ok
4- pour que l’image occupe toute la surface de son cadre on modifie sa propriété : Autosize  true.
5- pour que l’image s’agrandie si elle à une taille plus petite que la surface de son cadre on modifie sa propriété :
Stretch  true. Aussi modifier sa propriété : align  alClient.

Les abréviations du domaine commercial :


HT : prix Hors Taxe.
TVA : la Taxe sur la Valeur Ajouté.
TTC : le montant Tous Taxes Comprise.
RC : le numéro du Registre de Commerce
AI : le numéro de l’Article d’Imposition
IF : le numéro de l’Identification Fiscale.

- 49 -
Logiciel Gestion Commerciale

LA FICHE PRODUIT

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom de la fiche : « fiche_produit ».
Ensuite : choisir dans le menu Delphi : fichier  enregistrer, et dans le dossier « c:\commerce\source » nommer
l’unité : « produit »
2- Insérer les composants suivants :
Palette Composant Propriété Valeur
BDE Table1 Databasename Commerce
Tablename Produit
Active True
Accesbd Datasource1 Dataset Table1
Contrôlebd Dbgrid1 Datasource Datasource1
Supplement Speedbutton1 Caption Imprimer
Glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\printer.bmp
Bitbtn1 Kind Bkclose
BDE Query1 databasename Commerce
Sql Select sum(qte_stock*prix_achat)as montant_stock from produit
Active True
Standard Label1 Caption Filtrage
Edit1 Text
3- Double clique sur le query1 et clique droit sur la petite fenêtre et clique sur «ajouter tous les champs».
Ensuite : clique sur le champ montant_stock et glisser ce dernier vers le bas de notre fiche.
4- Pour faire le filtrage on double clique sur le composant edit1 et on écrit dans la procédure (onchange):
if edit1.text <> ‘’ then
begin
table1.close ;
table1.filtered :=true ;
table1.filter :=’[designation]=‘ + #39 + edit1.text + ‘*’ + #39 ;
table1.active := true ;
end
else
begin
table1.close ;
table1.filtered := false ;
table1.active := true ;
end ;
5- On tape la touche F12 (retour à la fiche), et pour faire le trie de la table produit : clique sur le composant
dbgrid1.
Ensuite : dans son inspecteur d’objet on clique sur l’onglés « événements »
Ensuite : on double clique à droite de l’événement « ontitleclick » et on introduit le code source suivant :
// Une table est triée automatiquement selon son index actuel (primaire ou secondaire)
If column.index = 0 then
Table1.indexname :=’c1’ ;
If column.index = 1 then
Table1.indexname :=’c2’ ;
If column.index = 2 then
Table1.indexname :=’c3’ ;
If column.index = 3 then
Table1.indexname :=’c4’ ;
If column.index = 4 then
Table1.indexname :=’c5’ ;
If column.index = 5 then
Table1.indexname :=’c6’ ;

- 50 -
Logiciel Gestion Commerciale

Remarque importante :
Le trie et le filtrage dans une table ne réussissent que si on a défini des index secondaires sur chaque champ trié ou
filtré.
Pour insérer des index secondaires dans les champs de la table produit il faut que cette table ne soit pas en cours
d’utilisation donc sa propriété : active  false.
Aussi la requête query1 doit être : active  false, puisque elle aussi utilise la table produit.
Ensuite : on lance le BDE Delphi par : (le menu Delphi) : outils  module base de données.
Ensuite : on ouvre la table par : (le menu) fichier  ouvrir  table et on choisit l’alias « commerce » et la
table « produit ».
Ensuite : on clique dans le menu du BDE sur table  restructurer.
Ensuite : on choisit dans la liste des choix « propriétés de la table » l’option « index secondaires »
Ensuite : on clique pour chaque champ sur le bouton Définir et on fait passer ce champ à droite, on clique sur le
bouton OK et on propose un nom symbolique à cet index secondaire (c1 pour le champ reference, c2 pour le champ
designation,…etc.)
Ensuite : on clique sur le bouton enregistrer et on retourne à l’environnement Delphi.
Enfin : on réactive les deux composants table1 et query1 par leurs propriétés : active  true.
6- on renforce cette fiche par des champs calculés pour chaque enregistrement de la table produit et cela
comme suite :
On double clique sur le composant table1
Ensuite : on clique droit sur la petite fenêtre et on clique sur « ajouter tous les champs ».
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « total » et on choisit le type du champ : « currency » et on clique sur ok.
Ensuite : on clique sur le composant table1 et dans son inspecteur d’objet on clique sur l’onglé « événements ».
Ensuite : on double clique à droite de l’événement « oncalcfields » et on écrit dans la procédure :
table1.fieldbyname(‘total’).ascurrency := table1.fieldbyname(‘qte_stock’).asfloat *
table1.fieldbyname(‘prix_achat’).ascurrency ;
query1.close;
query1.active:=true;
// Pour que la requête prend en considération les dernières données saisies (rafraîchir les calculs de la requête).
7- on va maintenant préparer l’impression de la liste des produits comme suite :
On choisit dans le menu Delphi : fichier  nouveau, et on clique dans la fenêtre qui s’affiche sur l’onglé « affaires ».
Ensuite : on clique sur l’élément : « expert quickreport » et on clique sur ok.
Ensuite : on clique sur le bouton lancer l’expert et on choisit l’alias « commerce » et la table « produit ».
Ensuite : clique sur le bouton >> qui fait passer tous les champs à droite pour les imprimer tous et clique sur
Terminer.
Ensuite : on clique sur cette nouvelle fiche en évitant le clic sur le composant « quickrep1 » et dans sa propriété
« name » on donne le nom de cette fiche qui sera « fiche_etat_produit ».
Ensuite : on clique sur : (menu Delphi) fichier enregistrer, et dans le dossier : « c:\commerce\source » on nomme
l’unité : etat_produit.
8- on tape Shift + F12 pour afficher la liste des fiches du logiciel et on choisit la fiche « fiche_produit » et on
clique sur ok.
Ensuite : et pour une impression bien présentée des produits on insère un composant popupmenu1 (palette
standard).
Ensuite : on double clique sur ce composant et on introduit les deux éléments «previsualiser» et «imprimer» dans
leurs propriétés «caption».
Ensuite : on ferme la petite fenêtre du « popupmenu1 » et on clique sur le composant « speedbutton1 » qui
représente l’impression et dans son inspecteur d’objet on choisit dans sa propriété « popupmenu » l’élément
« popupmenu1 ».
Ensuite : pour programmer le composant popupmenu1 on double clique sur ce dernier et on double clique sur
l’élément « previsualiser » et on écrit dans sa procédure : fiche_etat_produit.quickrep1.preview ;
Ensuit : on tape F12 pour retourner à la fiche et on double clique sur le composant « popupmenu1 » et on double
clique sur l’élément « imprimer » et on écrit dans sa procédure : fiche_etat_produit.quickrep1.print ;
9- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément produit (du sous menu
fichier)
Ensuite : on écrit dans la procédure : fiche_produit.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_produit et on doit cliquer sur oui pour cette demande de
confirmation ; on recompile par Ctrl + F9 pour faire la liaison aussi entre la fiche_produit et la fiche_etat_produit et
on doit cliquer sur oui aussi pour cette demande de confirmation.
Remarques :
1- Pour que la fiche produit se place au milieu de l’ecran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_produit » et on clique sur Ok.
- 51 -
Logiciel Gestion Commerciale

- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
Remarque importante :
Dans le cas des champs de type monétaire (prix_achat, prix_vente, total …), on peut modifier le symbole monétaire
(La monais : Da, $, £, € ….) et cela en suivant les étapes :
- On lance la fenêtre « panneau de configuration » de Windows par :
Le bouton « démarrer »  paramètre  « panneau de configuration »
- dans cette fenêtre on double clique sur : « options régionales et linguistiques »
- clique sur le bouton « personnaliser »
- clique en haut sur la page : « symbole monétaire »
- choisir ou écrire dans la liste « symbole monétaire » le symbole voulu (généralement Da)
(Si le symbole Da ne figure pas dans la liste, donc il faut l’écrire)
- Enfin clique sur Ok ensuite Ok
❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)
LA FICHE CLIENT

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom : « fiche_client ».
Ensuite : choisir dans le menu Delphi : fichier  enregistrer, et dans le dossier « c:\commerce\source » nommer
l’unité : « client »
2- Insérer les composants suivants :
Palette Composant Propriété Valeur
BDE Table1 Databasename Commerce
Tablename client
Active True
Accesbd Datasource1 Dataset Table1
Contrôlebd Dbgrid1 Datasource Datasource1
Supplement Speedbutton1 Caption Imprimer
Glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\printer.bmp
Bitbtn1 Kind Bkclose
Standard Label1 Caption Filtrage
Edit1 text

3- Pour faire le filtrage on double clique sur le composant edit1 et on écrit dans la procédure (onchange):
if edit1.text <> ‘’ then
begin
table1.close ;
table1.filtered :=true ;
table1.filter :=’[nom_c]=‘ + #39 + edit1.text + ‘*’ + #39 ;
table1.active := true ;
end
else
begin
table1.close ;
table1.filtered := false ;
table1.active := true ;
end ;
- 52 -
Logiciel Gestion Commerciale

4- On tape la touche F12, et pour faire le trie de la table client : clique sur le composant dbgrid1.
Ensuite : dans son inspecteur d’objet on clique sur l’onglés « événements »
Ensuite : on double clique à droite de l’événement « ontitleclick » et on introduit le code source suivant
If column.index = 0 then
Table1.indexname :=’c1’ ;
If column.index = 1 then
Table1.indexname :=’c2’ ;
If column.index = 2 then
Table1.indexname :=’c3’ ;
If column.index = 3 then
Table1.indexname :=’c4’ ;
If column.index = 4 then
Table1.indexname :=’c5’ ;
If column.index = 5 then
Table1.indexname :=’c6’ ;
Remarque:
Pour insérer des index secondaires dans les champs de la table client il faut que cette table ne soit pas en cours
d’utilisation donc sa propriété : active  false.
Ensuite : on lance le BDE Delphi par : (le menu Delphi) : outils  module base de données.
Ensuite : on ouvre la table par : (le menu) fichier  ouvrir  table et on choisit l’alias « commerce » et la
table « client ».
Ensuite : on clique dans le menu du BDE sur table restructurer.
Ensuite : on choisit dans la liste des choix « propriétés de la table » l’option « index secondaires »
Ensuite : on clique pour chaque champ sur le bouton Définir et on fait passer ce champ à droite, on clique sur le
bouton OK et on propose un nom symbolique à cet index secondaire (c1 pour le champ code_c, c2 pour le champ
nom_c,…etc.)
Ensuite : on clique sur le bouton enregistrer et on retourne à l’environnement Delphi.
Enfin : on réactive le composant table1 par sa propriété : active  true.
5- On doit maintenant préparer l’impression de la liste des clients comme suite :
On choisit dans le menu Delphi : fichier  nouveau, et on clique dans la fenêtre qui s’affiche sur l’onglé « affaires ».
Ensuite : on clique sur l’élément : « expert quickreport » et on clique sur « ok ».
Ensuite : on clique sur le bouton lancer l’expert , et on choisit l’alias « commerce » et la table « client ».
Ensuite : on clique sur le bouton >> qui fait passer tous les champs à droite et on clique sur Terminer.
Ensuite : on clique sur cette nouvelle fiche en évitant le clic sur le composant « quickrep1 »et dans sa propriété
« name » on donne le nom « fiche_etat_client » à cette fiche.
Ensuite : on clique sur : (menu Delphi) fichierenregistrer, et dans le dossier : c:\commerce\source on nomme
l’unité : etat_client.
6- On tape Shift + F12 pour afficher la liste des fiches et on choisit la fiche « fiche_client » et on clique sur Ok.
Ensuite : et pour une impression bien présentée des clients on insère un composant popupmenu (palette standard).
Ensuite : on double clique sur ce composant et on introduit les deux éléments «previsualiser» et «imprimer» dans
leurs propriétés «caption».
Ensuite : on ferme la petite fenêtre du « popupmenu » et on clique sur le composant « speedbutton1 » qui représente
l’impression et dans son inspecteur d’objet on choisit dans sa propriété « popupmenu » l’élément « popupmenu1 ».
Ensuite : pour programmer le composant popupmenu1 on double clique sur ce dernier et on double clique sur
l’élément « previsualiser » et on écrit dans sa procédure : fiche_etat_client.quickrep1.preview ;
Ensuit : on tape F12 pour retourner à la fiche et on double clique sur le composant « popupmenu1 » et on double
clique sur l’élément « imprimer » et on écrit dans sa procédure : fiche_etat_client.quickrep1.print ;
7- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément client (du sous menu
fichier)
Ensuite : on écrit dans la procédure : fiche_client.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_client et on doit cliquer sur oui pour cette demande de
confirmation ; on recompile par Ctrl + F9 pour faire la liaison aussi entre la fiche_client et la fiche_etat_client et on
doit cliquer sur oui aussi pour cette demande de confirmation.
Remarques :
1- Pour que la fiche client se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_client » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)
- 53 -
Logiciel Gestion Commerciale

LA FICHE FOURNISSEUR

1- Choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom : « fiche_fournisseur ».
Ensuite : choisir dans le menu Delphi : fichier  enregistrer, et dans le dossier « c:\commerce\source » nommer
l’unité : « fournisseur »
2- Insérer les composants suivants :
Palette Composant Propriété Valeur
BDE Table1 Databasename Commerce
Tablename fournisseur
Active True
Accesbd Datasource1 Dataset Table1
Contrôlebd Dbgrid1 Datasource Datasource1
Supplement Speedbutton1 Caption Imprimer
Glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\printer.bmp
Bitbtn1 Kind Bkclose
Standard Label1 Caption Filtrage
Edit1 text
3- Pour faire le filtrage on double clique sur le composant edit1 et on écrit dans la procédure
(onchange):
if edit1.text <> ‘’ then
begin
table1.close ;
table1.filtered :=true ;
table1.filter :=’[nom_f]=‘ + #39 + edit1.text + ‘*’ + #39 ;
table1.active := true ;
end
else
begin
table1.close ;
table1.filtered := false ;
table1.active := true ;
end ;
4- On tape la touche F12 (retour à la fiche), et pour faire le trie de la table fournisseur : clique sur le
composant dbgrid1.
Ensuite : dans son inspecteur d’objet on clique sur l’onglés « événements »
Ensuite : on double clique à droite de l’événement « ontitleclick » et on introduit le code source
suivant (Une table est triée automatiquement selon sont index actuel (primaire ou secondaire) et on suppose que
les index secondaires existes déjà pour chaque champ) :
If column.index = 0 then
Table1.indexname :=’c1’ ;
If column.index = 1 then
Table1.indexname :=’c2’ ;
If column.index = 2 then
Table1.indexname :=’c3’ ;
If column.index = 3 then
Table1.indexname :=’c4’ ;
If column.index = 4 then
Table1.indexname :=’c5’ ;
If column.index = 5 then
Table1.indexname :=’c6’ ;

- 54 -
Logiciel Gestion Commerciale

Remarque:
Pour insérer des index secondaires dans les champs de la table fournisseur il faut que cette table ne soit pas en
cours d’utilisation donc sa propriété : active  false.
Ensuite : on lance le BDE Delphi par : (le menu Delphi) : outils  module base de données.
Ensuite : on ouvre la table par : (le menu) fichier  ouvrir  table et on choisit l’alias « commerce » et la
table « fournisseur».
Ensuite : on clique dans le menu du BDE sur table restructurer.
Ensuite : on choisit dans la liste des choix « propriétés de la table » l’option « index secondaires »
Ensuite : on clique pour chaque champ sur le bouton Définir et on fait passer ce champ à droite, on clique sur le
bouton OK et on propose un nom symbolique à cet index secondaire (c1 pour le champ code_f, c2 pour le champ
nom_f,…etc.)
Ensuite : on clique sur le bouton enregistrer et on retourne à l’environnement Delphi.
Enfin : on réactive le composant table1 par sa propriété : active  true.

5- On doit maintenant préparer l’impression de la liste des fournisseurs comme suite :


On choisit dans le menu Delphi : fichier  nouveau, et on clique dans la fenêtre qui s’affiche sur l’onglé « affaires ».
Ensuite : on clique sur l’élément : « expert quickreport » et on clique sur Ok.
Ensuite : on clique sur le bouton lancer l’expert , et on choisit l’alias « commerce » et la table « fournisseur ».
Ensuite : on clique sur le bouton >> qui fait passer tous les champs à droite et on clique sur Terminer.
Ensuite : on clique sur cette nouvelle fiche en évitant le clic sur le composant « quickrep1 »et dans sa propriété
« name » on donne le nom « fiche_etat_fournisseur » à cette fiche.
Ensuite : on clique sur :(menu Delphi) fichier enregistrer, et dans le dossier : c:\commerce\source on nomme
l’unité : etat_fournisseur.
6- on tape Shift+F12 pour afficher la liste des fiches et on choisit la fiche « fiche_fournisseur » et on
clique sur Ok.
Ensuite : et pour une impression bien présentée des fournisseurs on insère un composant popupmenu (palette
standard).
Ensuite : on double clique sur ce composant et on introduit les deux éléments «previsualiser» et «imprimer» dans
leurs propriétés «caption».
Ensuite : on ferme la petite fenêtre du « popupmenu » et on clique sur le composant « speedbutton1 » qui représente
l’impression et dans son inspecteur d’objet on choisit dans sa propriété « popupmenu » l’élément « popupmenu1 ».
Ensuite : pour programmer le composant popupmenu1 on double clique sur ce dernier et on double clique sur
l’élément « previsualiser » et on écrit dans sa procédure : fiche_etat_fournisseur.quickrep1.preview ;
Ensuit : on tape F12 pour retourner à la fiche et on double clique sur le composant « popupmenu1 » et on double
clique sur l’élément « imprimer » et on écrit dans sa procédure : fiche_etat_fournisseur.quickrep1.print ;
7- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément fournisseur (du sous
menu fichier)
Ensuite : on écrit dans la procédure : fiche_fournisseur.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_fournisseur et on doit cliquer sur oui pour cette demande
de confirmation ; on recompile par Ctrl + F9 pour faire la liaison aussi entre la fiche_fournisseur et la
fiche_etat_fournisseur et on doit cliquer sur oui aussi pour cette demande de confirmation.

Remarques :
1- Pour que la fiche fournisseur se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_fournisseur » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)

- 55 -
Logiciel Gestion Commerciale

FICHE FACTURE ACHAT

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom : « fiche_facture_achat».
Ensuite : choisir dans le menu Delphi:fichierenregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:
«facture_achat»
2- Insérer les composants suivants :
Palette Composant Propriété Valeur
BDE Table1 Databasename Commerce
Tablename Facture_achat
Active True
Table2 Databasename Commerce
Tablename Fournisseur
Active True
Table3 Databasename Commerce
Tablename ligne_achat
Active True
Table4 Databasename Commerce
Tablename Produit
Active True
Datasource1 Dataset Table1
Accesbd Datasource2 Dataset Table2
Datasource3 Dataset Table3
controlebd Dbgrid1 Datasource Datasource3
Supplement Speedbutton1 Caption Imprimer
Glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\printer.bmp
Bitbtn1 Kind Bkclose
BDE Query1 databasename Commerce
Sql Select
sum(qte_achat*prix_achat)as HT,Sum(qte_achat*prix_achat*tva)as total_tva,
Sum (qte_achat*prix_achat*(1+tva)) as TTC from produit, ligne_achat
Where (reference = ref_prod) and (num_achat = :p)
Params Clique sur « p » et choisir dans la propriété datatype : « ftinteger »
Active True
controlebd dbnavigator datasource Datasource1

3- Double clique sur le composant table1.


Ensuite : clique droit sur la petite fenêtre et clique dans le menu contextuel sur: «ajouter tous les champs».
Ensuite : glisser les champs de la table facture_achat un par vers le haut de la fiche, à la fin fermer la petite fenêtre.
Ensuite : supprimer le composant « dbedit3 » qui représente le champ « règlement » et le remplacer par le
composant « dbcombobox1 » de la palette « controlebd » et modifier les propriétés de ce « dbcombobox1 » comme
suite :
Datasource  datasource1
Datafield  règlement
Items  clique sur le petit bouton  écrire : cheque, espece, credit (chaque élément dans une ligne)  fermer la
fenêtre.
Ensuite : supprimer le composant « dbedit4 » qui représente le champ « code_four » et le remplacer par le
composant « dblookupcombobox1 » (palette « controlebd ») et modifier les propriétés de ce « dblookupcombobox1 »
comme suite :
Datasource  datasource1 Datafield  code_four Listsource  datasource2
Listfield  code_f; nom_f Keyfield  code_f
- 56 -
Logiciel Gestion Commerciale

4- Pour mettre le curseur du clavier automatiquement dans le « dbedit1 » pour faciliter la saisie du numéro de la
facture on clique sur le composant « table1 » et dans son inspecteur d’objet double clique à droite de son
événement «afterinsert» on écrit dans sa procédure :
dbedit1.setfocus ;
- ensuite on peut contrôler la manipulation du clavier par :
- clique sur le composant dbedit1.
- Double clique sur son événement « OnKeyDown » et écrire dans sa procédure :
If key = vk_return then
Dbedit2.setfocus ;
- tapez F12 et clique sur le composant dbedit2.
- Double clique sur son événement « OnKeyDown » et écrire dans sa procédure :
If key = vk_return then
DbCombobox1.setfocus ;
- tapez F12 et clique sur le composant dbcombobox1.
- Double clique sur son événement « OnKeyDown » et écrire dans sa procédure :
If key = vk_return then
DblookupCombobox1.setfocus ;

5- Pour masquer le format d’affichage de la « date_achat » :


- on double clique sur le composant « table1 »
- dans la petite fenêtre on clique sur le champ « date_achat »
- on clique sur le petit bouton … de sa propriété « editmask »
- on clique dans la liste à droite de la fenêtre sur l’élément « date longue1 » et on clique sur Ok
- on ferme la petite fenêtre et la date_achat sera masquée par le format « / / »
6- pour faire une liaison maitre-detail entre la table maître« facture_achat », et la table détaille « ligne_achat » :
On clique sur le composant table3 « ligne_achat », et choisir dans sa propriété : mastersource  datasource1.
Ensuite : dans sa propriété « masterfield » on clique sur petit bouton.
Ensuite : on choisit dans la liste à gauche le champ « num_achat » et à droite le champ « numero_a ».
Ensuite : clique sur le bouton « ajouter » ensuite sur le bouton Ok.
7- on peut renforcer cette fenêtre par les champs calculés comme suite :
On double clique sur le composant table3 « ligne_achat ».
Ensuite : on clique droit sur la petite fenêtre et on clique sur « ajouter tous les champs ».
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « designation » et on choisit le type du champ : « string » et on clique sur Ok.
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « prix_achat » et on choisit le type du champ : « currency » et on clique sur Ok.
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « tva » et on choisit le type du champ : « float » et on clique sur Ok.
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « total » et on choisit le type du champ : « currency » et on clique sur Ok.
A la fin : on ferme la petite fenêtre.
Ensuite : on clique sur le composant « table3 » (ligne_achat) et dans son inspecteur d’objet on clique sur l’onglé
événement
Ensuite : on double clique à droite de l’événement « oncalcfield » et on écrit dans la procédure :
Table4.open ;
Table4.setkey ; // préparation de la recherche du produit qui a la reference tapée
Table4.fieldbyname(‘reference’).asinteger := Table3.fieldbyname(‘ref_prod’).asinteger ;
If table4.gotokey then // si le produit existe, on introduit sa designation, prix, tva, et on calcul le total
Begin
Table3.fieldbyname(‘designation’).asstring:= Table4.fieldbyname(‘designation’).asstring;
Table3.fieldbyname(‘prix_achat’).ascurrency:= Table4.fieldbyname(‘prix_achat’).ascurrency ;
Table3.fieldbyname(‘tva’).asfloat:= Table4.fieldbyname(‘tva’).asfloat;
Table3.fieldbyname(‘total’).ascurrency:=Table3.fieldbyname(‘qte_achat’).asfloat*
Table4.fieldbyname(‘prix_achat’).ascurrency;
End;
// On profite l’occasion pour passer une valeur au paramètre à notre requête « query1 »
Query1.close;
Query1.parambyname(‘p’).asinteger :=table1.fieldbyname(‘numero_a’).asinteger ;
Query1.active:=true;

8- on tape F12 pour retourner à la fiche et on double clique sur le composant « query1 ».
Ensuite : clique doit sur la petite fenêtre et clique dans le menu contextuel sur : « ajouter tous les champs ».
Ensuite : glisser les champs de la requête facture un par un vers le bas de la fiche, à la fin fermer la petite fenêtre.
9- pour que la facture affiche son montant ttc en lettres on procède comme suite :

- 57 -
Logiciel Gestion Commerciale

On insère un composant « Button1 » (palette standard) et dans sa propriété : « caption » on écrit : conversion.
Ensuite : on insère un composant Label (palette standard) et supprimer le contenu de sa propriété « caption »
Ensuite : on double clique sur le composant « Bouton1 » et on écrit dans sa procédure : (Supprimer son begin et end
et coller tous le code source suivant)

var chaine1,chaine:string; if c=0 then chiffre(p1);


p,nombre,q,DEC:integer; if c=1 then decimale(p1);
N,n1:real; if c=7 then
procedure decimale(var p3:integer); begin
begin chaine:=chaine+ ' Soixante'; p1:=p-60;
if p3=10 then chaine:=chaine+ ' Dix'; decimale(p1);
if p3=11 then chaine:=chaine+ ' Onze'; end;
if p3=12 then chaine:=chaine+ ' Douze'; if c=9 then
if p3=13 then chaine:=chaine+ ' Treize'; begin
if p3=14 then chaine:=chaine+ ' Quatorze'; chaine:=chaine+ ' Quatre Vingt'; p1:=p1-80;
if p3=15 then chaine:=chaine+ ' Quinze'; decimale(p1);
if p3=16 then chaine:=chaine+ ' Seize'; end; end;
if p3=17 then chaine:=chaine+ ' Dix Sept';
if p3=18 then chaine:=chaine+ ' Dix Huit'; {Programme principal}
if p3=19 then chaine:=chaine+ ' Dix Neuf'; var abc:real;
end; begin
procedure chiffre(var p2:integer); chaine:=' ';
begin n:=query1.fieldbyname('ttc').asfloat;
if p2=1 then chaine:=chaine+ ' Un'; nombre:=trunc(n);
if p2=2 then chaine:=chaine+ ' Deux'; abc:=int(n*100);
if p2=3 then chaine:=chaine+ ' Trois'; dec:=trunc(abc) mod 100;
if p2=4 then chaine:=chaine+ ' Quatre'; if nombre>=1000000000 then
if p2=5 then chaine:=chaine+ ' Cinq'; begin
if p2=6 then chaine:=chaine+ ' Six'; p:=nombre div 1000000000;
if p2=7 then chaine:=chaine+ ' Sept'; nombre:=nombre-p*1000000000;
if p2=8 then chaine:=chaine+ ' Huit'; if p<>0 then
if p2=9 then chaine:=chaine+ ' Neuf'; begin
end; mille(p); chaine:=chaine+ ' Milliard';
procedure mille(var p1:integer); end; end;
var c:integer; {milliards}
begin if nombre>=1000000 then
c:=p1 div 100; begin
if c=1 then chaine:=chaine+ ' Cent'; p:=nombre div 1000000;
if c=2 then chaine:=chaine+ ' Deux Cent'; nombre:=nombre-p*1000000;
if c=3 then chaine:=chaine+ ' Trois Cent'; if p<>0 then
if c=4 then chaine:=chaine+ ' Quatre Cent'; begin
if c=5 then chaine:=chaine+ ' Cinq Cent'; mille(p); chaine:=chaine+ ' Million';
if c=6 then chaine:=chaine+ ' Six Cent'; end; end;
if c=7 then chaine:=chaine+ ' Sept Cent'; {milliers}
if c=8 then chaine:=chaine+ ' Huit Cent'; if nombre>=1000 then
if c=9 then chaine:=chaine+ ' Neuf Cent'; begin
p1:=p1-c*100; c:=p1 div 10; p:=nombre div 1000; nombre:=nombre-p*1000;
if c=2 then begin chaine:=chaine+ ' Vingt'; if p<>1 then
p1:=p1-c*10; chiffre(p1); begin
end; mille(p); chaine:=chaine+ ' Mille';
if c=3 then begin chaine:=chaine+ ' Trente'; end else
p1:=p1-c*10; chaine:=chaine+ 'mille';
chiffre(p1);end; end;
if c=4 then begin chaine:=chaine+ ' Quarante'; {simple}
p1:=p1-c*10; if (0<=nombre) and (nombre<1000) then
chiffre(p1);end; begin
if c=5 then begin chaine:=chaine+ ' Cinquante'; p:=nombre; mille(p);
p1:=p1-c*10; end;
chiffre(p1);end; chaine:=chaine+ ' dinars' +' et';
if c=6 then begin chaine:=chaine+ ' Soixante'; begin q:=dec; mille(q);
p1:=p1-c*10; IF q=0 THEN chaine:=chaine+ ' Zero CTS'
chiffre(p1);end; Else chaine:=chaine+ ' CTS'
if c=8 then begin chaine:=chaine+ ' Quatre Vingt'; end;
p1:=p1-c*10; {chaine:=chaine+ ' dinars' +' et'+chaine1+' CTS';}
chiffre(p1);end; label8.caption:=chaine; end;
- 58 -
Logiciel Gestion Commerciale

10- le « dbgrid1 » affiche le champ « num_achat » (de la table ligne_achat) qui contient bien sûr le même numéro
de la facture_achat actuelle (puisque il y’a une liaison maître_détail entre la table ligne_achat et la table facture_achat
par leurs champs communs num_achat et numero_a), donc ce champ répétera pour tous les enregistrements du
« dbgrid1 » le même numéro de facture, il vaut mieux alors de ne pas afficher ce dernier dans le « dbgrid1 ». pour
supprimer ce champ :
- double clic sur le « dbgrid1 ».
- clic en haut de la petite fenêtre sur le bouton « ajouter tous les champs »
- supprimer le champ « num_achat » et fermer la petite fenêtre.
(Le champ « num_achat » ne sera pas supprimé de la table « ligne_achat » mais seulement il ne sera pas affiché)
11- pour préparer l’impression de notre facture_achat on procède comme suite :
On insère une nouvelle fiche à notre logiciel par le choix dans le menu Delphi de : fichier  nouvelle fiche.
Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom: « fiche_etat_facture_achat ».
Ensuite : (le menu Delphi): fichierenregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:
«etat_facture_achat».
Ensuite : on insère dans cette fiche un composant « quickrep1 » de la palette « qreport ».
Ensuite : on tape F12 et en haut de l’unité on écrit dans la liste «uses» le nom «facture_achat» et on compile Ctrl+F9
pour assurer la liaison entre la fiche_facture_achat et la fiche_etat_facture_achat.
Nb : par fois Delphi répète quelques unités de la partie uses si on écrit une nouvelle unité dans cette partie, donc on
doit supprimer les unités dupliquées si Delphi signal ce problème de répétition après la compilation du logiciel.
Ensuite : dans l’inspecteur d’objet du quickrep1 on écrit dans la propriété : zoom  70
Ensuite : dans l’inspecteur d’objet du quickrep1 on choisit dans la propriété : dataset  « fiche_facture_achat.table3 »
Ensuite: choisir dans sa propriété Bands: hastitletrue; hascolumnheadertrue; hasdetailtrue; hassummary true.
Ensuite : on insère les composants suivants de la palette « qreport » sur les bandes de ce quickrep1 comme suite:

bande Composant Propriété valeur


Titre qrlabel1 caption société de commerce multiple
(agrandir la hauteur qrlabel2 caption Facture achat
de cette bande) qrlabel3 caption numero
qrdbtext1 dataset fiche_facture_achat.table1
datafield Numero_a
Qrlabel4 caption Date achat
Qrdbtext2 dataset fiche_facture_achat.table1
datafield Date_achat
Qrlabel5 caption reglement
Qrdbtext3 dataset fiche_facture_achat.table1
datafield Reglement_a
Qrlabel6 caption fournisseur
Qrdbtext4 dataset fiche_facture_achat.table2
datafield Nom_f
Entête de colonnes Qrlabel7 caption Reference
Qrlabel8 caption Designation
Qrlabel9 caption Qte achat
Qrlabel910 caption Prix unite
Qrlabel11 caption Tva
Qrlabel12 caption total

- 59 -
Logiciel Gestion Commerciale

Detail Qrdbtext5 dataset fiche_facture_achat.table3


datafield reference
Qrdbtext6 dataset fiche_facture_achat.table3
datafield designation
Qrdbtext7 dataset fiche_facture_achat.table3
datafield Qte_achat
Qrdbtext8 dataset fiche_facture_achat.table3
datafield Prix_achat
Qrdbtext9 dataset fiche_facture_achat.table3
datafield tva
Qrdbtext10 dataset fiche_facture_achat.table3
datafield total
Resumé Qrlabel13 caption HT
(agrandir la hauteur Qrdbtext11 dataset fiche_facture_achat.query1
de cette bande) datafield HT
Qrlabel14 caption TOTAL TVA
Qrdbtext12 dataset fiche_facture_achat.query1
datafield TOTAL_TVA
Qrlabel15 caption TTC
Qrdbtext13 dataset fiche_facture_achat.query1
datafield TTC
Qrlabel16 caption Arrêtez la présente facture à la somme de
Qrlabel17 caption

Remarque :
On peut utiliser les composants « Qrshape » de la palette « Qreport » pour encadrer les champs des tables
(composants qrdbtext ») et leurs entêtes de colonnes (composants « qrlabel ») pour avoir ensuite des tables
encadrées dans notre état d’impression. Les étapes sont :
- insérer dans la bande entête de colonnes des composants « Qrshape » pour chaque
« qrlabel » de cette bande pour les encadrer.
- Le « qrshape » au début cache le « qrlabel » qui va l’encadrer, donc on clique sur chaque
« qrshape » par le bouton doit de la sourie et on choisit dans le menu contextuel « mettre en
arrière plan ».
- Pour bien contrôler la position des « qrshape » on utilise les touches :
Ctrl +  ou les autre touches de flèches.
- Pour bien contrôler la taille des « qrshape » on utilise les touches :
Shift +  ou les autre touches de flèches.
- on presse sur la touche Shift et par sourie on clique sur tous les « qrshape » de la bande
« entête de colonnes » et en fin on lache la touche Shift et on tape les touches Ctrl + C pour
copier ces cadres.
- On clique sur la bande « detail » et on tape Ctrl + V pour coller les cadres dans cette bande.
- On déplace ces cadres par les touches Ctrl +  et on clique sur ces cadres par le bouton
droit de la sourie et on clique sur « mettre en arrière plan ».
Ensuite : on tape Shift + F12 et on affiche la fiche « fiche_facture_achat »
Ensuite : et pour une impression bien présentée de la facture on insère un composant popupmenu (palette standard).
Ensuite : on double clique sur ce composant et on introduit les deux éléments «previsualiser» et «imprimer» dans
leurs propriétés «caption».
Ensuite : on ferme la petite fenêtre du « popupmenu » et on clique sur le composant « speedbutton1 » qui représente
l’impression et dans son inspecteur d’objet on choisit dans sa propriété « popupmenu » l’élément « popupmenu1 ».
Ensuite : pour programmer le composant popupmenu1 on double clique sur ce dernier et on double clique sur
l’élément « previsualiser » et on écrit dans sa procédure :
Fiche_etat_facture_achat.qrlabel17.caption := label8.caption ; // qrlabel17 reçoit le TTC en lettres.
Fiche_etat_facture_achat.quickrep1.preview ;

Ensuit : on tape F12 pour retourner à la fiche et on double clique sur le composant « popupmenu1 » et on double
clique sur l’élément « imprimer » et on écrit dans sa procédure :
Fiche_etat_facture_achat.qrlabel17.caption := label8.caption ;
Fiche_etat_facture_achat.quickrep1.print ;

12- lorsqu’on enregistre les modifications dans notre table1 (facture_achat) par le bouton « enregistrer » du
dbnavigator1, on doit ajouter les quantités_achat à la quantité du stock. On programme cela par le choix du
composant table1 et dans la procédure de son événement « afterpost » on écrit :

- 60 -
Logiciel Gestion Commerciale

table3.first ;
while not(table3.eof) do
begin
Table4.setkey ; // préparation de la recherche
Table4.fieldbyname(‘reference’).asinteger := Table3.fieldbyname(‘ref_prod’).asinteger ;
If table4.gotokey then
Begin
Table4.edit; //préparation de la modification
Table4.fieldbyname(‘qte_stock’).asfloat:=Table4.fieldbyname(‘qte_stock’).asfloat+
Table3.fieldbyname(‘qte_achat’).asfloat;
Table4.post;
End;
Table3.next;
End;

En fin : on enregistre tous le travail par : (le menu Delphi) : fichier  tout enregistrer
13- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément facture achat (du sous
menu Edition)
Ensuite : on écrit dans la procédure : fiche_facture_achat.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_facture_achat et on doit cliquer sur oui pour cette demande
de confirmation ; on recompile par Ctrl + F9 pour faire la liaison aussi entre la fiche_facture_achat et la
fiche_etat_facture_achat et on doit cliquer sur oui aussi pour cette demande de confirmation.

Remarques :
1- Pour que la fiche facture achat se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du
logiciel : - On tape : Shift + F12 et on clique sur la « fiche_facture_achat » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»

2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.


❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)

FICHE FACTURE VENTE

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom : « fiche_facture_vente».
Ensuite : choisir dans le menu Delphi:fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:
«facture_ vente»

- 61 -
Logiciel Gestion Commerciale

2- Insérer les composants suivants :

Palette Composant Propriété Valeur


BDE Table1 Databasename Commerce
Tablename Facture_vente
Active True
Table2 Databasename Commerce
Tablename client
Active True
Table3 Databasename Commerce
Tablename Ligne_vente
Active True
Table4 Databasename Commerce
Tablename Produit
Active True
Datasource1 Dataset Table1
Accesbd Datasource2 Dataset Table2
Datasource3 Dataset Table3
controlebd Dbgrid1 Datasource Datasource3
Supplement Speedbutton1 Caption Imprimer
Glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\printer.bmp
Bitbtn1 Kind Bkclose
BDE Query1 databasename Commerce
Sql Select
sum(qte_vente*prix_vente)as HT,Sum(qte_vente *prix_vente*tva)as total_tva,
Sum (qte_vente*prix_vente*(1+tva)) as TTC from produit, ligne_vente
Where (reference = ref_prod) and (num_vente = :p)
Params Clique sur « p » et choisir dans la propriété datatype : « ftinteger »
Active True
controlebd dbnavigator datasource Datasource1

3- Double clique sur le composant table1.


Ensuite : clique droit sur la petite fenêtre et clique dans le menu contextuel sur: « ajouter tous les champs ».
Ensuite : glisser les champs de la table facture_vente un par vers le haut de la fiche, à la fin fermer la petite fenêtre.
Ensuite : supprimer le composant « dbedit3 » qui représente le champ « règlement » et le remplacer par le
composant « dbcombobox1 » de la palette « controlebd » et modifier les propriétés de ce « dbcombobox1 » comme
suite :
Datasource  datasource1
Datafield  règlement
Items  clique sur le petit bouton … et écrire : cheque, espece, credit (chacun dans une ligne) et fermer la fenêtre.
Ensuite : supprimer le composant « dbedit4 » qui représente le champ «code_cli» et le remplacer par le composant
« dblookupcombobox1 » (palette «controlebd») et modifier les propriétés de ce «dblookupcombobox1» comme suite :
Datasource  datasource1
Datafield  code_cli
Listsource  datasource2
Listfield  code_c; nom_c
Keyfield  code_c

4- Pour mettre le curseur du clavier automatiquement dans le « dbedit1 » pour faciliter la saisie du numéro de la
facture on clique sur le composant « table1 » et dans son inspecteur d’objet double clique à droite de son
événement : « afterinsert » on écrit dans sa procédure :
dbedit1.setfocus ;
- ensuite on peut contrôler la manipulation du clavier par :
- clique sur le composant dbedit1.
- Double clique sur son événement « OnKeyDown » et écrire dans sa procédure :
If key = vk_return then
Dbedit2.setfocus ;
- tapez F12 et clique sur le composant dbedit2.
- Double clique sur son événement « OnKeyDown » et écrire dans sa procédure :
If key = vk_return then
DbCombobox1.setfocus ;
- tapez F12 et clique sur le composant dbcombobox1.
- Double clique sur son événement « OnKeyDown » et écrire dans sa procédure :
If key = vk_return then
DblookupCombobox1.setfocus ;

- 62 -
Logiciel Gestion Commerciale

5- Pour masquer le format d’affichage de la « date_vente » :


- on double clique sur le composant « table1 »
- dans la petite fenêtre on clique sur le champ « date_vente »
- on clique sur le petit bouton … de sa propriété « editmask »
- on clique dans la liste à droite de la fenêtre sur l’élément « date longue1 » et on clique sur Ok
- on ferme la petite fenêtre et la date_vente sera masquée par le format « / / »

6- pour faire une liaison maitre-detail entre la table maître« facture_vente », et la table détaille « ligne_vente » :
On clique sur le composant table3 « ligne_vente », et choisir dans sa propriété : mastersource  datasource1.
Ensuite : dans sa propriété « masterfield » on clique sur petit bouton.
Ensuite : on choisit dans la liste à gauche le champ « num_vente » et à droite le champ « numero_v ».
Ensuite : clique sur le bouton « ajouter » ensuite sur le bouton Ok.

7- on peut renforcer cette fenêtre par les champs calculés comme suite :
On double clique sur le composant table3 « ligne_vente ».
Ensuite : on clique droit sur la petite fenêtre et on clique sur « ajouter tous les champs ».
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « designation » et on choisit le type du champ : « string » et on clique sur Ok .
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « prix_vente » et on choisit le type du champ : « currency » et on clique sur Ok .
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « tva » et on choisit le type du champ : « float » et on clique sur Ok .
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « total » et on choisit le type du champ : « currency » et on clique sur Ok .
A la fin : on ferme la petite fenêtre.
Ensuite : on clique sur le composant « table3 » (ligne_vente) et dans son inspecteur d’objet on clique sur l’onglé
événement
Ensuite : on double clique à droite de l’événement « oncalcfield » et on écrit dans la procédure :

Table4.open ;
Table4.setkey ;
Table4.fieldbyname(‘reference’).asinteger := Table3.fieldbyname(‘ref_prod’).asinteger ;
If table4.gotokey then
Begin
Table3.fieldbyname(‘designation’).asstring:= Table4.fieldbyname(‘designation’).asstring;
Table3.fieldbyname(‘prix_vente’).ascurrency:= Table4.fieldbyname(‘prix_vente’).ascurrency ;
Table3.fieldbyname(‘tva’).asfloat:= Table4.fieldbyname(‘tva’).asfloat;
Table3.fieldbyname(‘total’).ascurrency:=Table3.fieldbyname(‘qte_vente’).asfloat*
Table4.fieldbyname(‘prix_vente’).ascurrency;
End;
// On profite l’occasion pour passer une valeur au paramètre à notre requête « query1 »
Query1.close;
Query1.parambyname(‘p’).asinteger :=table1.fieldbyname(‘numero_v’).asinteger ;
Query1.active:=true;

8- on tape F12 pour retourner à la fiche et on double clique sur le composant « query1 ».
Ensuite : clique doit sur la petite fenêtre et clique dans le menu contextuel sur : « ajouter tous les champs ».
Ensuite : glisser les champs de la requête facture un par un vers le bas de la fiche, à la fin fermer la petite fenêtre.

9- pour que la facture affiche son montant ttc en lettres on procède comme suite :
On insère un composant « Button1 » (palette standard) et dans sa propriété : « caption » on écrit : conversion.
Ensuite : on insère un composant Label (palette standard) et supprimer le contenu de sa propriété « caption »
Ensuite : on double clique sur le composant « Bouton1 » et on écrit dans sa procédure : (Supprimer son begin et end
et coller tous le code source suivant)

- 63 -
Logiciel Gestion Commerciale

if c=0 then chiffre(p1);


var chaine1,chaine:string; if c=1 then decimale(p1);
p,nombre,q,DEC:integer; if c=7 then
N,n1:real; begin
procedure decimale(var p3:integer); chaine:=chaine+ ' Soixante';
begin p1:=p-60; decimale(p1);end;
if p3=10 then chaine:=chaine+ ' Dix'; if c=9 then
if p3=11 then chaine:=chaine+ ' Onze'; begin
if p3=12 then chaine:=chaine+ ' Douze'; chaine:=chaine+ ' Quatre Vingt';
if p3=13 then chaine:=chaine+ ' Treize'; p1:=p1-80; decimale(p1);
if p3=14 then chaine:=chaine+ ' Quatorze'; end; end;
if p3=15 then chaine:=chaine+ ' Quinze'; {Programme principal}
if p3=16 then chaine:=chaine+ ' Seize'; var abc:real;
if p3=17 then chaine:=chaine+ ' Dix Sept'; begin
if p3=18 then chaine:=chaine+ ' Dix Huit'; chaine:=' ';
if p3=19 then chaine:=chaine+ ' Dix Neuf'; n:=query1.fieldbyname('ttc').asfloat;
end; nombre:=trunc(n);
procedure chiffre(var p2:integer); abc:=int(n*100);
begin dec:=trunc(abc) mod 100;
if p2=1 then chaine:=chaine+ ' Un'; if nombre>=1000000000 then
if p2=2 then chaine:=chaine+ ' Deux'; begin
if p2=3 then chaine:=chaine+ ' Trois'; p:=nombre div 1000000000;
if p2=4 then chaine:=chaine+ ' Quatre'; nombre:=nombre-p*1000000000;
if p2=5 then chaine:=chaine+ ' Cinq'; if p<>0 then
if p2=6 then chaine:=chaine+ ' Six'; begin
if p2=7 then chaine:=chaine+ ' Sept'; mille(p); chaine:=chaine+ ' Milliard';
if p2=8 then chaine:=chaine+ ' Huit'; end; end;
if p2=9 then chaine:=chaine+ ' Neuf'; {milliards}
end; if nombre>=1000000 then
procedure mille(var p1:integer); begin
var c:integer; p:=nombre div 1000000;
begin nombre:=nombre-p*1000000;
c:=p1 div 100; if p<>0 then
if c=1 then chaine:=chaine+ ' Cent'; begin
if c=2 then chaine:=chaine+ ' Deux Cent'; mille(p); chaine:=chaine+ ' Million';
if c=3 then chaine:=chaine+ ' Trois Cent'; end; end;
if c=4 then chaine:=chaine+ ' Quatre Cent'; {milliers}
if c=5 then chaine:=chaine+ ' Cinq Cent'; if nombre>=1000 then
if c=6 then chaine:=chaine+ ' Six Cent'; begin
if c=7 then chaine:=chaine+ ' Sept Cent'; p:=nombre div 1000;
if c=8 then chaine:=chaine+ ' Huit Cent'; nombre:=nombre-p*1000;
if c=9 then chaine:=chaine+ ' Neuf Cent'; if p<>1 then
p1:=p1-c*100; c:=p1 div 10; begin
if c=2 then begin mille(p); chaine:=chaine+ ' Mille';
chaine:=chaine+ ' Vingt'; end else
p1:=p1-c*10; chiffre(p1); end; chaine:=chaine+ 'mille';
if c=3 then begin end;
chaine:=chaine+ ' Trente'; {simple}
p1:=p1-c*10; chiffre(p1);end; if (0<=nombre) and (nombre<1000) then
if c=4 then begin begin
chaine:=chaine+ ' Quarante'; p:=nombre; mille(p);
p1:=p1-c*10; chiffre(p1);end; end;
if c=5 then begin chaine:=chaine+ ' dinars' +' et';
chaine:=chaine+ ' Cinquante'; begin q:=dec; mille(q);
p1:=p1-c*10; chiffre(p1);end; IF q=0 THEN
if c=6 then begin chaine:=chaine+ ' Zero CTS'
chaine:=chaine+ ' Soixante'; Else
p1:=p1-c*10; chiffre(p1);end; chaine:=chaine+ ' CTS'
if c=8 then begin end;
chaine:=chaine+ ' Quatre Vingt'; {chaine:=chaine+ ' dinars' +' et'+chaine1+' CTS';}
p1:=p1-c*10; chiffre(p1);end; label8.caption:=chaine;
end;

- 64 -
Logiciel Gestion Commerciale

10- le « dbgrid1 » affiche le champ « num_vente » (de la table ligne_vente) qui contient bien sûr le même numéro
de la facture_vente actuelle (puisque il y’a une liaison maître_détail entre la table ligne_vente et la table
facture_vente par leurs champs communs num_vente et numero_v), donc ce champ répétera pour tous les
enregistrements du « dbgrid1 » le même numéro de facture, il vaut mieux alors de ne pas afficher ce dernier dans
le « dbgrid1 ». pour supprimer ce champ :
- double clic sur le « dbgrid1 ».
- clic en haut de la petite fenêtre sur le bouton « ajouter tous les champs »
- supprimer le champ « num_vente » et fermer la petite fenêtre.
(Le champ « num_vente » ne sera pas supprimé de la table « ligne_vente » mais seulement il ne sera pas affiché)

11- pour préparer l’impression de notre facture_vente on procède comme suite :


On insère une nouvelle fiche à notre logiciel par le choix dans le menu Delphi de : fichier  nouvelle fiche.
Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom: « fiche_etat_facture_vente ».
Ensuite : (le menu Delphi): fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:
«etat_facture_vente».
Ensuite : on insère dans cette fiche un composant « quickrep1 » de la palette « qreport ».
Ensuite : on tape F12 et en haut de l’unité on écrit dans la liste «uses» le nom «facture_vente» et on compile Ctrl+F9
pour assurer la liaison entre la fiche_facture_vente et la fiche_etat_facture_vente.
Nb : par fois Delphi répète quelques unités de la partie uses si on écrit une nouvelle unité dans cette partie, donc on
doit supprimer les unités dupliquées si Delphi signal ce problème de répétition après la compilation du logiciel.
Ensuite : dans l’inspecteur d’objet du quickrep1 on écrit dans la propriété : zoom  70
Ensuite : dans l’inspecteur d’objet du quickrep1 on choisit dans la propriété : dataset  « fiche_facture_vente.table3 »
Ensuite :choisir dans sa propriété Bands: hastitletrue; hascolumnheadertrue; hasdetailtrue; hassummary true.
Ensuite : on insère les composants suivants de la palette « qreport » sur les bandes de ce quickrep1 comme suite:

bande Composant Propriété valeur


Titre qrlabel1 caption société de commerce multiple
(agrandir la hauteur qrlabel2 caption Facture vente
de cette bande) qrlabel3 caption numero
qrdbtext1 dataset fiche_facture_vente.table1
datafield Numero_v
Qrlabel4 caption Date vente
Qrdbtext2 dataset fiche_facture_vente.table1
datafield Date_vente
Qrlabel5 caption reglement
Qrdbtext3 dataset fiche_facture_vente.table1
datafield Reglement_v
Qrlabel6 caption client
Qrdbtext4 dataset fiche_facture_vente.table2
datafield Nom_c

- 65 -
Logiciel Gestion Commerciale

Entête de colonnes Qrlabel7 caption Reference


Qrlabel8 caption Designation
Qrlabel9 caption Qte vente
Qrlabel910 caption Prix unite
Qrlabel11 caption Tva
Qrlabel12 caption total
Detail Qrdbtext5 dataset fiche_facture_vente.table3
datafield reference
Qrdbtext6 dataset fiche_facture_vente.table3
datafield designation
Qrdbtext7 dataset fiche_facture_vente.table3
datafield Qte_vente
Qrdbtext8 dataset fiche_facture_vente.table3
datafield Prix_vente
Qrdbtext9 dataset fiche_facture_vente.table3
datafield tva
Qrdbtext10 dataset fiche_facture_vente.table3
datafield total
Resumé Qrlabel13 caption HT
(agrandir la hauteur Qrdbtext11 dataset fiche_facture_vente.query1
de cette bande) datafield HT
Qrlabel14 caption TOTAL TVA
Qrdbtext12 dataset fiche_facture_vente.query1
datafield TOTAL_TVA
Qrlabel15 caption TTC
Qrdbtext13 dataset fiche_facture_vente.query1
datafield TTC
Qrlabel16 caption Arrêtez la présente facture à la somme de
Qrlabel17 caption

Remarque :
On peut utiliser les composants « Qrshape » de la palette « Qreport » pour encadrer les champs des tables
(composants qrdbtext ») et leurs entêtes de colonnes (composants « qrlabel ») pour avoir ensuite des tables
encadrées dans notre état d’impression.
Les étapes sont :
- insérer dans la bande entête de colonnes des composants « Qrshape » pour chaque
« qrlabel » de cette bande pour les encadrer.
- Le « qrshape » au début cache le « qrlabel » qui va l’encadrer, donc on clique sur chaque
« qrshape » par le bouton doit de la sourie et on choisit dans le menu contextuel « mettre en
arrière plan ».
- Pour bien contrôler la position des « qrshape » on utilise les touches :
Ctrl +  ou les autre touches de flèches.
- Pour bien contrôler la taille des « qrshape » on utilise les touches :
Shift +  ou les autre touches de flèches.
- on presse sur la touche Shift et par sourie on clique sur tous les « qrshape » de la bande
« entête de colonnes » et en fin on lache la touche Shift et on tape les touches Ctrl + C pour
copier ces cadres.
- On clique sur la bande « détail » et on tape Ctrl + V pour coller les cadres dans cette bande.
- On déplace ces cadres par les touches Ctrl +  et on clique sur ces cadres par le bouton
droit de la sourie et on clique sur « mettre en arrière plan ».

Ensuite : on tape Shift + F12 et on affiche la fiche « fiche_facture_vente »


Ensuite : et pour une impression bien présentée de la facture on insère un composant popupmenu (palette standard).
Ensuite : on double clique sur ce composant et on introduit les deux éléments «previsualiser» et «imprimer» dans
leurs propriétés «caption».
Ensuite : on ferme la petite fenêtre du « popupmenu » et on clique sur le composant « speedbutton1 » qui représente
l’impression et dans son inspecteur d’objet on choisit dans sa propriété « popupmenu » l’élément « popupmenu1 ».
Ensuite : pour programmer le composant popupmenu1 on double clique sur ce dernier et on double clique sur
l’élément « previsualiser » et on écrit dans sa procédure :
Fiche_etat_facture_vente.qrlabel17.caption := label8.caption ;
Fiche_etat_facture_vente.quickrep1.preview ;

- 66 -
Logiciel Gestion Commerciale

Ensuit : on tape F12 pour retourner à la fiche et on double clique sur le composant « popupmenu1 » et on double
clique sur l’élément « imprimer » et on écrit dans sa procédure :
Fiche_etat_facture_vente.qrlabel17.caption := label8.caption ;
Fiche_etat_facture_vente.quickrep1.print ;
12- lorsqu’on enregistre les modifications dans notre table1 (facture_vente) par le bouton « enregistrer » du
dbnavigator1, on doit supprimer les quantités_vente des quantité_stock. On programme cela par le choix du
composant table1 et dans la procédure de son événement « afterpost » on écrit :
table3.first ;
while not(table3.eof) do
begin
Table4.setkey ; // préparation de la recherche
Table4.fieldbyname(‘reference’).asinteger := Table3.fieldbyname(‘ref_prod’).asinteger ;
If table4.gotokey then
Begin
Table4.edit; //préparation de la modification
Table4.fieldbyname(‘qte_stock’).asfloat:=Table4.fieldbyname(‘qte_stock’).asfloat-
Table3.fieldbyname(‘qte_vente’).asfloat;
Table4.post;
End;
Table3.next;
End;
En fin : on enregistre tous le travail par : (le menu Delphi) : fichier  tout enregistrer
13- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément facture vente (du sous
menu Edition)
Ensuite : on écrit dans la procédure : fiche_facture_vente.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_facture_vente et on doit cliquer sur oui pour cette demande
de confirmation ; on recompile par Ctrl + F9 pour faire la liaison aussi entre la fiche_facture_vente et la
fiche_etat_facture_vente et on doit cliquer sur oui aussi pour cette demande de confirmation.

Remarques :
1- Pour que la fiche facture vente se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du
logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_facture_vente » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)

LA FICHE CONSULTATION ACHATS

1. choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom :
« fiche_consultation_achat».
Ensuite : (le menu Delphi): fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:
«consultation_achat»

- 67 -
Logiciel Gestion Commerciale

2. insérer les composants suivants :


Palette Composant Propriété Valeur
supplement bitbtn kind bkclose
standard label1 Caption numéro facture
edit1 text
BDE Query1 databasename Commerce
Sql Select * from facture_achat Where numero_a = :num
Params Clique sur « num » et choisir dans la propriété datatype : « ftinteger »
Active True
Accéesbd Datasource1 dataset Query1
Supplement Speedbutton1 glyph (choisir une image)
standard label2 Caption Date début
label3 Caption Date fin
win32 datetimepicker1
datetimepicker2
supplement Speedbutton2 glyph (choisir une image)
BDE Query2 databasename commerce
Sql Select * from facture_achat
Where (date_achat >=:debut) and (date_achat <=:fin)
Params Clique sur « debut » et choisir dans la propriété datatype : « ftdate »
Clique sur « fin » et choisir dans la propriété datatype : « ftdate »
Active True
standard label4 Caption Règlement
combobox1 text
items cheque
espece
credit
Supplement Speedbutton3 glyph (choisir une image)
BDE Query3 databasename commerce
Sql Select * from facture_achat Where reglement_a =:reg
Params Clique sur « reg » et choisir dans la propriété datatype : « ftstring »
Active True
Table1 databasename Commerce
tablename Fournisseur
Active True
Accèsbd Datasource2 dataset Table1
Standard Label1 caption Fournisseur
controlebd oboxdblookupcomb1 listsource datasource2
listfield code_f ;nom_f
keyfield Code_f
BDE Query4 databasename Commerce
Sql Select * from facture_achat Where code_four =:cod
Params Clique sur « cod » et choisir dans la propriété datatype : « ftinteger »
Active True
Supplement Speedbutton4 glyph (choisir une image)
BDE Table2 databasename commerce
tablename Ligne_achat
active true
mastersource datasource1
masterfield Clique sur « num_achat » et clique sur « numero_a » et clique sur Ajouter et clique sur Ok
Accesbd datasource3 dataset table2
controlebd dbgrid1 datasource datasource1
dbgrid2 datasource datasource3

3. double clique sur le composant « speedbutton1 » et écrire :


Query1.close ;
Query1.params[0].asinteger :=strtoint(edit1.text);
Query1.active :=true ;
Datasource1.dataset :=Query1 ;

4. tapez F12 et double clique sur le composant « speedbutton2 » et écrire:


Query2.close ;
Query2.params[0].asdate :=datetimepicker1.date;
Query2.params[1].asdate :=datetimepicker2.date;
Query2.active :=true ;
Datasource1.dataset :=Query2 ;

- 68 -
Logiciel Gestion Commerciale

5. tapez F12 et double clique sur le composant « speedbutton3 » et écrire:


Query3.close ;
Query3.params[0].asstring :=combobox1.text;
Query3.active :=true ;
Datasource1.dataset :=Query3 ;

6. tapez F12 et double clique sur le composant « speedbutton4 » et écrire:


Query4.close ;
Query4.params[0].asinteger :=strtoint(dblookupcombobox1.text);
Query4.active :=true ;
Datasource1.dataset :=Query4 ;

7. cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément Achats (du sous menu
Consultation)
Ensuite : on écrit dans la procédure : fiche_consultation_achat.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_consultation_achat et on doit cliquer sur Oui pour cette
demande de confirmation.
Remarques :
1- Pour que la fiche consultation achat se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du
logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_consultation_achat » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (vérifier les résultats de tous les traitements possibles)

FICHE CONSULTATION VENTES

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété « name » le nom :
« fiche_consultation_vente».
Ensuite : (le menu Delphi): fichier  enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:
«consultation_vente»
2- insérer les composants suivants :
Palette Composant Propriété Valeur
supplement bitbtn kind bkclose
standard label1 Caption numéro facture
edit1 text
BDE Query1 databasename Commerce
Sql Select * from facture_vente Where numero_v = :num
Params Clique sur « num » et choisir dans la propriété datatype : « ftinteger »
Active True
Accéesbd Datasource1 dataset Query1
Supplement Speedbutton1 glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\find.bmp
standard label2 Caption Date début
label3 Caption Date fin
win32 datetimepicker1

- 69 -
Logiciel Gestion Commerciale

datetimepicker2
supplement speeddbutton2 glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\find.bmp
BDE Query2 databasename commerce
Sql Select * from facture_vente
Where (date_vente >=:debut) and (date_vente <=:fin)
Params Clique sur « debut » et choisir dans la propriété datatype : « ftdate »
Clique sur « fin » et choisir dans la propriété datatype : « ftdate »
Active True
standard label4 Caption Règlement
combobox1 text
items cheque
espece
credit
Supplement Speedbutton3 glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\find.bmp
BDE Query3 databasename commerce
Sql Select * from facture_vente Where reglement_v =:reg
Params Clique sur « reg » et choisir dans la propriété datatype : « ftstring »
Active True
Table1 databasename Commerce
tablename client
Active True
Accèsbd Datasource2 dataset Table1
Standard Label1 caption client
controlebd dblokupcombbox1 listesource datasource2
listefield code_c;nom_c
keyfield code_c
BDE Query4 databasename Commerce
Sql Select * from facture_vente Where code_cli =:cod
Params Clique sur « cod » et choisir dans la propriété datatype : « ftinteger »
Active True
Supplement Speedbutton4 glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\find.bmp
BDE Table2 databasename commerce
tablename ligne_vente
active true
mastersource datasource1
masterfield Clique sur « num_vente » et clique sur « numero_v » et clique sur Ajouter et clique sur
Ok
AccesBd datasource3 dataset table2
controlebd dbgrid1 datasource cedatasour1
dbgrid2 datasource datasource3

8. double clique sur le composant « speedbutton1 » et écrire :


Query1.close ;
Query1.params[0].asinteger :=strtoint(edit1.text);
Query1.active :=true ;
Datasource1.dataset :=Query1 ;

9. tapez F12 et double clique sur le composant « speedbutton2 » et écrire:


Query2.close ;
Query2.params[0].asdate :=datetimepicker1.date;
Query2.params[1].asdate :=datetimepicker2.date;
Query2.active :=true ;
Datasource1.dataset :=Query2 ;

10. tapez F12 et double clique sur le composant « speedbutton3 » et écrire:


Query3.close ;
Query3.params[0].asstring :=combobox1.text;
Query3.active :=true ;
Datasource1.dataset :=Query3 ;

11. tapez F12 et double clique sur le composant « speedbutton4 » et écrire:


Query4.close ;
Query4.params[0].asinteger :=strtoint(dblookupcombobox1.text);
Query4.active :=true ;
Datasource1.dataset :=Query4 ;

- 70 -
Logiciel Gestion Commerciale

12. cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : double clique sur le « mainmenu1 » et double clique sur son élément Ventes (sous menu Consultation)
Ensuite : on écrit dans la procédure : fiche_consultation_vente.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_consultation_vente et on doit cliquer sur Oui pour cette
demande de confirmation.

Remarques :
1- Pour que la fiche consultation vente se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du
logiciel : - On tape : Shift + F12 et on clique sur la « fiche_consultation_vente » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (vérifier les résultats de tous les traitements possibles)

FICHE STATISTIQUES_REGLEMENT

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name»le
nom:«fiche_statistiques_reglement».
Ensuite:(le menu Delphi): fichier enregistrer, et dans le dossier « c:\commerce\source » nommer
l’unité:«statistiques_reglement»

2- Insérer les composants suivants :


Palette Composant Propriété Valeur
BDE Query1 databasename commerce
Sql Select reglement_a, count(reglement_a) as nombre
from facture_achat group by reglement_a
Active True
Query2 databasename commerce
Sql Select reglement_v, count(reglement_v) as nombre
from facture_vente group by reglement_v
Active True
supplement bitbtn kind bkclose
win32 Pagecontrol1

Clique droit sur ce Caption atsReglement des ach


composant et clique sur
« nouvelle page »
Clique droit sur ce Caption Reglement des ventes
composant et clique sur
« nouvelle page »

- 71 -
Logiciel Gestion Commerciale

controlebd DBchart1 (Insérer ce composant sur le composant « pagecontrole1 » dans la page « règlement des achats » )
(il faut cliquer sur l’onglés « lement des achatsreg » et cliquer ensuite dans le cadre intérieur de cette page)
Et double clique sur ce composant « dbchart1 »
Et clique sur l’onglé inférieur « série »
Et clique sur le bouton Ajouter
Et clique sur le graphe de la forme « sectoriel »
Et clique sur le bouton Ok
Et clique sur l’onglé supérieur « série »
Et clique sur l’onglé « source de données »
Et choisir dans la liste l’élément « dataset »
Et choisir dans la liste dataset l’élément « query1 »
Et choisir dans la liste « libellé » l’élément « règlement »
Et choisir dans la liste « sectoriel » l’élément « nombre »
A la fin clique sur Fermer
controlebd DBchart2 (Insérer ce composant sur le composant « pagecontrole1 » dans la page « règlement des ventes »)
(il faut cliquer sur l’onglés « règlement des ventes » et cliquer ensuite dans le cadre intérieur de cette page)
Et double clique sur ce composant « dbchart2 »
Et clique sur l’onglé inférieur « série »
Et clique sur le bouton Ajouter
Et clique sur le graphe de la forme « sectoriel »
Et clique sur le bouton Ok
Et clique sur l’onglé supérieur « série »
Et clique sur l’onglé « source de données »
Et choisir dans la liste l’élément « dataset »
Et choisir dans la liste dataset l’élément « query2 »
Et choisir dans la liste « libellé » l’élément « règlement »
Et choisir dans la liste « sectoriel » l’élément « nombre »
A la fin clique sur Fermer
Remarque :
Pour que la fiche statistiques achats affiche toujours les dernières modifications automatiquement (rafraîchissement
automatique des données du query1 et query2) : Clique sur la fiche_statistiques_reglement
Dans son inspecteur d’objet double clique à droite de l’événement « onactivate »
Ensuite : écrire le code source suivant dans la procédure correspondante :
Query1.close ;
Query1.active :=true ;
Query2.close ;
Query2.active :=true ;

3- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément Reglements (du sous
menu statistiques)
Ensuite : on écrit dans la procédure : fiche_statistiques_reglement.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_statistiques_reglement et on doit cliquer sur Oui pour cette
demande de confirmation.
Remarques :
1- Pour que la fiche statistique règlement se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution
du logiciel : - On tape : Shift + F12 et on clique sur la « fiche_statistique_reglement » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- On enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (vérifier les résultats de tous les traitements possibles)

FICHE MOT DE PASSE

1-choisir dans le menu Delphi : fichier  nouveau  dialogue  dialogue de mot de passe.
Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name» le nom: « fiche_passe».
- 72 -
Logiciel Gestion Commerciale

Ensuite : (le menu Delphi) : fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité : «passe»
2- insérer un composant « table1 » (palette BDE) et manipuler ses propriétés :
Databasename  commerce table name  protection active true.

3- Double clique sur le bouton Ok et écrire dans sa procédure :


if password.text=table1.fieldbyname('password').asstring then
fiche_menu.showmodal
else
begin
showmessage('mot de passe incorrecte');
password.clear;
password.setfocus;
end;

4- double clique sur le Bouton Annuler et écrire dans sa procédure : application.terminate ;

remarques importantes:
a- Pour que la fiche_passe se lance la première lors de chaque éxécution du logiciel on choisit dans le menu Delphi :
Projet  options  dans l’onglés « fiche »  dans la liste « fiche principale »  choisir : « fiche_passe »  Ok
b- Il faut ajouter les deux unités : messages, dialogs, dans la liste uses de l’unité « passe »
Nb : par fois Delphi répète quelques unités de la partie uses si on écrit une nouvelle unité dans cette partie, donc on
doit supprimer les unités dupliquées si Delphi signal ce problème de répétition après la compilation du logiciel.
❖ Lancer l’éxécution par F9 et tester cette fiche (vérifier les résultats de tous les traitements possibles)

FICHE PROTECTION

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name»le nom:« fiche_protection ».
Ensuite : (le menu Delphi) : fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité :
«protection»

2- Insérer les composants suivants :


Palette Composant Propriété Valeur
supplement bitbtn1 kind bkclose
bitbtn2 kind bkok
standard label1 caption eancien mot de pass
edit1 text
passwordchar *
label2 caption nouveau mot de passe
edit2 text
passwordchar *
label3 caption confirmation
edit3 text
passwordchar *
BDE table1 databasename commerce
tablename protection
Active True

- 73 -
Logiciel Gestion Commerciale

3- double clique sur le composant « BitBtn2 » et écrire dans sa procédure:


If edit1.text = table1.fieldbyname(‘password’).asstring then
If edit2.text = edit3.text then
Begin
Table1.edit;
Table1.fieldbyname(‘password’).asstring:=edit2.text;
Table1.post;
Showmessage(‘ la modification du mot de passe est effectuée ’)
End
Else Showmessage(‘ la confirmation du mot de passe est incorrecte ’)
Else Showmessage(‘ l’’ancien mot de passe est incorrecte ’) ;

4- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément protection (du sous
menu outils)
Ensuite : on écrit dans la procédure : fiche_protection.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_protection et on doit cliquer sur Oui pour cette demande de
confirmation.

Remarques :
1- Pour que la fiche protection se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_protection » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche.

FICHE ARCHIVAGE

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name» le nom:« fiche_archivage ».
Ensuite : (le menu Delphi) : fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:«
archivage»
2- tapez F12 et dans la liste uses de l’unité archivage Il faut ajouter l’unité : ShellAPI, .
3- tapez F12 pour revenir à la fiche et Insérer les composants suivants :
Palette Composant Propriété Valeur
win3.1 FileListBox1 name fichier
Mask *.db
DirectoryListBox1 name driverlist
DriveComboBox1 name driver
Dirlist driverlist
FilterComboBox1 Filelist fichier
filter *.db
supplement BitBtn1 kind bkclose
Speedbutton1 caption archiver
glyph C:\Program Files\Fichiers communs\Borland shared\Images\Buttons\floppy.bmp
standard Label1 caption lecteur

- 74 -
Logiciel Gestion Commerciale

4- Double clique sur le composant speedbutton1 et écrire dans sa procédure :


if CopyFolder('c:\commerce\base', driverlist.Directory) then
ShowMessage(‘Archivage effectué avec succès') else
ShowMessage('Archivage non effectué');

5- il faut inserer avant la procedure BitBtn4Click la fonction suivante :


function CopyFolder(FromFld, ToFld: string): boolean;
var fos: TSHFileopStruct;
begin
FillChar(fos, SizeOf(fos),0);
with fos do
begin
wFunc := FO_COPY;
pFrom := PChar(FromFld+#0);
pTo := PChar(ToFld+#0);
fFlags := FOF_SILENT or FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR;
end;
Result := ShFileOperation(fos)=0;
end;

6- pour avoir un bon interface on doit cacher les deux composants «FileListBox1» et «FilterComboBox1»comme
suite:
- clique par le bouton droit de la sourie sur le composant : « FileListBox1 » nommé « fichier » et choisir dans le menu
contextuel : « mettre en arrière plan » et mettre ce composant au-dessous du « DirectoryListBox1 » (driverlist).
- aussi, clique par le bouton droit de la sourie sur le composant : « FilterComboBox1» et choisir dans le menu
contextuel : « mettre en arrière plan » et mettre ce composant au-dessous du « DirectoryListBox1 » (driverlist).
7- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément archivage (du sous
menu outils)
Ensuite : on écrit dans la procédure : fiche_archivage.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_archivage et on doit cliquer sur Oui pour cette demande de
confirmation.
Remarques :
1- Pour que la fiche archivage se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_archivage » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (vérifier les résultats de tous les traitements possibles)
❖ Cette fiche necessite la création d'un dossier dans disque dur (nommé par exemple : archive2007) qui sera le
dossier ou on va archiver notre base de données.

FICHE INVENTAIRE

- 75 -
Logiciel Gestion Commerciale

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name» le nom:« fiche_inventaire».
Ensuite : (le menu Delphi) : fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:«
inventaire»
2- Insérer les composants suivants :
Palette Composant Propriété Valeur
supplement bitbtn1 kind bkclose
speedbutton1 caption Preparer
glyph (choisissez une image adéquate)
speedbutton2 caption ajuster
glyph (choisissez une image adéquate)
BDE Table1 Databasename Commerce
Tablename inventaire
Active True
Accesbd Datasource1 Dataset Table1
Controlebd Dbgrid1 Datasource Dataource1
BDE Table2 Databasename Commerce
Tablename Ligne_inventaire
Active True
Master Source datasource1
Master Field Clique sur « num_inv » et clique sur « numero_i »et clique sur Ajouter et clique sur Ok
Accesbd Datasource2 Dataset Table2
Controlebd Dbgrid2 Datasource Dataource2
BDE Table3 Databasename Commerce
Tablename produit
Active True
3- insérer le champ calculé « écart » qui représente la différence entre le stock théorique et le stock réel comme
suite :
On double clique sur le composant table2 « ligne_inventaire »
Ensuite : on clique droit sur la petite fenêtre et on clique sur « ajouter tous les champs ».
Ensuite : on clique droit une autre fois sur cette petite fenêtre et on clique sur « nouveau champ ».
Ensuite : on écrit le nom du champ : « écart » et on choisit le type du champ : « float » et on clique sur Ok.
Ensuite : on clique sur le composant table2 et dans son inspecteur d’objet on clique sur l’onglés « événements ».
Ensuite : on double clique à droite de l’événement « oncalcfields » et on écrit dans la procédure :
table2.fieldbyname(‘ecart’).asfloat := table2.fieldbyname(‘qte_theorique’).asfloat –
table2.fieldbyname(‘qte_reelle’).asfloat ;

4- on prépare l’inventaire par un double clic sur le speedbutton1 « preparer » et on écrit dans sa procédure :
(Supprimer le begin et end de la procédure et coller tous le code source suivant)

var trouver : boolean;


begin
table2.first;
trouver:=false;
while not(table2.eof) do
begin
if table2.fieldbyname('ref_prod').asinteger=table3.fieldbyname('reference').asinteger then
trouver:=true;
table2.next;
end;
if trouver then
showmessage('inventaire deja preparé')
else
begin
table3.first;
while not(table3.eof)do
begin
table2.append;// on copie les produits de la table produit vers la table ligne_invertaire.
table2.FieldByName(‘ref_prod').asinteger:=table3.FieldByName('reference’).asinteger;
table2.FieldByName('qte_theorique').asfloat:=table3.FieldByName('qte_stock').asfloat;
table2.post;
table3.next;
end;
end;
end;

- 76 -
Logiciel Gestion Commerciale

5- après avoir saisie les qte_reelle de chaque produit, on ajuste le stock sur ordinateur (la quantite_stock sera
donc la quantité réelle) par un double clic sur le speedbutton2 « ajuster » et on écrit dans sa procédure :
table3.first;
table2.first;
while not(table3.eof)do
begin
table3.edit;
table3.FieldByName('qte_stock').asfloat:=table2.FieldByName('qte_reelle').asfloat;
table3.post;
table2.next;
table3.next;
end;
table3.refresh;

En fin : on enregistre tous le travail par : (le menu Delphi) : fichier  tout enregistrer
6- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément inventaire (du sous
menu outils)
Ensuite : on écrit dans la procédure : fiche_inventaire.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_inventaire et on doit cliquer sur Oui pour cette demande de
confirmation.

Remarques :
1- Pour que la fiche inventaire se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_inventaire » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)

FICHE CLOTURE

1- choisir dans le menu Delphi : fichier  nouvelle fiche.


Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name» le nom:« fiche_Cloture».
Ensuite : (le menu Delphi) : fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:« Cloture»

2- Insérer les composants suivants :


Palette Composant Propriété Valeur
supplement speedbutton1 caption Vider Table Facture Achat
glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\trash.bmp
speedbutton2 caption Vider Table Ligne Achat
glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\trash.bmp
speedbutton3 caption Vider Table Facture Vente
glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\trash.bmp
speedbutton4 caption Vider Table Ligne Vente
glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\trash.bmp
- 77 -
Logiciel Gestion Commerciale

speedbutton5 caption Vider Table Inventaire


glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\trash.bmp
speedbutton6 caption Vider Table Ligne Inventaire
glyph C:\Program Files\Fichiers communs\Borland Shared\Images\Buttons\trash.bmp
Bitbtn1 kind bkclose
BDE Table1 Databasename Commerce
Tablename Facture_achat
Active True
Table2 Databasename Commerce
Tablename Ligne_achat
Active True
Table3 Databasename Commerce
Tablename Facture_vente
Active True
Table4 Databasename Commerce
Tablename Ligne_vente
Active True
Table5 Databasename Commerce
Tablename Inventaire
Active True
Table6 Databasename Commerce
Tablename ligne_inventaire
Active True
3- double clique sur le « speedbutton1 » et écrire dans sa procédure :
While not (table1.eof) do
table1.delete ;
showmessage('la table facture achat est vidée');
- Tapez F12 pour retourner à la fiche.

4- double clique sur le « speedbutton2 » et écrire dans sa procédure :


While not (table2.eof) do
Table2.delete ;
showmessage('la table ligne achat est vidée');
- Tapez F12 pour retourner à la fiche.

5- double clique sur le « speedbutton3 » et écrire dans sa procédure :


While not (table3.eof) do
Table3.delete ;
showmessage('la table facture vente est vidée');
- Tapez F12 pour retourner à la fiche.

6- double clique sur le « speedbutton4 » et écrire dans sa procédure :


While not (table4.eof) do
Table4.delete ;
showmessage('la table ligne vente est vidée');
- Tapez F12 pour retourner à la fiche.

7- double clique sur le « speedbutton5 » et écrire dans sa procédure :


While not (table5.eof) do
Table5.delete ;
showmessage('la table inventaire est vidée');
- Tapez F12 pour retourner à la fiche.

8- double clique sur le « speedbutton6 » et écrire dans sa procédure :


While not (table6.eof) do
Table6.delete ;
showmessage('la table ligne inventaire est vidée');
- Tapez F12 pour retourner à la fiche.

En fin : on enregistre tous le travail par : (le menu Delphi) : fichier  tout enregistrer
9- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément Cloture (du sous menu
outils)

- 78 -
Logiciel Gestion Commerciale

Ensuite : on écrit dans la procédure : fiche_cloture.showmodal ;


Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_cloture et on doit cliquer sur Oui pour cette demande de
confirmation.
Remarques :
1- Pour que la fiche cloture se place au milieu de l’écran si on l’appel lors du lancement de l‘éxécution du logiciel :
- On tape : Shift + F12 et on clique sur la « fiche_cloture » et on clique sur Ok.
- On clique sur cette fiche (éviter de cliquer sur l’un de ses composants).
- On choisit dans sa propriété : « position  poScreenCenter»
2- on enregistre notre travail par le menu Delphi : fichier  tout enregistrer.
❖ Lancer l’éxécution par F9 et tester cette fiche (saisir des donner et vérifier les résultats de tous les traitements
possibles)

FICHE A PROPOS

1- on peut insérer cette fiche par le menu Delphi :


Fichier  nouveau  fiche  boite a propos  Ok
Ensuite : dans l’inspecteur d’objet de la fiche on écrit dans la propriété «name»le nom:«fiche_apropos».
Ensuite : (le menu Delphi): fichier enregistrer, et dans le dossier « c:\commerce\source » nommer l’unité:«apropos»
Ensuite : on écrit le texte qu’on veut dans les labels et modifier la couleur et la taille des labels par leurs propriétés
« FONT ». (Cette fiche est la carte visite du logiciel).

2- cette fiche est maintenant prête à être liée avec le menu principal du logiciel comme suite :
On tape les touches : Shift + F12 et on clique sur la « fiche_menu » et on clique sur Ok.
Ensuite : on double clique sur le composant « mainmenu1 » et double clique sur son élément « a propos » (du sous
menu « ? »)
Ensuite : on écrit dans la procédure : fiche_apropos.showmodal ;
Ensuite : on compile notre logiciel par les touches Ctrl + F9 et automatiquement Delphi vous demande la
confirmation de la liaison entre la fiche_menu et la fiche_apropos et on doit cliquer sur oui pour cette demande de
confirmation.

L’image de Logo :
1- dans la propriété picture du composant « image1 » on clique sur le bouton Charger et chercher l’image voulue.
(Delphi propose quelques images dans :
« C:\Program Files\Fichiers communs\Borland Shared\Images\ Splash\256Color ».
2- en fin clique sur Ouvrir ensuite sur Ok
3- pour que l’image occupe toute la surface de son cadre on modifie sa propriété : Autosize  true.
4- pour que l’image s’agrandie si elle a une taille plus petite que la surface de son cadre on modifie sa propriété :
Stretch  true.

- 79 -
Logiciel Gestion Commerciale

- 80 -

Vous aimerez peut-être aussi