0% ont trouvé ce document utile (0 vote)
229 vues77 pages

Guide pratique de My Visual Database

Ce document décrit les avantages d'utiliser une base de données relationnelle au lieu d'un simple tableau pour gérer des informations commerciales. Il explique les concepts clés comme les entités, les tables, les clés primaires, les clés étrangères et les types de données. Le lecteur apprend ensuite à créer sa propre application de base de données simple.

Transféré par

juandoris
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
229 vues77 pages

Guide pratique de My Visual Database

Ce document décrit les avantages d'utiliser une base de données relationnelle au lieu d'un simple tableau pour gérer des informations commerciales. Il explique les concepts clés comme les entités, les tables, les clés primaires, les clés étrangères et les types de données. Le lecteur apprend ensuite à créer sa propre application de base de données simple.

Transféré par

juandoris
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

My Visual Database – Manuel pratique 1/77

My Visual Database – Manuel pratique 2/77

1 – INTRODUCTION
1.1 Introduction

Imaginons que vous conserviez des informations sur une feuille Excel classique, comme le montre la
Figure 1 :

Figure 1

Cela pourrait sembler suffisant pour une comptabilité complète. Malheureusement, cette approche
comporte un certain nombre de problèmes que nous allons maintenant analyser.

Supposons que vous êtes un entrepreneur proposant la location d'équipements de construction à


d'autres entreprises et qui conserve ses documents sur un simple tableau, comme l‘affiche la
figure 1.

1er problème

En premier lieu, que se passera-t-il si une entreprise change son numéro de téléphone ? Disons que
la société "KH Services" a comme nouveau numéro de téléphone 7 495 555-65-65. Pour garder la
table à jour, vous devrez faire des changements sur trois lignes (et s'il y en a déjà 500 ?).

Si nous ne le faisons pas, nos données seront incohérente ; après quoi, nous ne serons plus en
mesure de déterminer lequel des numéros de téléphone est à jour.

2ème problème

Nous pouvons faire une faute de frappe dans la saisie du nom de l'entreprise et écrire
accidentellement KJ Services au lieu de KH Services. Par la suite, il sera difficile de savoir s'il s'agit
d'un nouveau client ou si une faute de frappe a été commise. Une telle erreur n'aurait pas pu se
produire si nous avions choisi une société depuis une liste.

3ème problème

Vous ne pouvez pas gérer les enregistrements avec plusieurs personnes.

Par exemple, votre comptable doit gérer les factures et les paiements, et les employés de votre
entreprise veulent conserver des enregistrements des commandes et des réunions avec les clients,
mais par exemple, la comptabilité ne veut pas que les employés de location aient accès aux
informations sur les paiements.
My Visual Database – Manuel pratique 3/77

Des problèmes plus sérieux surgiront quand il s'agira d'analyser les données accumulées, par
exemple :

• Calculez les revenus pour une période donnée.


• Calculer le nombre d'équipements loués par une entreprise donnée.
• Savoir quel type d'équipement est actuellement disponible, etc.

Lorsque trop d'informations s'accumulent dans votre tableau, de tels problèmes surgiront néces-
sairement, ainsi que d'autres, en fonction des spécificités de votre activité comptable.

1.2 La base de données


Maintenant que nous rencontrons des problèmes évidents pour conserver les enregistrements dans
un tableau, nous allons comprendre comment tout organiser correctement.

Pour gérer une comptabilité complète, il est nécessaire d'utiliser ce qu'on appelle une "base de
données".

Qu'est-ce qu'une base de données ? Vous pouvez l'imaginer vous-même sous la forme de plusieurs
feuilles de calcul Excel liées ensemble d'une manière particulière. En outre, chaque table est créée
pour une entité spécifique, mais vous en apprendrez plus à ce sujet dans le chapitre suivant.

1.3 Identifier les entités


Maintenant que nous rencontrons des problèmes évidents pour conserver les enregistrements dans
un tableau, nous allons comprendre comment tout organiser correctement.

Pour gérer une comptabilité complète, il est nécessaire d'utiliser ce qu'on appelle une "base de
données".

Qu'est-ce qu'une base de données? Vous pouvez l'imaginer vous-même sous la forme de plusieurs
feuilles de calcul Excel liées ensemble d'une manière particulière. En outre, chaque table est créée
pour une entité spécifique, mais vous en apprendrez plus à ce sujet dans le chapitre suivant.

Ceci est une information importante que vous devez connaître

Comme vous pouvez le voir dans le tableau de la figure 1, tous les éléments sont empilés, ce sont :

• Client (colonne: "Nom client", "Téléphone")


• Equipement loué (colonne: «Équipement», «Prix par jour»)
• Dates et coûts (colonne: "Date de début", "Date de fin", "Сoût", "Total")

IMPORTANT !

Les entités ci-dessus sont indépendantes et chaque entité doit avoir sa propre table. Ce processus est
également appelé normalisation.

En conséquence, au lieu d'une table, nous aurons 3, comme le montre la figure 2.


My Visual Database – Manuel pratique 4/77

Figure 2

Table Client - elle contient tous nos clients avec leurs numéros de téléphone.
Table Equipements - elle contient le nom de l'équipement que nous possédons, ainsi que le coût de
la location par jour.
Table Location - elle contient des informations sur l'équipement loué. (1)

Désormais, les problèmes décrits au chapitre 1.1 sont résolus:

1. Quand une entreprise change de numéro de téléphone, il suffit de le modifier sur une seule ligne
dans la table nommée Client
2. Il n'est pas nécessaire de saisir manuellement le nom de l'entreprise à chaque fois, cela évite ainsi
les erreurs de frappe. Nous choisissons simplement l'entreprise concernée depuis une liste.
3. Plusieurs utilisateurs de la base de données peuvent être les seuls accéder à certaines tables. Par
exemple, seul un responsable pourra ajouter une nouvelle société en tant que client dans la table
Client.

1.4 Les liens entre les tables et les clés étrangères


Comme vous pouvez le constater, nous disposons maintenant de trois tables distinctes qui ne sont
pas reliées les unes aux autres et si nous les examinons, il est impossible de dire quel équipement a
été loué par quelle entreprise et pour combien de temps. Pour rendre cela évident, il nous faut
ajouter des liens entre les tables.

Les liens entre les tables sont peut-être l'un des sujets les plus
importants dans le domaine des bases de données

Après avoir ajouté les liens nécessaires, nos tables ressembleront à celles de la figure 3.

(1) Pour rester en conformité avec l’édition originale de ce manuel, nous conserverons les noms de tables originaux, à
savoir respectivement : Client (pour les clients,) Equipment (pour les matériels) et Rent (pour les locations).
My Visual Database – Manuel pratique 5/77

Figure 3

En regardant la figure 3, voyons de plus près les connexions :

Notez que désormais, chaque table possède une colonne nommée id. A cause de cette colonne,
chaque enregistrement de la table dispose d'un identifiant unique.

Appelons-le correctement "Clé primaire". Lors de l'ajout d'un nouvel enregistrement à la table, il sera
automatiquement affecté à celui-ci.

Dans la table Rent, vous pouvez également remarquer l'apparition des colonnes id_Client et
id_Equipment. Ce sont elles les "clés étrangères".

C'est grâce aux clés primaires et aux clés étrangères que les relations entre les tables sont formées.

En outre, tout est simple, la clé étrangère id_Client de la table Rent pointe vers la clé primaire de la
table Client.

Ainsi, nous savons quel client traiter pour chaque entrée dans la table des locations (table Rent).

Pour être plus clair, jetez un oeil à la Fig. 4.


My Visual Database – Manuel pratique 6/77

Figure 4

Par exemple, dans la table des locations, pour le dossier ayant l’ID 6, le client "Euroasfalt" a loué
l'équipement "Bulldozer TM-10".

1.5 Les types de datas


Avant de commencer à créer notre première application avec des bases de données, nous devons
considérer un autre sujet. Ce sont les types de données utilisés dans les colonnes.

À première vue, toutes les données dans les tableaux ne semblent être que du texte, mais ce n'est
pas le cas. Chaque colonne de la table correspond à un certain type de données, que nous allons
énumérer :

● Texte (n'importe quel texte, par exemple le nom de l'entreprise)


● Entier (sans partie fractionnaire, par exemple, la quantité de quelque chose)
● Virgule flottante (par exemple, le nombre 3.14)
● Devise (par exemple 25,00 euros)
● Booléen (prend la valeur Oui ou Non)
● Date (par exemple 02/06/2016)
● Heure (par exemple, 19:57:00)
● Date et heure (par exemple 02/06/2016 19:57:00)
● Fichier (vous permet d'enregistrer le fichier directement dans la base de données)
● Image (vous permet d'enregistrer une image dans la base de données)
● Clé étrangère (nous en avons parlé dans la section 1.3)

Ainsi donc, lorsque vous créez des colonnes dans une table, vous devez sélectionner son type.
Pourquoi est-ce nécessaire? Cela permet de stocker les données de manière plus rationnelle et
d'améliorer les performances de la base de données.

Cela aide également à éviter les erreurs. Par exemple, si une colonne est de type entier, l'utilisateur
ne pourra pas y saisir du texte.
My Visual Database – Manuel pratique 7/77

2 - Mise en pratique

2.1 Créez votre première application travaillant avec des bases de


données
Maintenant vous en savez suffisamment sur la théorie des bases de données pour créer votre propre
application fonctionnant avec elles. Un lecteur plus expérimenté pourrait vous parler du langage de
requête SQL qui n'a pas encore été abordé, mais heureusement, les outils de développement
modernes nous permettent de nous en passer pour la première fois.

Mais si vous décidez de réaliser un travail plus ambitieux sur les bases de données, vous devrez
probablement vous familiariser avec SQL.

Pour notre travail pratique, j'ai choisi d'utiliser un environnement de développement de base de
données assez simple, dans lequel tout est réuni pour commencer immédiatement à créer une
structure de base de données et l'application qui fonctionnera avec.

Visitez le site http://myvisualdatabase.com/ pour obtenir la dernière version de My Visual Database.

Malheureusement, le programme n'est pas gratuit, mais il propose une période d'essai, ce qui suffira
à des fins éducatives. Mais vous pouvez trouver une précédente version gratuite via ce lien :

http://myvisualdatabase.com/download/myvisualdb1.44.exe

Regardons brièvement les possibilités du programme :

● CréaUon de la structure des bases de données


● CréaUon des formulaires pour travailler avec les bases de données
● Système de reporting pour l'impression et l'analyse
● Un langage de script qui permet d'implémenter n'importe quelle fonctionnalité non standard
● Supporte les SGBD SQLITE et MySQL (SGBD = Système de Gestion de Base de Données)
● Possibilité de créer un accès Web simple dans la base de données
● Créer une applicaUon Windows autonome

Une fois installée, My Visual Database est immédiatement prête à l'emploi, aucune configuration
supplémentaire n'est requise (Fig.5)
My Visual Database – Manuel pratique 8/77

Figure 5 – Apparence de My Visual Database

Maintenant, nous pouvons commencer à créer notre première application. À titre d'exemple, nous
allons créer les comptes d'équipements de construction considérés ci-dessus.

Avant de commencer à créer une application, sauvegardez le projet dans un dossier séparé (menu :
Fichier> Enregistrer sous ... ou File> Save AS… si votre menu est en anglais), appelez notre projet par
exemple Rent (Fig.6).

Figure 6 – Sauvegarde du projet

Comme nous l'avons vu dans le premier chapitre du livre, la base de données est composée de tables
et de colonnes, que nous devons maintenant créer.
My Visual Database – Manuel pratique 9/77

Commençons par créer les tables :

▪ Client (la table des clients)


▪ Equipment (la table des équipements ou matériels)
▪ Rent (la table des locations)

Dans l'onglet Tables de base de données (Database Tables), cliquez sur le bouton Nouvelle table
(New table) pour créer votre première table Client. De la même manière, vous allez créer les tables
Equipment et Rent.

Après avoir créé les tables, vous devriez obtenir ce qu’affiche la figure 7.

Figure 7

Encore une fois, faites attention à la figure 7 : pour chaque table créée ci-dessus, il existe un bouton
"New Field" (Nouveau champ).

Ce bouton est utilisé pour créer les champs des tables. Créons le premier champ. Cliquez sur le
bouton New field dans la table Client, puis sélectionnez le type Text dans le menu déroulant.

De la même manière, créez tous les champs suivants pour les tables restantes. Ne pas oublier de
sélectionner le bon type de champ.
My Visual Database – Manuel pratique 10/77

Table Client
▪ Name (nom du client, type TEXT)
▪ Phone (téléphone du client, type TEXT)

Table Equipment
▪ Tech (nom du matériel, type TEXT)
▪ CostPerDay (coût pour une journée, type CURRENCY)

Table Rent
▪ DateStart (date de début de la location, type DATE)
▪ DateEnd (date de fin de la location, type DATE)
▪ TotalCost (coût total, type of CURRENCY)

Le résultat devrait ressembler à la figure 8 :

Figure 8

Notez qu’il faut bannir les espaces entre les noms des champs (Cost Per Day est à proscrire,
Cost_Per_Day ou CostPerDay conviennent).

Rappelez-vous que chaque table doit contenir un champ nommé id, qui stocke un identifiant unique
pour chacun des enregistrements. Vous n'avez pas besoin de vous en préoccuper, le programme le
crée automatiquement.
My Visual Database – Manuel pratique 11/77

La structure de la base de données est presque achevée, il ne reste plus qu'à créer deux clés externes
dans la table Rent qui seront associées aux tables Client et Equipment.

Ceci est nécessaire pour que, lorsque nous créerons un nouveau dossier de location, nous puissions
sélectionner un client et un équipement depuis des listes déroulantes et cette option sera sauve-
gardée dans les clés étrangères (Foreign keys).

La création de clés étrangères est presque similaire à la création de champs. Dans la table Rent,
cliquez sur New field et, dans le menu qui s'affiche, sélectionnez Relationship, puis sélectionnez
Client dans la liste et cliquez sur OK, comme indiqué dans la figure 9.

Figure 9

Faites de même pour créer une clé étrangère vers la table Equipment.

Là encore, dans la table Rent, cliquez sur le bouton New Field et sélectionnez l’item Relationship
dans le menu qui apparaît, puis sélectionnez la table Equipment dans la liste et cliquez sur OK.

La forme finale des tables et des champs est illustrée à la Fig. 10.
My Visual Database – Manuel pratique 12/77

Figure 10

À ce stade, les structures de nos tables sont entièrement prêtes.

Nous devons ensuite créer une interface utilisateur qui interagira avec la base de données (1) afin de
pouvoir créer, modifier et supprimer des enregistrements. Il est également nécessaire que l'appli-
cation recherche facilement des enregistrements selon différents critères.
A partir de maintenant, vous pouvez lancer votre application en cliquant sur le bouton dans la
barre d'outils. Vous verrez apparaître la fenêtre Form1, sur laquelle il n'y a rien.

Après le premier lancement de l'application, dans le dossier du projet, vous trouve-


rez un fichier exe, qui devient une application autonome, prête à fonctionner sur
n'importe quel ordinateur, sans installation de composants supplémentaires

Définissons les forms dont nous avons besoin. (Dans le langage de programmation Delphi, langage
natif de My Visual Database, une form est une fenêtre affichant généralement des formulaires ou
des tableaux. Nous garderons cette dénomination).

(1) Ne pas confondre base de données et table. Dans les bases de données relationnelles, une table est un ensemble
de données organisées sous forme d'un tableau où les colonnes correspondent à des catégories d'information.
Une base de données peut donc contenir une ou plusieurs tables.
My Visual Database – Manuel pratique 13/77

1. Form1

Formulaire destiné aux saisies et aux recherches. Ce formulaire sera le principal, il


apparaîtra dès lorsque vous lancerez votre application.

2. frmRent

Formulaire permettant de créer et modifier un enregistrement. Ce formulaire écrira dans la


table Rent.

3. frmClientList

Formulaire affichant une liste des clients.

4. frmClient

Formulaire destiné à créer et éditer un client. Ce formulaire écrira des données dans la
table Client.

5. frmTechList

Formulaire affichant une liste de matériels de construction.

6. frmTech

Formulaire destiné à créer et publier des informations sur les matériels de construction. Ce
formulaire écrira des données dans la table Equipment.

En règle générale, pour chaque table de la base de données, vous aurez besoin de deux formulaires,
un pour afficher tous les enregistrements et un autre pour créer ou modifier les enregistrements
dans cette table.

Pour créer une interface, vous disposez des composants que vous voyez dans la barre d'outils (Figure
11).

Figure 11

Presque tous ces composants sont standard ; ils sont généralement utilisés dans la plupart des appli-
cations Windows.

Mais nous allons les passer en revue en donnant d’eux une brève description :
My Visual Database – Manuel pratique 14/77

Arrow
Désélectionne tout autre composant sélectionné.
Label - Permet de placer une étiquette sur la form.
En général, ce composant ne possède aucune fonctionnalité.
Button - Un composant important et fréquemment utilisé.
Par exemple, il peut servir à sauver un enregistrement dans une table.
TextBox
Sert à entrer des informations texte et numérique.
Memo – C’est un champ texte multilignes.
Il sert également à saisir des informations sous forme de texte.
ComboBox – Liste déroulante
Elle permet de sélectionner une valeur depuis cette liste.
CheckBox – Case à cocher
Elle possède trois états : cochée, décochée ou grisée.
DateTimePicker
Permet d’entrer une date ou une heure (ou les deux).
DBImage
Permet de sauver une image dans une table.
DBFile
Permet de sauver un fichier dans une table.
Calendar
Permet uniquement de sélectionner une date.
TableGrid - Grille
Permet d’afficher les enregistrements d’une table sous forme de vue tabulaire.
Counter - Compteur
Affecte un numéro unique à un enregistrement.
Panel - Panneau
Elément décoratif de l’interface.
GroupBox
Elément décoratif de l’interface.
PageControl
Permet de créer des onglets commutables avec la possibilité de placer d'autres compo-
sants sur chaque onglet.
Picture - Image
Permet de placer une (ou des) images sur la form.
Google Maps
Permet d’afficher une Google Map dans votre application.

Commençons par créer le premier formulaire qui sera utilisé pour rechercher des enregistrements.
Sur ce même formulaire, nous placerons des boutons qui appelleront un autre formulaire destiné à
créer ou modifier un enregistrement.

Pour créer ce formulaire, les composants suivants suffiront :

Cliquez sur l'onglet Form1 comme indiqué dans la figure 11a.


My Visual Database – Manuel pratique 15/77

Figure 11a

Après avoir sélectionné le composant souhaité dans la barre d'outils, faites un clic gauche sur la form
Form1 là où vous souhaitez placer ce composant.

Une fois le composant placé sur la form, si vous avez besoin de modifier le texte, vous pouvez le faire
en utilisant la propriété Caption dans le panneau "Properties" (Fig. 12).

Par exemple, si vous avez sélectionné un bouton, c’est ici que vous modifierez le texte Button1 en
Sauver.
My Visual Database – Manuel pratique 16/77

Figure 12

Placez tous les composants sur la Form1 comme indiqué dans la figure 13. Pour votre commodité, les
lignes de couleur indiquent où et quels composants doivent être placés sur le formulaire.

Figure 13
My Visual Database – Manuel pratique 17/77

Le formulaire destiné aux recherches est prêt. Sur ce formulaire, vous trouverez tous les enregistre-
ments relatifs aux locations d'un client spécifique, d'un matériel spécifique et également des enre-
gistrements en fonction de la date de début ou de fin de la location.

Appelez le formulaire pour créer un nouvel enregistrement de location, modifier une location
existante ou supprimer une location.

Sur ce même formulaire, on trouve les boutons "Clients" et "Equipements". Ces boutons sont néces-
saires pour appeler les formulaires affichant respectivement une liste de tous les clients et une de
tous les matériels.

Par curiosité, vous pouvez cliquer sur le bouton pour lancer votre projet et voir à quoi il ressemble.
Les composants du formulaire n'étant pas encore configurés, rien ne se produira lorsque vous
cliquerez dessus.

Commençons par créer le second formulaire nécessaire pour créer ou modifier l'enregistrement
d'une location.

Je vous rappelle, qu’en règle générale, la même forme est utilisée, à la fois pour la création et pour
la modification de l'enregistrement.

Créez un deuxième formulaire en appuyant sur le bouton .

Nommez ce formulaire : frmRent.

Placez les composants sur le formulaire frmRent, comme illustré à la Figure 14 :

Figure 14

Créez un troisième formulaire nommé frmClientList en cliquant sur le bouton .


My Visual Database – Manuel pratique 18/77

Sur le formulaire créé, nous serons en mesure de voir tous nos clients, nous aurons également la pos-
sibilité d'appeler un formulaire afin de créer un nouveau client ou de modifier un client existant.

Placez les composants sur ce formulaire comme indiqué dans la figure 15.

Figure 15

Créez un quatrième formulaire nommé frmClient en cliquant sur le bouton .

Ce formulaire est conçu pour créer un nouvel enregistrement de client ou en modifier un existant.

Placez les composants sur ce formulaire comme indiqué sur la figure 16.
My Visual Database – Manuel pratique 19/77

Figure 16

Créez un cinquième formulaire nommé frmTechList en cliquant sur le bouton .

Sur le formulaire créé, vous pourrez afficher tous les matériaux que vous possédez.

Vous serez également en mesure d'appeler un formulaire pour ajouter un nouveau matériel ou mo-
difier des informations sur un matériel existant.

Placez les composants sur ce formulaire comme indiqué sur la figure 17.

Figure 17
My Visual Database – Manuel pratique 20/77

Créez la sixième et dernière form de notre projet, nommée frmTech, en cliquant sur le bouton .

Ce formulaire est conçu pour entrer un nouvel équipement ou en modifier un existant.

Placez les composants sur ce formulaire comme indiqué sur la Figure 18.

Figure 18

Si vous lancez le projet en cliquant sur le bouton et si vous cliquez sur les boutons du formulaire,
vous remarquerez que rien ne se produit.

En effet, les composants de nos formulaires créés ne sont pas encore configurés et aucune action n'a
été assignée aux boutons. Par conséquent, nous allons procéder à la dernière étape de création
d'une application, en configurant les composants sur les formulaires.

Généralement, la configuration des composants se réduit à l'affectation d'actions aux boutons et aux
composants pour la saisie d'informations (tels que : etc.), indiquant à quelle table et à
quel champ ils appartiennent.

Commençons par les boutons. Vous devez définir l'action du bouton via le panneau "Propriétés du
composant" (Properties), en utilisant la propriété Action (figure 19).
My Visual Database – Manuel pratique 21/77

Figure 19

Dressons la liste des actions disponibles pour les boutons que nous utiliserons pour personnaliser
notre projet:

▪ Rechercher - recherche les enregistrements dans la base de données.


▪ Nouvel enregistrement - appelle un formulaire pour créer un nouvel enregistrement.
▪ Sauver l'enregistrement - sauve l'enregistrement dans la table et ferme le formulaire (si cette
option est cochée).
▪ Afficher l'enregistrement - appelle le formulaire et le remplit avec les données propres à
l'enregistrement sélectionné de la table.
▪ Supprimer l'enregistrement - supprime l'enregistrement sélectionné dans le composant de la table.
▪ Afficher le formulaire - affiche un formulaire sans autre action.
▪ Fermer le formulaire - ferme le formulaire.

Personnalisation de la form "Form1" :

1. Bouton "Nouvelle location"

Ce bouton est destiné à créer un nouvel enregistrement, nous sélectionnons donc l'action Nouvel
enregistrement (New record) pour ce bouton. Cette action appellera le formulaire à partir duquel
le nouvel enregistrement sera créé. Pour cela, nous avons un formulaire nommé frmRent. Réglez
ce bouton comme indiqué sur la Figure 20.
My Visual Database – Manuel pratique 22/77

Figure 20

Parfois, au lieu de choisir l'action "Nouvel enregistrement" (New record),


les utilisateurs choisissent l'action "Afficher le formulaire" (Show form).
Erreur à ne pas commettre !

2. Bouton "Modifier"

Il est destiné à modifier l'enregistrement que l'utilisateur aura sélectionné à partir du composant
TableGrid . Choisissez l'action "Afficher l'enregistrement" (Show record).

Pour configurer cette action, vous devez spécifier le formulaire qui sera utilisé pour modifier
l'enregistrement. Réglez ce bouton comme indiqué sur la Figure 21.

Figure 21

3. Bouton "Supprimer"

Il est conçu pour supprimer l'enregistrement sélectionné par l'utilisateur dans le composant
TableGrid.

Configurez ce bouton comme indiqué dans la Figure 22. L’option cochée indique que la
suppression se fera avec confirmation.
My Visual Database – Manuel pratique 23/77

Figure 22

4. Bouton "Rechercher"

Il est conçu pour rechercher des enregistrements. Les critères de recherche sont entrés dans des
composants tels que . Chaque composant peut servir de critère pour
rechercher un champ spécifique dans la table, par exemple, rechercher uniquement par nom
d'entreprise ou numéro de téléphone.

Selon le type de champ dans la table, vous devez utiliser le composant approprié. Vous pouvez voir
ci-dessous quels types de champs peuvent être utilisés par le composant impliqué dans la recherche.

TextBox – types de champs : “TEXT” “INTEGER” “CURRENCY”»


ComboBox – Liste déroulante. Ne recherche que sur les clés étrangères
Checkbox – Case à cocher. Ne recherche que sur les champs de type "YES / NO"
DateTimePicker – Recherche sur des champs de type "DATE / TIME" "DATE" "TIME"
TableGrid – Recherche sur des clés étrangères. Bien que le composant soit généralement
utilisé pour afficher les résultats des recherches, il peut être utilisé avec des critères de
recherche portant sur des clés étrangères car il est réellement similaire à ce composant
Counter – Ne recherche que sur des champ de type "Counter" (Compteur)

Maintenant, configurez ce bouton. Pour ce faire, sélectionnez l'action "Rechercher". La configuration


du bouton comprend quatre étapes :

1. Sélectionnez les composants qui seront utilisés comme critères de recherche pour nos
enregis-trements. Dans notre cas, choisissez les composants suivants : ComboBox1 (client),
ComboBox2 (équipement), DateTimePicker1 (DateStart), DateTimePicker2 (DateEnd).

2. Sélectionnez la table dans laquelle nous allons rechercher. Puisque nous allons chercher des
données de location, nous sélectionnons la table DB "Rent".

3. Sélectionnez les champs de la table que vous souhaitez afficher à la suite de la recherche
dans le composant TableGrid . Dans notre cas, choisissez les champs suivants:
Rent.DateStart, Rent.DateEnd, Rent.TotalCost, Client.Name, Equipment.Tech.
My Visual Database – Manuel pratique 24/77

4. Sélectionnez le composant TableGrid1 qui affichera le résultats de votre recherche.

Quand vous utilisez un bouton lançant l'action "Rechercher" (Search), si vous voulez
afficher tous les enregistrements, il suffit de cliquer dessus en laissant à vide les
critères de recherche.

La Figure 23 montre ce à quoi devrait ressembler le paramétrage du bouton "Rechercher.

Figure 23

5. Bouton “Client”

Il est conçu pour afficher la form sur laquelle vous serons en mesure de voir tous vos clients. Vous
sélectionnez l'action "Afficher le formulaire" (Show Form) et sélectionnez également le formulaire
"frmClientList", qui sera appelé en cliquant sur ce bouton (Fig. 24).
My Visual Database – Manuel pratique 25/77

Figure 24

6. Bouton “Equipements”

Il est destiné à appeler la form sur laquelle vous serez en mesure d’afficher tous les matériels que
vous possédez. Vous sélectionnerez l'action "Afficher le formulaire" (Show form) et sélectionnerez
également le formulaire "frmTechList", qui sera affiché en cliquant sur ce bouton (Fig. 25).

Figure 25

Ceci achève la configuration des boutons sur le formulaire. Il reste à configurer les composants
ComboBox et DateTimePicker , qui sont également présents sur Form1.

La configuration de tels composants consiste, en règle générale, à préciser à quel champ spéci-fique
de la table ils appartiennent. Pour les composants présents, ce sera donc les propriétés TableName
et FieldName, l'exception concernera uniquement le composant ComboBox , pour lequel la
propriété ForeignKey sera utilisée au lieu de la propriété TableName, ce qui génèrera une clé
étrangère. Ainsi, le bouton "Rechercher" (Search) saura quel champ de la table rechercher quand
l'utilisateur aura entré les critères de recherche dans le composant. Vous allez procéder à la
configuration de ces composants.
My Visual Database – Manuel pratique 26/77

Commençez par le composant DateTimePicker1 (Début location). Dans la table Rent, la date de
début de lalocation est contenue dans le champ DateStart. Donc dans la propriété TableName, vous
sélectionnez la table Rent et dans la propriété FieldName le champ DateStart, comme montré à la
figure 26.

Figure 26

Pour le composant DateTimePicker2 (Fin location), faites de même, mais dans la propriété
FieldName, sélectionnez le champ DateEnd.
Comme mentionné ci-dessus, la configuration des composants ComboBox diffère en ce que la
propriété ForeignKey est utilisée en lieu et place de la propriété TableName. Ce composant est lié à
la clé étrangère de la table, de sorte qu’il affiche les entrées de la table référencée par la clé
étrangère, permettant à l'utilisateur de sélectionner une entrée de cette table.

Peut-être que cela peut sembler confus, alors regardons un exemple : configurons le ComboBox1
(Client).

Le bouton "Rechercher" est configuré pour qu'il aille chercher dans la table des locations (Rent).
Dans cette table, il existe une clé étrangère Rent.id_Client, que vous devez sélectionner dans la
propriété ForeignKey du composant ComboBox1 (Client). Comme son nom l'indique, la clé étrangère
id.client fait référence à la table Client. À partir du composant ComboBox1, l'utili-sateur peut
sélectionner depuis la liste des clients.

Il restera à sélectionner le champ de la table dans la propriété FieldName, dans votre cas, ce sera le
champ Name.
Par conséquent, la liste des noms des clients sera visible dans le composant (voir Figure 27).
My Visual Database – Manuel pratique 27/77

Figure 27

Pareillement, configurez le composant ComboBox2 (Equipement), dans la propriété ForeignKey,


sélectionnez la clé étrangère Rent.id_Equipment et dans la propriété FieldName, le champ Tech

Vous n'avez configuré un seul formulaire, mais sans tenir compte du formulaire et de son ob-jectif,
les paramètrages du bouton et du composant sont plutôt monotones. Pour les boutons, vous devez
sélectionner l'action correcte et pour les composants, vous devez sélectionner le champ de la table à
laquelle ils appartiennent en utilisant les propriétés TableName et FieldName, dans le cas du
composant ComboBox, au lieu de la propriété TableName, vous utiliserez la propriété ForeignKey.

Par conséquent, plus tard, lors de la configuration des autres formulaires, je ne listerai que les
actions des boutons que vous devez affecter et les champs de la table à affecter aux composants du
formulaire. Je ne m'étendrai que sur la configuration de certains boutons.

Configuration de la form frmRent :

ComboBox1 (Client)
ForeignKey = Rent.id_Client
FieldName = Name

ComboBox2 (Equipment)
ForeignKey = Rent.id_Equipment
FieldName = {Tech} {CostPerDay} *б. * vous en saurez plus sur cette entrée ci-dessous

DateTimePicker1 (Début de la location)


TableName = Rent
FieldName = DateStart
My Visual Database – Manuel pratique 28/77

DateTimePicker2 (Fin de la location)


TableName = Rent
FieldName = DateFin

Edit1 (Coût)
TableName = Rent
FieldName = TotalCost

Dans la propriété Fieldname du composant Combobox, vous pouvez spécifier


plusieurs champs à afficher. Pour ce faire, ils doivent être entourés d'accolades.
Par exemple, vous avez besoin de connaître le coût {Tech} {CostperDay} * 6.
Tech et CostPerDay sont les noms des champs de la table. Le reste sans les
accolades sera inchangé. Vous pouvez donc lire: "bulldozer TM-10 12000 * 6".

Encore un détail sur le bouton Button1 (Save). Il est utilisé pour enregistrer des données dans la
table. Pour ce bouton, sélectionnez l'action "Sauver l'enregistrement" (Save record).

Dans les paramètres de ce bouton, il vous suffit de choisir les composants du formulaire qui seront
utilisés pour stocker les informations. Dans votre cas, vous devez sélectionner tous les composants. Il
est également nécessaire de sélectionner la table dans laquelle les informations seront sauvegar-
dées, dans votre cas, c'est la table des locations (Rent) (figure 28).

Figure 28
My Visual Database – Manuel pratique 29/77

Jetez également un coup d'œil à la configuration de Button2 (Quitter).

Ce bouton referme le formulaire sans enregistrer les informations dans la base de données. Pour
cela, choisissez simplement l'action "Fermer le formulaire" (Close form). Cette action ne nécessite
aucun paramètre (Figure 29).

Figure 29

Configuration de la form frmClientList :

Ce formulaire est destiné à visualiser tous vos clients présents dans la table. On trouve également sur
cette form des boutons permettant de créer, modifier ou supprimer un client de la table.

Pour que tous les clients de la table apparaissent dans le composant Grille (TableGrid1) , vous
devez le configurer. Pour accéder à la boîte de dialogue des paramètres de ce composant, cliquez sur
le panneau "Propriétés" (Properties) du composant puis sur l'élément "Paramètres" (Settings). (Fig.
30)

Figure 30
My Visual Database – Manuel pratique 30/77

Parmi les paramètres de ce composant, vous devez sélectionner la table à partir de laquelle vous
souhaitez afficher et sélectionner les champs nécessaires à l’affichage dans ce composant. Configurez
le comme indiqué dans la Figure 31.

Figure 31

Prêtez attention à la coche "Afficher tous les enregistrements de la table" (en rouge), elle doit être
sélectionnée. Ensuite, il suffit de lister les paramètres des boutons de création, de modification et de
suppression des enregistrements (nous avons déjà vu ces boutons en détail lors de la configuration
de Form1).

Nouveau client
Action = New record
Form = frmClient

Modifier
Action = Show record
Table component = TableGrid1
Form = frmClient

Supprimer
Action = Delete record
Table component = TableGrid1
My Visual Database – Manuel pratique 31/77

Je vous suggère ensuite de personnaliser le reste des forms, vous avez seulement besoin d'assigner
les bonnes actions aux boutons et au reste des composants, en spécifiant correctement les pro-
priétés TableName et FieldName.

La form frmClient est destinée à créer ou modifier des données client, sa configuration est similaire à
celle de la form frmRent.

La configuration de la form frmTechList est similaire à celle de la form frmClientList.

La configuration de la form frmTech est similaire à celle des forms frmRent et frmClient.

Une fois achevés les paramétrages des forms restantes, il sera temps de tester votre projet en
cliquant sur le bouton .

Avant d'entrer des données sur la location d'équipements, vous devez saisir tous vos clients. Pour ce
faire, cliquez sur le bouton «Clients» situé sur la form principael. La form frmClientList apparaît à
partir de laquelle vous pouvez entrer des clients en cliquant le bouton "Nouveau client" (Figure 32).

Figure 32

En outre, vous devez entrer dans la table les équipementss que vous possédez. Pour cela, sur la form
principale Form1, se trouve un bouton "Equipements", qui appellera la form frmTechList. Appuyez
sur le bouton "Nouveau matériel" pour entrer les données requises (Figure 33).
My Visual Database – Manuel pratique 32/77

Figure 33

Commençez à entrer des informations sur la location de vos équipements. Pour ce faire, sur la form
principale, cliquez sur "Nouvel équipement".

Comme vous pouvez le voir maintenant, vous avez le client et l'équipement loué par lui, (vous les
avez choisis depuis une liste).

Il reste à saisir manuellement les dates du début et de la fin de la location, ainsi que le coût total de
celle-ci (Figure 34).
My Visual Database – Manuel pratique 33/77

Figure 34

Peut-être vous attendiez-vous à ce que les «coûts» soient calculés automatiquement


après que vous avez spécifié le matériel et les termes de la location, mais pour ce faire,
vous devez exécuter un travail dont nous parlerons un peu plus tard. Pour l'heure, vous
devez donc calculer indépendamment le "coût".

Sur la figure 35, vous pouvez voir la fenêtre principale du programme avec des informations sur le
locations.
My Visual Database – Manuel pratique 34/77

Figure 35

Désormais, à partir du formulaire principal (Form1), vous pouvez utiliser la récupération de don-
nées, par exemple, en sélectionnant un client dans la liste déroulante "Client", puis en cliquant sur le
bouton "Rechercher", vous aurez toutes les données sur ce client.

Félicitations ! Votre première application utilisant une base de données est prête !

Si vous ouvrez le dossier du projet, vous trouverez un fichier eхecutable (.ехе). Ce projet pourra être
exécuter sur n'importe quel ordinateur, sans avoir à installer le programme My Visual Database.
Copiez simplement le dossier de votre projet avec tous ses fichiers.

Pour être honnête, l'interface que vous avez créée présente un inconvénient.

Par exemple, lorsqu'un nouveau client (dont les informations ne sont pas encore dans la table) veut
louer, il faut d'abord cliquer sur le bouton "Clients" pour entrer ses données. Ensuite, sur la form
principale (Form1), cliquer sur le bouton "Nouvelle location". C'est à dire, sur la form "frmRent",
sélectionner le client dans la liste des clients et entrer seulement ensuite les données sur le matériel
loué par lui. Et maintenant, imaginez que le client veut louer 10 matériels différents ? Vous devrez
sélectionner le même client 10 fois dans la liste de la form "frmRent". D'accord, ce n'est pas trèst
pratique !

Par conséquent, je suggère que nous remodelions ce projet, dans lequel nous allons créer une autre
interface plus pratique. La structure de la base de données restera la même.

Ne pensez pas que c'est un caprice. Avec la la nouvelle interface, nous envisagerons la possibilité de
sortir des enregistrements enfants pour le composant TableGrid1.
My Visual Database – Manuel pratique 35/77

Alors, allons-y !

Créez un nouveau projet (Menu: Fichier> Nouveau projet) et enregistrez-le immédiatement dans un
dossier séparé, par exemple, «Rent Project 2». Nommez le projet "Rent2", comme le montre la
figure 36.

Figure 36

Ensuite, dans l'onglet "Database Table", vous devez créer exactement la même structure de bases de
données que dans le projet précédent.

Sur la figure 37, vous pouvez voir la structure des tables.


My Visual Database – Manuel pratique 36/77

Figure 37

Comme vous connaissons déjà le processus de création des tables et des champs, vous ne vous
attarderez pas là-dessus en détail.

Cliquez sur l'onglet "Form1" et nous parlerons du concept des fichiers enfants.

La principale différence entre notre projet actuel et sa version précédente sera que sur la form
"frmClient", qui est destinée à créer / modifier un client, vous allez également placer un composant
TableGrid, qui affichera les enregistrements des équipements loués par ce client. En d'autres
termes, les enregistrements enfants appartenant au client seront affichés sur ce composant.

Si cela vous semble un peu confus, jetez un oeil à la figure 38.

Prenons l'exemple d'un client nommé "KH Services", qui a loué des matériels de la table "Rent".

Comme vous pouvez le voir, ceux-ci sont marqués en rouge et ces enregistrements sont des enfants,
en relation avec le client "KH Services" de la table "Rent".

Notez également que pour les enregistrements enfant, il existe toujours une clé étrangère qui fait
référence à l'enregistrement parent.
My Visual Database – Manuel pratique 37/77

Figure 38

Et pour que cela devienne clair, je vais aller plus loin en avant et le montrer à ressembler le
formulaire "FrmClient" dans le projet déjà terminé (Figure 39).

Figure 39

Pour rendre l'utilisation du programme plus pratique, au lieu des enregistrements des locations, je
propose d'afficher la liste des clients sur la form principale ("Form1"). Aussi sur la form permettant
My Visual Database – Manuel pratique 38/77

de créer / modifier le client ("frmClient"), placez un composant TableGrid qui affichera les matériels
loués par le client. Pour parler un langage clair, nous montrerons les enregistrements enfants du
client. Aussi sur cette form, il y aura des boutons pour ajouter/modifier/supprimer des matériels
loués par ce client.

Ainsi, lorsqu'un nouveau client viendra chez vous, il suffira de cliquer sur le bouton "Nouveau client"
sur la form Form1, après quoi le formulaire "frmClient" apparaîtra dans lequel vous entrerez ses
données et, sur ce même formulaire, vous appuyerez sur le bouton "Nouvelle location", ce qui
provoquera l'apparition de la form "frmRent", sur lequel vous sélectionnerez le matériel loué, les
dates de location et leurs coûts.

En outre, si le client a besoin de louer le même équipement 10 fois, vous n'aurez plus à sélectionner
10 fois ce client pour créer un fichier de location.

Commencez par créer les forms, listons-les :

1. Form1

Formulaire pour rechercher des clients. Ce même formulaire sera le principal, il apparaîtra
dès le lancement de votre application.

2. frmClient

Form de création et de modification d'un client. Cette form écrira des données dans la table
Client. Également sur la form, il y aura une liste déroulante des matériels loués par ce client.

3. frmRent

Form pour créer et modifier un enregistrement de location. Cette form écrira les données
dans la table Rent.

4. frmTechList

Form affichant une liste des matériels.

5. frmTech

Form permettant de créer et d’afficher des informations sur un matériel. Cette form écrira
les données dans la table Equipment.

Comme vous pouvez le constater, vous avez désormaist besoin d'une form en moins, ce qui
est plutôt une bonne chose. Allez-y !

La Form1 :

Placez les composants sur la Form1 comme présenté sur la Figure 40.
My Visual Database – Manuel pratique 39/77

Figure 40

Sur cette form, vous pourrez rechercher le client par son nom ou son numéro de téléphone.

Il existe également des boutons permettant d'appeler une form pour créer ou modifier un client, ou
encore supprimer ce client de la table.

Et un bouton nommé "Equipements", qui appellera une autre form affichant une liste des matériels
que vous possédez.

La form frmClient :

Créez une nouvelle form en cliquant sur le bouton .


Donnez lui comme nom du : frmClient.
Disposez les composants sur cette form comme indiqué sur la Figure 41.
My Visual Database – Manuel pratique 40/77

Figure 41

Cette form offre une importante différence par rapport à celle de votre projet précédent. Désor-
mais, la location de matériels ne se trouve plus sur la form principale, mais sur la form frmClient, et
sur cette form, vous voyez non seulement les données du client, comme son nom et son téléphone,
mais également tous les enregistrements associés aux locations de ce client.

La form frmRent :
Créez un nouveau formulaire en cliquant sur le bouton .
Entrez comme nom de la form : frmRent
Placez les composants sur cette form comme indiqué sur la Figure 42.

Figure 42
My Visual Database – Manuel pratique 41/77

Cette forme est conçue pour saisir l'enregistrement d'une localisation. Notez que, contrairement à
votre projet précédent, il n'y a pas de liste déroulante à partir de laquelle vous pourriez choisir le
client qui a loué un équipement spécifié.

Le fait est que la form frmRent sera appelée à partir du formulaire frmClient, ainsi le programme
associera automatiquement le client à ce formulaire et l'enregistrement de l'équipement loué appar-
tiendra automatiquement au client dont les données seront présentes sur le formulaire frmClient. En
d'autres termes, vous n'avez plus besoin de vous inquiéter, le programme associera automatique-
ment le client à l'équipement qu'il a loué.

La form frmTechList :
Créez un nouveau formulaire en cliquant sur le bouton .
Donnez lui comme nom : frmTechList.
Disposez les composants sur cette form comme indiqué dans la Figure 43.

Figure 43

Ce formulaire est exactement le même que dans le projet précédent.

Sur la form créée, vous serez en mesure de voir tout les matériels que vous possédez, avec la pos-
sibilité d'appeler un formulaire pour ajouter de nouveaux équipements ou modifier les informations
sur des matériels existants.

La form frmTech :
Créez un nouveau formulaire en cliquant sur le bouton .
Donnez lui le nom : frmTech.
Disposez les composants sur cette form comme indiqué sur la Figure 44.
My Visual Database – Manuel pratique 42/77

Figure 44

Cette form est exactement la même que dans le projet précédent.

Elle est conçue pour créer/modifier l'équipement que vous possédez, en indiquant son coût de
location par jour.

Passez à la dernière étape de la création de l'application, pour configurer les composants sur le
formulaire.

Comme vous vous en souvenez, la configuration des composants se réduit à l'affectation d'actions
aux boutons et les composants destinés à entrer des informations (comme ,etc.)
indiquent à quelle table et à quel champ ils appartiennent.

Vous allez procéder à la configuration des formulaires. Je n'indiquerai que les actions à affecter aux
boutons et les champs de la table à attribuer aux composants de la form. Je vais m'attarder sur les
composants dont le réglage est différent du projet précédent.

Configuration de la Form1 :

Nom Client (EditBox)


TableName = Client
FieldName = Name

Téléphone (EditBox)
TableName = Client
FieldName = Phone

Nouveau client (Button)


Action = New record
Form = frmClient

Modifier (Button)
Action = Show record
Table component = TableGrid1
Form = frmClient
My Visual Database – Manuel pratique 43/77

Supprimer (Button)
Action = Delete record
Table component = TableGrid1

Davantage de détails sur le paramétrage du bouton Rechercher.

Comme je l'ai mentionné ci-dessus, sur la form principale, vous verrez désormais les enregistrements
des clients, plutôt que les enregistrements des locations, comme dans le projet précédent : Ce
bouton recherchera donc les données dans la table Client au lieu de la table Rent.

Sur la Figure 45, vous pouvez voir les paramétrages du bouton Rechercher :

Figure 45
My Visual Database – Manuel pratique 44/77

Configuration de la form frmClient :

Nom client (EditBox)


TableName = Client
FieldName = Name

Téléphone (EditBox)
TableName = Client
FieldName = Phone

Nouvelle location (Button)


Action = New record
Form = frmRent

Modifier (Button)
Action = Show record
Table component = TableGrid1
Form = frmRent

Supprimer (Button)
Action = Delete record
Table component = TableGrid1

Davantage de détails sur les paramètres du bouton Sauver.

La figure 46 vous présente les paramétrages de ce bouton :

Figure 46
My Visual Database – Manuel pratique 45/77

Notez que le composant TableGrid1 ne participe pas à la sauvegarde de l'enregistrement, il affiche


simplement les enregistrements des locations appartenant au client sur le formulaire. Vous le laissez
donc dans la liste sur la gauche.

Examinez de plus près le réglage (Figure 47) du composant TableGrid1 (équipements loués par le
client). Sur ce composant, vous verrez les enregistrements des locations rattachées au client, dont
vous voyez les données sur la form en cours (frmClient).

Figure 47

Notez l'option sélectionnée "Afficher les enregistrements enfants (si présents)" (Show child records
(if present)). Ainsi, sur ce composant, les enregistrements enfants seront automatiquement affichés,
dans votre cas, en rapport avec le client.

En d'autres termes, vous verrez les enregistrements des locations appartenant au client.

Si quelqu'un a oublié ce que les enregistrements enfant sont, vous pouvez regarder la figure 48.
My Visual Database – Manuel pratique 46/77

Figure 48

Par exemple,. si vous voyez des données sur le client KH Services sur la form frmClient, alors sur le
composant TableGrid1, vous verrez les enregistrements enfants de la table Rent, qui sont marqués
en rouge dans la figure 48.

La configuration d'autres forms, telles que frmRent, frmTechList, frmTech, n'est pas différente de
celles de notre projet précédent, configurez-les vous-même.

Une fois que vous aurez achevé les paramétrages des forms restantes, il sera temps de lancer votre
projet en cliquant sur le bouton et de tester votre travail.

Comme dans le projet précédent, vous devez d'abord ajouter à la base de données les matériels que
vous possédez et leur coût de location pour 1 journée.

Pour cela, sur la form principale, cliquez sur le bouton "Equipements" (Fig.49).
My Visual Database – Manuel pratique 47/77

Figure 49

Après avoir entré dans la table tous les matériels que vous possédez, vous pouvez directement com-
mencer à travailler.

Disons que KH Services vous a demandé les locations d'un bulldozer TM-10, d'un camion-grue K-4561
et d'un tracteur Kenworth W900.

Si c’est la première fois que cette société vous a sollicité, alors sur la form principale, vous cliquerez
sur le bouton "Nouveau client".

La form frmClient apparaît à partir de laquelle vous entrerez les données sur ce client et sur la même
form, vous cliquerez sur le bouton "Nouvelle location" afin d'affecter à ce client les matériels qu'il
veut vous louer (figure 50).
My Visual Database – Manuel pratique 48/77

Figure 50

Notez que si ce client existe déjà dans la table, inutile de le recréer.

Au lieu de cela, vous devriez le trouver sur la form principale et cliquez sur le bouton "Modifier", qui
appellera le formulaire frmClient, où vous affecterez également le prochain matériel loué en utilisant
le bouton "Nouvelle location".

Sur la form principale, en utilisant le champ "Nom du client", vous pouvez rechercher dans la base de
données pour trouver le client.

Par défaut, la recherche est effectuée sur le nom de KH Services.

Vous devez également entrer son nom dans la EditBox, ce qui n'est pas toujours pratique.

Par conséquent, dans les paramètres de cette zone de texte, vous pouvez modifier le mode de
recherche partielle, de sorte que vous trouverez le client KH Services même si vous entrez
simplement service comme critère de recherche.

Pour ce faire, recherchez la propriété Filter et sélectionnez % s% comme indiqué dans la Figure 51.
My Visual Database – Manuel pratique 49/77

Figure 51

2.2 Normalisation de la structure de la base de données


Faisons une pause dans la pratique et étudions une théorie qui nous aidera à éviter les erreurs asso-
ciées à la conception d'une structure de base de données.

Parlons de la normalisation de la base de données. Si quelqu'un préfère une explication dans un style
académique, il peut obtenir des informations via ce lien Wikipédia :

https://fr.wikipedia.org/wiki/Forme_normale_(bases_de_donn%C3%A9es_relationnelles)

Je vais essayer d'expliquer les principes de la normalisation dans un langage plus simple utilisant des
exemples. En premier lieu, vous devez comprendre pourquoi il est nécessaire de normaliser la struc-
ture d’une base de données.

La normalisation est un ensemble de règles auxquelles vous devez adhérer lors de la création de la
structure de la base de données. Cela vous aidera à éviter les erreurs dans cette structure, qui peu-
vent conduire à avoir des données redondantes, voire contradictoires.

Sans le savoir, depuis le début du livre, vous procédiez déjà à la normalisation, en considérant les
problèmes de stockage des données dans une table et en les divisant en plusieurs tables plus petites.

Imaginez que vous ne connaissiez pas les règles de conception d'une base de données et que vous
deviez créer une table avec une structure similaire à cellle de la Figure 52 :
My Visual Database – Manuel pratique 50/77

Figure 52

Procédez à la normalisation.

La première forme normale

En langage académique, la définition de la première forme normale est :

La variable de rapport est dans la première forme normale si et seulement si, dans toute
valeur admissible de la relation, chacun de ses tuples ne contient qu'une seule valeur pour
chacun des attributs.

En termes simples, il ne devrait pas y avoir plusieurs valeurs dans un champ : un champ = une valeur.
Dans votre exemple, considérez à la colonne "Hobby", dans laquelle les passe-temps de la personne
sont séparés par une virgule. Rappelez-vous : ceci n'est pas autorisé .

Pour garantir que la table ne viole pas cette règle, vous devrez créer des enregistrements supplé-
mentaires pour chacun des passe-temps de la personne, c'est-à-dire dupliquer les données, créant
ainsi intentionnellement de la redondance dans la table (Figure 53).

Figure 53

La règle de la deuxième forme normale nous aidera à nous débarrasser de cette redondance des
données.

La seconde forme normale

En langage académique, la définition de la seconde forme normale est :

La variable de rapport est dans la seconde forme normale si et seulement si elle est dans
la première forme normale et si chaque attribut non clé irréductiblement (fonction-
nellement complet) dépend de sa clé potentielle.

En langage clair, chaque table doit avoir une clé primaire qui identifie de manière unique l'entrée
dans la table. Dans notre cas, c'est la colonne avec le titre id, dans lequel l'identifiant de l'enregistre-
ment est stocké, il est unique pour chaque entrée de la table.
My Visual Database – Manuel pratique 51/77

Si vous utilisez le programme My Visual DataBase, lors de la création d'une table, cette
clé sera toujours créée automatiquement. Vous n'avez même pas besoin de vous en
préoccuper.

Cette règle stipule également qu'il ne devrait pas y avoir de données dupliquées dans la table
(redondance). Si vous regardez la table (Figure 53), qui est dans la première forme normale, certains
enregistrements contiennent les mêmes données, c'est-à-dire que les données sont dupliquées. La
raison en est la colonne "Hobby".

Pour résoudre ce problème de la redondance des données, vous devez créer une autre table, dans
laquelle vous stockerez le passe-temps du personnel et il y aura également dans la table une clé
étrangère qui déterminera quelle personne a un tel passe-temps spécifié.

Maintenant que vous avez deux tables, vous pouvez créer n'importe quel passe-temps appartenant
à une personne, évitant ainsi la redondance des données. Pour le comprendre, regardez la figure 54.

Figure 54
La troisième forme normale

En langage académique, la définition de la troisième forme normale est :

La variable de rapport est dans la troisième forme normale si et seulement si elle est dans
la deuxième forme normale, et s'il n'y a pas de dépendances fonctionnelles transitives des
attributs non clés pour les clés.

La troisième forme normale est nécessaire pour contrer la dépendance transitive.

D'abord, voyons ce qu'il en est. Notez que dans la table des Locations (Figure 53), il existe des
colonnes Ville et Index. Malheureusement, les gens peuvent se tromper. Supposons que la personne
qui remplit la table fasse une erreur et saisisse un employé habitant Yaroslavl Tver, alors devriez-vous
l’accepter? Si oui, vous obtiendrez des données contradictoires.

Ainsi, les colonnes City et Index dépendent-elles les unes des autres. Mais si nous connaissons
l'Index, nous pouvons trouver la ville par le biais de cet index. Donc, pourquoi ne pas stocker uni-
quement l'index dans la table des effectifs?
My Visual Database – Manuel pratique 52/77

Maintenant, pour se débarrasser de cette dépendance transitive, vous devez créer deux autres
tables. Une table avec les noms des villes et une table avec les index, dans laquelle il y aura égale-
ment une clé étrangère, qui déterminera à quelle ville se réfère l'index (Fig. 55).

Figure 55

Dans la pratique, vous n'utiliserez pas toujours la troisième forme normale, laissant des champs avec
une dépendance transitive.

Si vous concevez une base de données qui sera utilisée, par exemple, dans un Manuel, vous pouvez
la remplacer et la laisser tel quelel, en sacrifiant, par souci de simplicité, l'émergence possible de
données conflictuelles. Mais si vous concevez une base de données à utiliser, par exemple, dans le
secteur bancaire, à votre place, je n'ignorerais pas la troisième forme normale.

Revenons à la figure 55, car dans la table Persons, il y a deux autres champs avec une dépendance
transitive. Ces champs sont Salaire et Taxe. Supposons que vous imposiez une taxe fixe de 13%,
connaissant le salaire, vous pouvez toujours calculer la taxe. Normalement, vous n'avez pas besoin
de stocker dans une table des données qui peuvent être obtenues à partir d'autres champs de cette
table, de sorte que vous pouvez supprimer le champ Tax en toute sécurité.

Une fois que vous aurez compris ces règles, elles vous sembleront tout à fait
naturelles. Lors de la conception de bases de données, vous ne remarquerez
même pas à quel point vous allez instinctivement complètement les adopter.

2.3. Suppressions en cascade et maintien de l'intégrité.


J'espère que vous n'avez pas oublié notre projet commun de gestion d'une location d'équipements
de construction. Vous continuerez à travailler avec lui, en ajoutant des fonctionnalités et en ap-
prenant de nouvelles fonctions sur les bases de données.

Lancez My Visual Database et ouvrez à nouveau votre projet, qui se trouve dans le dossier "Rent
project2". Cliquez sur l'onglet "Database Tables" pour voir les tables créées dans votre base de
données (voir Figure 56).
My Visual Database – Manuel pratique 53/77

Figure 56

Et parlons de la suppression en cascade.

Parfois, vous devez supprimer d’une base de données un client avec toutes les données qui lui sont
associées.

Dans votre cas, si vous supprimez le client (table Client), vous devez également supprimer toutes les
données sur ses locations de matériels (table Rent), sinon vous aurez des enregistrements locatifs
faisant référence à un client inexistant, ce qui est inacceptable.

Notez la clé étrangère client_id dans la table Rent, qui référence le client dans de la table Client.
Pour cette clé étrangère, il est nécessaire d'opérer ce qu'on appelle une suppression en cascade.

Par conséquent, lorsque le client est supprimé de la table Client, les enregistrements de la table Rent
sont automatiquement supprimés.

Tout ce qui fait référence au client est supprimé à cause de la clé étrangère id_Client.

En d'autres termes, la suppression d'un enregistrement parent supprimera également les enregis-
trements enfants.

Activez la suppression en cascade pour une clé étrangère, comme illustré à la Figure 57.
My Visual Database – Manuel pratique 54/77

Figure 57

En fait, sans la suppression en cascade, vous ne pourrez pas supprimer le client de la table Client car
celui-ci est enregistré ailleurs pour ses locations. En d'autres termes, dans la table Rent, il y a des
entrées pour lesquelles la clé étrangère client_id fait référence au client. De plus, un message vous
avertira.

Mais si aucune location n’a encore été enregistrée pour ce client, vous pouvez le supprimer de la
table Client car l'intégrité des données ne sera pas compromise.

La même chose peut être dite à propos de la clé étrangère id_Equipment dans la table Rent. Vous ne
pouvez pas supprimer un matériel de la table Equipment si au moins une entrée fait référence à cet
équipement dans d'autres tables.

Ainsi, la base de données conserve automatiquement son intégrité pour empêcher la situation où
une clé étrangère fait référence à un enregistrement inexistant.

Ainsi donc, en utilisant la suppression en cascade, vous supprimez l'enregistrement et toutes les
données associées à cet enregistrement dans les tables, ou vous ne supprimez rien du tout.

En général, il n'est pas autorisé de supprimer quoi que ce soit de la base de données,
mais il est recommandé de marquer l'entrée comme une archive en utilisant un
champ de type "Oui / Non".

2.4. Ajouter un type de client


Continuons notre pratique. Assurez-vous que vous pouvez attribuer un type au client, par exemple,
s'il s'agit de "Particulier" ou "Entité légale".
My Visual Database – Manuel pratique 55/77

Et puis une erreur peut se produire. Vous pouvez être fortement tenté de créer un nouveau champ
texte dans la table "Client", où vous entrez simplement le type de client. Par conséquent, vos don-
nées dans la table "Client" ressemblent, par exemple, à la Figure 58.

Figure 58

Faites attention à la colonne "Type de client". Selon le propos de cette colonne, vous ne pouvez avoir
que deux valeurs, "Entité Légale" ou "Personne physique", vous constatez donc la redondance
apparente des données, ce qui contredit la seconde forme normale (Chapitre 2.2).

Il ne sert à rien, pour chaque client, de saisir manuellement son type. Ceci est inacceptable lors de la
conception de bases de données. Par la suite, cela affectera ses performances, il y aura également
une plus grande probabilité d'erreurs. Par exemple, quelqu'un décide qu'il suffit d'écrire juste "Jur
Soc", ou "Yu.L.", perdant ainsi l'intégrité des données et compliquant grandement tout travail sur
elles.

Alors, que faire ?

La bonne solution consiste à créer une autre table dans laquelle on entrera les types de clients
autorisés, appelons-la "ClientType". Et dans la table "Client", créez une clé étrangère qui se référera
à la table "ClientType" pour que l'identifiant du type de client sélectionné soit sauvegardé. Pour le
rendre plus clair, jetez un oeil à la figure 59.

Figure 59

Par cette approche, vous n'avez pas, à chaque fois, besoin d'entrer manuellement le type de client , il
suffit de le sélectionner depuis la liste. En outre, vous pouvez ajouter de nouveaux types de clients au
tableau "ClientType", par exemple "Entrepreneur individuel", "Dupont S.A.", etc.
My Visual Database – Manuel pratique 56/77

En outre, rien ne vous empêche de renommer les types de clients, cela n'affecte pas l'intégrité des
données. Dans la clé étrangère "id_CustomerType" de la table "Client", seul l'identifiant numérique
du type client est stocké, et non sa représentation textuelle.

Une fois la partie théorique comprise, mettez-la maintenant en pratique:

1. Comme mentionné ci-dessus, vous devezs créer une autre table dans la base de données, appelez-
la "CustomerType".
2. Dans cette table, vous devez créer une colonne de type TEXT, appelez-le "TypeName".
3. Dans la table "Client", créez un lien vers la table "CustomerType".

En conséquence, vous devriez obtenir ce que montre la figure 60 :

Figure 60

Regardez les forms frmTechList et frmTech. Exactement les mêmes besoins doivent être créés pour
travailler avec les types de clients. La première consiste à afficher la liste des enregistrements ajoutés
et la seconde à créer/modifier des enregistrements.

Créez une nouvelle form nommée frmCustTypeList et placez dessus un composant TableGrid et trois
boutons, comme illustré dans la Figure 61.
My Visual Database – Manuel pratique 57/77

Figure 61

Créez également une form appelée frmCustTypeAdd, comme montré sur la Figure 62.

Figure 62

Il reste désormais à configurer les composants sur les forms créées.

Là encore, les paramétrages sont tout à fait simples.


My Visual Database – Manuel pratique 58/77

Configuration de la form frmCustTypeList :

TableGrid1

1. Accédez aux paramètres du composant TableGrid1 pour le configurer afin d'afficher


les données de la table "CustomerType".

2. Dans les paramètres de ce composant, ajoutez le champ "CustomerType.TypeName"


à la liste.

3. Sélectionnez l'option "Afficher tous les enregistrements de la table" (Show all records
from the table).

Ensuite, configurez les boutons pour créer, éditer et supprimer des entrées :

New client type


Action = New record
Form = frmCustTypeAdd

Modifier
Action = Show record
Table component = TableGrid1
Form = frmCustTypeAdd

Delete
Action = Delete record
Table component = TableGrid1

Configuration de la form frmCustTypeAdd :

Edit1 (Type Client)


TableName = CustomerType
FieldName = TypeName

Button1 (Sauver)
Action = Save record
Component to save = Edit1
Table = CustomerType

Personnalisation de la form Form1 :

La form avec ses nouveaux composants devrait ressembler à la Figure 63 :


My Visual Database – Manuel pratique 59/77

Figure 63

Sur le formulaire principal, vous ajouterez le composant ComboBox qui vous permettra de filtrer les
enregistrements par type de client.

ComboBox1 (type de client)


ForeignKey = Client.id_CustomerType
FieldName = TypeName

Allez ensuite dans les paramètres du bouton "Rechercher" pour ajouter ce composant (ComboBox1)
à la liste "1. Sélectionnez les composants impliqués dans la recherche", (Select the fields …). Ce
composant participera donc également à la recherche.

Dans la table "CustomerType", sélectionnez le champ "TypeName", afin qu'après la recherche, vous
sachiez à quel type appartient le client.

Placez un nouveau bouton sur la form qui appellera le formulaire "frmCustTypeList" afin que vous
puissiez ajouter les types de clients.

Types of customers (button)


Action = Show form
Form = frmCustTypeList

Configuration de la form frmClient :

Tout comme sur la form précédente, vous devez ajouter un composant ComboBox pour pouvoir
choisir le type auquel le client appartient.
My Visual Database – Manuel pratique 60/77

ComboBox1 (Type de client)


ForeignKey = Client.id_CustomerType
FieldName = TypeName

Enfin, dans les paramètres du bouton "Enregistrer", ajoutez le composant ComboBox1 à la liste
"1.Sélectionner les composants impliqués dans l'enregistrement de l'enregistrement" (Select the
components involved …) pour que les données de ce composant soient enregistrées.

La form devrait ressembler à celle illustrée à la Figure 64.

Figure 64

Vous pouvez maintenant lancer le projet et ajouter des types de clients en cliquant sur le bouton
"Types de clients" sur la form principale, comme illustré à la Figure 65.
My Visual Database – Manuel pratique 61/77

Figure 65

En ajoutant des types de clients, vous pouvez commencer à les utiliser pour les clients existants et
nouveaux, en indiquant le type auquel ils appartiennent (Figure 66).

Figure 66
My Visual Database – Manuel pratique 62/77

Et enfin, afin donner vie à l'interface, pour chaque bouton, vous pouvez sélectionner votre icône en
utilisant la propriété Icon (voir Figure 66a).

Figure 66a
My Visual Database – Manuel pratique 63/77

3. L’impression

3.1 Comment imprimer


Tôt ou tard, vous souhaiterez imprimer les informations contenues dans la base de données. Pour
cela, vous avez trois façons de procéder.

1. Le moyen le plus simple pour imprimer consiste à envoyer les données contenues dans le
composant TableGrid vers Microsoft Excel, puis à utiliser les fonctions intégrées de ce
programme pour les imprimer. Le bouton avec l'action "Ouvrir dans Excel" (Open in
Excel) vous aidera comme ceci (Figure 67).

Figure 67

2. Utilisez le document Microsoft Word comme modèle d'impression. Après avoir émis le
document d'une certaine manière, vous pouvez insérer des données dans des endroits
pré-préparés. Cette méthode implique l'utilisation d'un script simple, qui sera discuté
dans le chapitre sur les scripts de programmation.

3. Utilisez le concepteur d’état intégré. Cette méthode est la plus avancée et vous permet
d'implémenter n'importe quel rapport avec d'autres impressions et d'exporter vers
d'autres formats populaires (doc, xls, pdf et bien d'autres). Nous verrons cela en détail
dans le prochain chapitre.

3.2 Le concepteur d’état


Comme mentionné ci-dessus, le concepteur d'état intégré vous permet de mettre en œuvre un état,
quelle que soit sa complexité. Mais pour l'instant, nous ne parlerons que de ses principales
caractéristiques, qui, en règle générale, conviennent à la plupart des tâches.

A titre d'exemple, vous imprimerez un contrat simple, qui précise la responsabilité du client envers la
sécurité du matériel loué par lui. Cela ressemblera à la figure 68.
My Visual Database – Manuel pratique 64/77

Figure 68

Pour créer un état et l'imprimer, vous devez utiliser un bouton avec l'action "Rapport" (Report).
Placez le bouton sur la form principale (Form1) de votre projet et appelez-le "Contrat de
responsabilité", comme indiqué dans la figure 69.

En utilisant la propriété Icon, vous pouvez sélectionner l'icône "Printer".

Figure 69

Le réglage du bouton avec l'action "Rapport" (Report) est presque le même que celui du bouton avec
l'action "Recherche" (Search), car en fait les deux actions recherchent dans la base de données
l’extraction du résultat de la recherche, mais dans votre cas , le résultat de la recherche sera vu lors
de l'impression.

Le bouton "Rapport" (Report) est illustré à la Figure 70.


My Visual Database – Manuel pratique 65/77

Figure 70

Etape par étape, voyons de plus près ces paramètres :

1. Sélectionner les composants impliqués dans la recherche (Select the components …)


Ici, le composant TableGrid1 est sélectionné, dans lequel nous voyons tous nos clients,
mais le client a été sélectionné dans le composant TableGrid1.

2. Sélectionner la table où effectuer la recherche (Select the database table to search for).
Vous voulez imprimer des informations sur le client, sélectionnez la table Client.

3. Mise en forme du résultat (The result)


Dans la table, sélectionnez les champs nécessaires à votre état, dans votre cas, ce sera le
nom du client et son type (respectivement les champs Client.Name et
CustomerType.TypeName).
My Visual Database – Manuel pratique 66/77

4. Sélectionnez un modèle d’état (Select report file)

Puisque vous avez encore besoin de créer un modèle d’état, ce paramètre sera "Ouvrir le
concepteur d’état ..." (Open report designer).

Un modèle d’état est un fichier qui en déterminera l'apparence. Ce fichier est créé
par le concepteur d’état et sera enregistré dans le dossier Report de votre projet.

Pour créer un modèle d’état, vous devez lancer votre projet .

Dans le projet en cours, cliquez sur le bouton "Imprimer la responsabilité", créé précédemment, afin
d'ouvrir le concepteur d’état.

Créer un modèle simple n'est pas compliqué. Dans la Figure 71, vous pouvez voir où les objets ont
été placés. Faites de même.

Figure 71

Une fois que tout est prêt, allez dans le menu Fichier> Aperçu (Ctrl + P). Vous devriez voir un état
prêt à imprimer, le même que celui sur la Figure 68.

Il reste à enregistrer cet état dans un fichier via le menu Fichier> Enregistrer (Ctrl + S).

Nommez ce fichier, par exemple "Responsibility", comme indiqué dans la Figure 72.
My Visual Database – Manuel pratique 67/77

Figure 72

Dernière étape. Fermez le projet en cours et revenez aux paramètres du bouton "Contrat de
responsabilité".

Dans les paramètres "4. Sélectionnez le modèle de rapport" (Select report file), au lieu de "Ouvrir le
concepteur d'état", sélectionnez dans la liste le modèle de rapport précédemment enregistré
"Responsability.fr3", comme indiqué dans la Figure 73.

Figure 73

Maintenant vous pouvez relancer le projet. Après avoir sélectionné le client requis dans le
composant TableGrid1, cliquez sur le bouton "Contrat de responsabilité" pour afficher un état prêt à
imprimer avec les données du client sélectionné.

Parfois, il est pratique, mettre le bouton d'impression directement sur le formulaire d'ajout/
modification. Copiez donc le bouton "Contrat de responsabilité" sur le formulaire frmClient.

Dans les paramètres de ce bouton, supprimez le composant TableGrid1 de la liste "1. Sélectionnez
les composants impliqués dans la recherche". En fait, si le bouton avec l'action "Report" est placé
sur le formulaire à ajouter/modifier, il détectera automatiquement quel enregistrement envoyer à
l'imprimante.
My Visual Database – Manuel pratique 68/77

Créez un autre état, mais un peu plus complexe. Maintenant, vous devez imprimer les données sur le
client, avec toutes ses locations de matériels. Par conséquent, vous publierez un état comme celui
indiqué dans la Figure 74.

Figure 74

Placez ensuite sur la form principale (Form1) un nouveau bouton appelé "Matériels loués", comme
indiqué dans la Figure 75.

Figure 75

Pour ce bouton, sélectionnez l’action "Report", les paramétrages de ce bouton sont affichés sur la
Figure 76.
My Visual Database – Manuel pratique 69/77

Figure 76

Les réglages de ce bouton sont pratiquement les mêmes que ceux du bouton "Contrat de
responsabilité", seuls les nouveaux champs que vous devez voir dans le rapport seront ajoutés à
l'item "3.Le résultat", (The result).

Ici, il est intéressant de mentionner une nuance. Comme vous pouvez le voir dans les paramètres,
pour sélectionner le résultat, vous sélectionnez les champs de 4 tables différentes (Client,
Equipement, Rent, CustomerType). Dans d'autres programmes, il est nécessaire de compiler une
requête SQL qui spécifiera manuellement comment une table est associée à une autre table et dans
quel ordre.

Le programme My Visual Database tente de comprendre par lui-même comment lier les tables les
unes aux autres pour obtenir exactement les données que vous attendez, éliminant ainsi la nécessité
d'étudier le langage de requête SQL.
My Visual Database – Manuel pratique 70/77

Malheureusement, le programme ne peut pas toujours prédire le besoin de lier des tables pour
obtenir les données que vous souhaitez afficher. Cette situation peut se produire lors-que vous devez
associer 3 tables ou plus sans liens évidents entre elles.

Ainsi, par exemple, il n'y a pas de lien entre la table "Client" et "Equipment", la relation entre ces
tables est réalisée par le biais d'une troisième table "Rent".

Que faudrait-il faire? Dans l'onglet "Tables de la base de données", (Database tables), sous chaque
table, il y a une coche "La table est un dictionnaire" (The table is a dictionnary).

Sur cet onglet, vous devez noter quelles tables de votre projet sont des dictionnaires. Mais comment
savoir quelles tables sont des dictionnaires?

Des exemples de tables dictionnaires peuvent contenir des noms de pays (Russie, France,
Angleterre), des statuts (ouverts, fermés), des types (personne morale, individu), des noms avec des
prix, etc.

En règle générale, de telles tables sont remplies en premier lieu lorsque vous commencez à travailler
avec elles et ne seront pas modifiées plus tard.

Dans votre projet, les tables dictionnaire peuvent inclure "CustomerType" et "Equipment", cochez la
case "La table est un dictionnaire" sous ces tables.

Si cette case est cochée, vous aiderez le programme à associer correctement les tables entre elles.

Et ainsi, vous pouvez continuer à créer un état sur les matériels loués par le client.

Vous vous en souvenez, pour créer un modèle d'état, vous devez exécuter votre projet .

Dans le projet en cours, cliquez sur le bouton "Matériels loués", créé précédemment sur la Form1,
pour ouvrir le Concepteur d'état.

Cet état sera légèrement plus complexe que le précédent, puisque ce qu'on appelle des blocs (ou
bandes) seront utilisés.

Les blocs vous permettent de créer presque n'importe quelle structure d'un état, vous allez
maintenant prendre des dispositions avec certains d'entre eux.

Pour voir tous les blocs disponibles, cliquez sur l'icône à gauche et vous verrez le menu, comme
indiqué dans la Figure 77.
My Visual Database – Manuel pratique 71/77

Figure 77

Vous allez procéder à la création d'un état utilisant des blocs ; au passage, vous allez apprendre à
quoi qu'ils servent.

Dans le menu illustré à la Figure 77, sélectionnez le bloc Titre du rapport (Report Title), après quoi ce
bloc apparaîtra dans l'état. Dans ce bloc, vous pouvez mettre le titre du rapport, par exemple son
nom. Les informations de ce bloc ne seront imprimées que sur la première page de votre rapport.

Entrez le nom du rapport dans ce bloc. Vous devriez doncobtenir ce qu’affiche la figure 78.

Figure 78
My Visual Database – Manuel pratique 72/77

Placez ensuite un bloc PageHeader. Les informations placées dans ce bloc seront affichées sur cha-
que page imprimée (au cas où votre état ne tiendrait pas sur une page).

Dans ce bloc, vous allez mettre des informations sur le client. En outre, vous allez y placer les en-
têtes pour la table qui sera située dans le bloc suivant.

Placez des champs de texte et de données dans ce bloc, comme illustré à la Figure 79.

Figure 79

Le bloc suivant à placer dans le rapport est MasterData.

Ce bloc est conçu pour afficher des informations sous la forme d'un tableau.

Avec ce bloc, vous obtiendrez un tableau dans lequel tout le matériel loué par le client sera transféré.

Placez ce bloc sur l'état, en le sélectionnant depuis le menu.

Avant qu'il apparaisse sur l'état, vous verrez une fenêtre avec l'en-tête Select DataSet, depuis
laquelle vous sélectionnerez la source des données.

Sélectionnez cette source nommée Report dans la liste et cliquez sur OK.

Dans ce bloc, vous devrez placer les champs de la table à partir desquels le tableau sera généré.

A la suite de quoi, vous devriez obtenir ce que montre la figure 80.

Figure 80
My Visual Database – Manuel pratique 73/77

Placez le bloc de pied de page (Footer block) suivant. Cette unité ne sera imprimée qu'une seule fois,
c'est-à-dire que vous ne la verrez pas sur chaque page de votre état. Dans ce bloc, vous pouvez
calculer, par exemple, le montant total dépensé par le client pour la location d'équipements.

Pour calculer le montant total, placez le composant système Texte dans ce bloc. Une fois qu'il est
placé, une boîte de dialogue apparaît, que vous devrez configurer, comme indiqué dans la Figure 81.

Page 81

Cela fait, votre modèle d’état devrait ressembler à la Figure 82 :

Page 82
My Visual Database – Manuel pratique 74/77

Et le dernier bloc que vous mettrez dans l'état est un PageFooter, ce bloc sera imprimé sur chaque
page de l'état, vous l'utilisez uniquement pour numéroter les pages.

Dans ce bloc, placez la variable système Page # sur le côté droit du concepteur d'état (onglet
Variables), faites-le glisser, comme indiqué sur la figure 83.

Page 83

Votre modèle d'état est désormais prêt, comme indiqué dans la figure 84.

Page 84

Allez dans le menu Fichier> Aperçu ou appuyez simplement sur Ctrl + P pour voir à quoi ressemblera
votre état.
My Visual Database – Manuel pratique 75/77

Enregistrez ce modèle d'état dans le dossier Report de votre projet, via le menu Fichier> Enregistrer
sous ....

Donnez un nom au fichier, par exemple "Customer_technician", comme indiqué dans la Figure 85.

Figure 85

Il ne reste plus qu'à revenir aux paramètres du bouton "Matériels loués" (Form1) et sélectionner ce
modèle d'état à utiliser pour l'impression. Voir la Figure 86.

Figure 86
My Visual Database – Manuel pratique 76/77

A suivre …

Le guide pratique de My Visual Database est toujours en cours de rédaction.

Vous trouverez la dernière version du livre en suivant ce lien :

http://myvisualdatabase.com/book_en.html

En outre, à partir de ce lien, vous pouvez adresser une critique sur le livre, ou poser une (des)
question(s).
My Visual Database – Manuel pratique 77/77

TABLE DES MATIERES

1 – Introduction 02
1.1 – Introduction 03
1.2 – La base de données 03
1.3 – Identification des entités 03
1.4 – Les liens entre les tables et les clés étrangères (foreign keys) 04
1.5 – Les types of data 06

2 – Mise en pratique 07
2.1 – Créez votre première application travaillant avec une base de 07
2.2 – Normalisation de la structure de la base de données 49
2.3 – Suppression en cascade et maintien de l’intégrité 52
2.4 – Ajouter un type de client 54

3 – Les impressions 62
3.1 – Comment imprimer 63
3.2 – Le Concepteur d’état 63

Table des matières 77

Vous aimerez peut-être aussi