|
Chapitre 22 :
les états |
|
|
1 - Introduction |
|
||||||||||
|
|
|
Dans
une base de données, l'objet état
est utilisé pour mettre en forme les données destinées à être imprimées. Lorsque
la matérialisation de données issue d'un SGBD présente un caractère
répétitif, et plus encore lorsqu'il est envisagé d'automatiser cette
opération, le recours à un état constitue la meilleure solution. A ce titre,
l'état constitue donc le troisième objet des SGBD par ordre d'importance
décroissante, après les tables et les requêtes. |
|
|||||||||
|
|
|
Mais
la création d'un état qui présente correctement les données imprimées est
souvent une opération longue et quelque peu fastidieuse. C'est pourquoi
l'état n'est pas toujours considéré comme indispensable, et il existe deux
façons de s'en passer. |
|
|||||||||
|
|
|
Première solution. Nous pouvons imprimer directement une table ou une feuille de données,
à condition de limiter considérablement nos ambitions en matière de
présentation. Nous sommes maîtres de la largeur des colonnes (ne pas lésiner
sur ce point, sinon l'information risque d'être tronquée), de la couleur de
fond de cellule, de la taille et du type de la police, et c'est à peu près
tout. Le SGBD pagine, affiche la date et le nom de la table (ou de la feuille
de données), et met en page à sa façon -- c'est à dire qu'il commence en haut
et à gauche, tout simplement. Imprimer directement une table ou une feuille
de données est une solution de dépannage, mais ce n'est pas vraiment le moyen
de réaliser un document bien présenté. |
|
|||||||||
|
|
|
Deuxième solution. Une table créée dans Access et dans d'autres SGBD fonctionnant sous le
système d'exploitation Windows peut facilement être exportée vers un tableur,
et en particulier vers Excel qui est le plus utilisé. Dans un tableur, la
mise en page avant impression est facile et intuitive, et nous disposons là
d'un bon moyen pour obtenir un imprimé correctement présenté. L'exportation
vers Excel des résultats d'une requête constitue une technique de plus en
plus utilisée, non seulement pour mettre en forme des données avant
impression, mais aussi pour profiter des diverses fonctions qu'offre le
tableur. L'opération est particulièrement facile si nous nous trouvons dans
Access : la table à analyser ou à imprimer étant sélectionnée, nous
cliquons dans le menu sur "Outils", puis sur "Liaisons
Office"et enfin sur "Analyse avec Microsoft Excel". Le tableur
s'ouvre, et la table y est aussitôt exportée. De plus, un fichier au format
Excel est enregistré sur le bureau. |
|
|||||||||
|
|
|
Un
état est pratiquement toujours construit sur le résultat d'une requête,
et ce pour les raisons suivantes : |
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
Bien
qu'il ne soit pas question, en général, d'imprimer la totalité du contenu
d'une BDD, un état s'étale souvent sur plusieurs pages. C'est le SGBD qui se charge
de gérer les sauts de page (si l'utilisateur ne donne pas d'instructions
particulières à ce sujet), d'imprimer l'en-tête et le pied de chaque page.
L'en-tête de la première page, et la fin de la dernière page, sont
généralement différents de ceux des autres pages. |
|
|||||||||
|
|
|
Comme
pour les autres chapitres de ce tutoriel (ou
tutorial, ou cours en ligne), nous utiliserons le SGBD Access comme support
pratique. Nous prévenons cependant le lecteur que la mise en forme d'un état
dans Access est une tâche quelque peu pénible, parce que l'outil mis à notre
disposition par le SGBD est malcommode. Pour une impression occasionnelle,
nous recommandons donc d'utiliser plutôt Excel. |
|
|||||||||
|
|
|
Signalons
au passage que, si vous utilisez Access 2002 comme SGBD, Windows XP comme
système d'exploitation, et si vous n'êtes pas administrateur de votre
machine, un bug peut faire capoter la création de l'état en fin d'opération. Si
vous vous trouvez dans ce cas, prévenez l'administrateur de votre service
informatique, et priez le ciel pour qu'il résolve le problème. |
|
|||||||||
|
|
||||||||||||
|
|
2 - Les préliminaires |
|
|||||||
|
|
|
La
finalité de l'état étant la réalisation d'une sortie imprimée, il est
indispensable d'indiquer au SGBD : |
|
||||||
|
|
|
|
|
||||||
|
|
|
Nous
rencontrons ici l'une des différences importantes qui existent entre l'état
et le formulaire : le premier opère dans une zone imprimable, le
second dans une fenêtre de l'écran du moniteur. |
|
||||||
|
|
|
L'imprimante.
Le SGBD construit l'état en fonction des caractéristiques de l'imprimante
par défaut. Si vous utilisez un poste de travail sur lequel aucune
imprimante n'a été déclarée, vous allez au-devant de bien des ennuis
(lenteur, plantage...). Vérifiez donc ce point avant d'entreprendre la création
d'un état. |
|
||||||
|
|
|
La zone imprimable. Ensuite, le SGBD tient compte des options que vous avez choisies --
ou, plus généralement, conservées par défaut -- en ce qui concerne la taille du
papier (A4, sauf exception) et les marges d'impression. Si vous manquez de
place en largeur -- ce qui est souvent le cas lorsqu'un état est présenté en
colonnes -- vous avez intérêt à réduire les marges à gauche et à droite. Mais
attention ! vous devez effectuer cette opération avant de
commencer à construire votre état. Une fois ce dernier créé, les changements
de marge que vous effectuez sont sans effet sur lui. |
|
||||||
|
|
|
Dans
Access, pour régler les marges, cliquez dans le menu sur "Outils",
puis "Options..." : la fenêtre "Options" s'ouvre.
Choisissez l'onglet "Général" : les quatre marges sont réglées
par défaut à un pouce (2,54 cm). En pratique, 2 cm à gauche et
1 cm à droite suffisent largement. Quelles que soient les valeurs que
vous choisissez, elles resteront valables quelle que soit la BDD dans
laquelle vous travaillez, tant que vous ne les modifierez pas à nouveau. |
|
||||||
|
|
|
La sélection des données. Mettez au point la (ou les) requête(s) qui vous permettent
de sélectionner les données à imprimer. Si vous avez besoin d'un tri,
incorporez-le à ce stade, car les tris que l'on demande au niveau des états
ne fonctionnent pas toujours très bien. Enfin, vous n'êtes pas obligé de
créer une table, un état pouvant être construit directement sur le résultat
d'une requête. |
|
||||||
|
|
|
La présentation des données. Il existe deux modes de présentation d'un
état : |
|
||||||
|
|
|
|
|
||||||
|
|
|
Il
est bon de réfléchir à la présentation avant de commencer à créer l'état. |
|
||||||
|
|
|
Les barres d'outils. Il en existe deux qui sont spécifiques des états. Elles s'appellent
respectivement "Créer un état" et "Mise en forme
(Formulaire/État)", et certaines de leurs icônes nous seront
indispensables. Pour faire apparaître ces deux barres, nous cliquons sur
"Affichage" dans le menu, puis sur "Barres d'outils", et
nous cochons le nom de la barre désirée. Par la même occasion, nous demandons
l'affichage de la boîte à outils. |
|
||||||
|
|
|||||||||
|
|
3 - La création de l'état |
|
|||||||||||||
|
|
|
Ouvrons
une BDD contenant au moins une table pourvue de données et, dans la fenêtre
"Base de données", sélectionnons l'objet "États". Deux
options nous sont présentées : |
|
||||||||||||
|
|
|
|
|
||||||||||||
|
|
|
Les
manuels, en général, conseillent d'utiliser l'assistant en toutes
circonstances, car créer un état à partir de rien est assez fastidieux. Mais,
dans le cas où l'on choisit la présentation tabulaire, et où il y a de
nombreux champs, l'assistant conduit à un mauvais résultat, qu'il est ensuite
difficile de corriger complètement. Dans ce cas, il faut confier à
l'assistant le soin de créer une partie des champs seulement (en particulier
ceux sur lesquels on envisage un regroupement), et utiliser ensuite la fonction
"Modifier" pour introduire les autres champs au fur et à mesure que
la mise en forme de l'état progresse. Obtenir un bon résultat lors de
l'impression demande une bonne dose de patience. |
|
||||||||||||
|
|
|
Il
existe aussi une icône |
|
||||||||||||
|
|
|
|
|
||||||||||||
|
|
|
Lançons
l'assistant, choisissons une table ("Personnes", avec les champs
"Nom" et "Prénom"), sélectionnons ses deux champs, ignorons
le regroupement et le tri, adoptons la disposition tabulaire,
l'orientation portrait et le style "Informel" (valeurs par défaut),
donnons un titre à l'état ("Liste des personnes"), et cliquons sur
"Terminer". Nous obtenons un état qu'il est souhaitable
d'améliorer. |
|
||||||||||||
|
|
|||||||||||||||
|
|
4 - La structure de l'état |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
L'état
que nous venons de créer apparaît dans la fenêtre "Base de données"
(l'objet "État" étant sélectionné). Nous le sélectionnons, puis nous
cliquons sur l'icône |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Procédons
d'abord à une petite vérification. Notre imprimante utilise du papier A4 de
21 cm de large, et nous avons choisi des marges gauche et droite
importantes (5 cm) afin de limiter la taille de la figure ci-dessous.
Nous vérifions que la largeur utile de l'état (la partie claire et
quadrillée) mesure effectivement 11 cm, comme le montre la figure. Même
si nous modifions par la suite les marges dans la fenêtre
"Options", celles de notre nouvel état ne varieront pas. |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Nous
observons que l'état est divisé en cinq zones : |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
De
manière quelque peu schématique, on peut dire que les diverses zones sont utilisées
de la manière suivante : |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Dans
la fenêtre graphique de modification de l'état, les zones de texte et les
étiquettes apparaissent comme des rectangles contenant du texte. |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
On
distingue trois catégories de zone de texte : |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Tout
en haut à gauche de la fenêtre de l'application se trouve une liste
déroulante baptisée "État". Elle contient la liste des
15 objets qui se trouvent dans la fenêtre de modification de l'état
(tableau ci-dessous). La sélection de l'un de ces objets dans la liste
entraîne sa sélection dans la page et vice versa. |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
5 - La mise en forme de l'état |
|
|||||||||||||||||||
|
|
|
Un
état étant ouvert en mode "Modification", les outils qui nous permettent
de procéder à sa mise en forme sont dispersés à cinq endroits différents.
Nous pouvons en effet utiliser : |
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
Les barres d'outils. Nous noterons d'abord que la barre de mise en forme est active
lorsqu'une zone de texte est sélectionnée. Cette barre contient les outils
usuels du traitement de texte (propriété de la police, alignement du texte,
couleur de fond et de premier plan, bordures). Elle contient en outre (tout à
fait à gauche) la liste des objets de l'état, liste dont nous avons déjà
parlé au paragraphe 4 précédent. |
|
||||||||||||||||||
|
|
|
Lorsque
nous modifions la présentation d'un état, il nous faut régulièrement vérifier
le résultat obtenu, car ce qui s'affiche est souvent différent de ce qui
s'observe en mode "Modifier". Pour cela, nous cliquons sur l'icône |
|
||||||||||||||||||
|
|
|
Cette
barre contient également deux autres icônes fort utiles. L'icône |
|
||||||||||||||||||
|
|
|
Ces feuilles de propriétés nous sont fort utiles, car dans leur onglet
"Format" nous pouvons : |
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
Si
nous avons affaire à une zone de l'état, la liste des attributs est
évidemment plus réduite. |
|
||||||||||||||||||
|
|
|
La fenêtre graphique nous permet d'effectuer de multiples opérations à l'aide de la
souris : |
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
Le
positionnement à l'aide de la souris ne permet pas d'obtenir un résultat
précis. Il est donc recommandé de perfectionner le positionnement en réglant les
coordonnées dans les feuilles de propriétés. |
|
||||||||||||||||||
|
|
|
Attention
! Si nous plaçons une zone de texte dépendante dans l'en-tête de l'état,
seule la première valeur du champ correspondant sera imprimée (parce que
l'en-tête est unique). Ceci peut être mis à profit pour imprimer une
information qui ne varie pas dans la table sous-jacente (une date par
exemple). |
|
||||||||||||||||||
|
|
|
Le menu. Les
fonctions de la rubrique "Format" deviennent actives lorsqu'une
étiquette ou une zone de texte est sélectionnée. Elles nous permettent : |
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
Les
fonctions de la rubrique "Insertion" nous permettent : |
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
La boite à outils. Seuls sont réellement utiles : |
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
Les
autres outils -- en particulier ceux qui permettent d'insérer des boutons,
des boutons radio, des cases à cocher, des listes, etc. -- n'ont pas d'utilité
pour mettre en forme un état qui est, par vocation, destiné à être imprimé. |
|
||||||||||||||||||
|
|
|||||||||||||||||||||
|
|
6 - Conclusion |
|
|
|
|
|
L'état
s'avère être un objet utile dans le cas où l'impression de données issues d'une
BDD est une opération récurrente. La création d'un état bien présenté
étant une opération consommatrice de temps, il est préférable d'effectuer les
impressions occasionnelles à l'aide d'un tableur. De plus, l'usage d'un
tableur est pratiquement obligatoire lorsqu'on veut présenter les données
sous forme d'un graphique. |
|
|
|
|
Les
recommandations qui s'appliquent aux arts graphiques en général sont
également valables pour les états en particulier. Il ne faut pas abuser des images,
des fonds colorés, des polices exotiques et des présentations tarabiscotées.
La simplicité, la clarté et la lisibilité priment. |
|