I. Introduction▲
Quel intérêt de créer des en-têtes génériques, me direz-vous ? Accroître sa productivité et gagner en uniformité sont déjà deux points séduisants. Des états en tous points identiques donnent l'impression d'un professionnalisme et d'une régularité que même certains progiciels n'atteignent pas. Dans ce tutoriel, nous allons mettre en pratique une méthode simple pour créer une régularité et une harmonie dans les états.
I-A. Prérequis▲
Pour notre exemple, j'ai choisi d'utiliser la base Northwind (Ex. « Les Comptoirs »). Vous pouvez utiliser votre propre application pour travailler sur ce tutoriel. J'utilise la version 2007 d'Access, mais vous pouvez réaliser la même chose à partir de la version 2000.
II. La méthode▲
Pour réaliser notre objectif nous allons créer deux états, l'un contenant l'en-tête et l'autre le pied de page. Nous inclurons ces deux états dans un troisième qui affichera les données.
III. L'en-tête de page▲
Commencez par ouvrir un état en mode création. La zone d'en-tête et de pied de page étant inutiles, pour les enlever, allez dans le bandeau Réorganiser et cliquez sur le bouton ci-dessous.
Nous allons rajouter des cadres (rouge et gris) ainsi qu'un trait blanc.
Contrôle | Propriété | Valeur |
---|---|---|
Cadre1 | Couleur fond | #ED1C24 |
Style bordure | Transparent | |
Trait | Couleur bordure | #FFFFFF |
Epaisseur bordure | 2 pt | |
Cadre2 | Couleur fond | #C7C5BC |
Style bordure | Transparent | |
Veillez à bien nommer le cadre et la ligne comme spécifié dans la première colonne du tableau.
Veillez à laisser un espace à gauche pour insérer un logo.
Voici à quoi cela devrait ressembler.
Occupons-nous maintenant du logo et du titre général. Pour cela ouvrez le formulaire nommé « Interne »
en mode création et faites un copier/coller du logo et du titre « Les Comptoirs ».
Repérez l'étiquette nommée « Auto_Title0 » et entrez le mot « Titre » puis ajoutez une zone de texte contenant la date du jour.
Contrôle | Propriété | Valeur |
---|---|---|
Auto_Title0 | Légende | Titre |
Style fond | #Transparent | |
Police | Calibri | |
Taille de police | 18 | |
Epaisseur police | Gras | |
Italique | Oui |
Contrôle | Propriété | Valeur |
---|---|---|
ztDate | Source contrôle | =Maintenant() |
Format | Date, complet | |
Police | Calibri | |
Taille de police | 9 | |
Aligner texte | Droite |
Voilà ce que vous obtenez avec un minimum de mise en page.
Enregistrez cet état sous le nom « Entete ».
Passons à l'interactivité.
III-A. En-tête interactive▲
L'interactivité permet d'utiliser des informations issues de l'état principal que l'en-tête va récupérer automatiquement.
En mode création, cliquez sur la barre Détail pour obtenir ses propriétés. Sur l'événement Au formatage créez une procédure événementielle.
Le code précédent affecte à la propriété Légende de « Auto_Title0 » le contenu de la légende de l'étiquette Auto_Title0 situé dans l'état parent.
L'état parent est celui dans lequel l'en-tête sera placé. FormatCount=1 évite de l'effectuer de trop nombreuses fois.
Vous pouvez sauvegarder l'état et le fermer.
IV. Utilisation de notre en-tête.▲
Ouvrez l'état « Annuaire des employés » en mode création.
Sélectionnez la date et l'heure et supprimez-les.
Sélectionnez le titre et la zone de texte contenant le filtre et changez la propriété visible.
Contrôle | Propriété | Valeur |
---|---|---|
Auto_Title0 | Visible | Non |
txtReportFilter | Visible | Non |
Faites glisser l'état « Entete » de la liste de gauche dans l'entête d'état. Supprimez l'étiquette du sous-formulaire.
Remontez le sous-formulaire pour qu'il soit collé en haut à gauche. Sélectionnez-le pour modifier ses propriétés.
Contrôle | Propriété | Valeur |
---|---|---|
Entete | Style bordure | Transparent |
Enregistrez l'état et lancez un aperçu avant impression.
Voilà le résultat !
Le titre est bien hérité de l'état.
IV-A. Plus loin avec l'en-tête▲
Passons dans l'en-tête et ajoutons un contrôle étiquette que nous nommerons etFiltre.
Contrôle | Propriété | Valeur |
---|---|---|
EtFiltre | Police | Arial |
Taille de police | 8 | |
Couleur de texte | #7F001B |
Dans le code, ajoutez la ligne suivante.
EtFiltre va prendre la valeur contenue dans la zone de texte « txtReportFilter » de l'état parent.
Sauvegardez et fermez les états ouverts.
IV-B. Appliquer à un autre état▲
Ouvrez l'état « Etat ventes annuel » et insérez l'en-tête comme indiqué précédemment.
Mettez la bordure du sous-état « Entete » en transparent, supprimez les deux contrôles « txtDate » et « txtTime » et mettez les propriétés Visible du contrôle « Auto_Title0 ».
Cet état diffère légèrement du précédent, il faut donc faire une adaptation dans celui-ci.
Contrôle | Propriété | Valeur |
---|---|---|
txtReportTimeFrame | Nom | txtReportFilter |
Visible | Non |
Sauvegardez et faites un aperçu avant impression.
Mission réussie !
V. Le pied de page▲
Pour le pied de page, rien de complexe. Faites un copier/coller du sous-état « Entete » sous le nom « PiedDePage ». Nous aurons ainsi la plupart des éléments déjà prêts. Ouvrez-le en mode création.
Supprimez le logo et les contrôles « Etfiltre » et « ZtDate ». Étendez les deux cadres, la ligne et l'étiquette « Auto_Title0 » vers la gauche pour qu'ils soient collés au bord gauche du sous-état.
Modifiez les contrôles restants comme indiqué dans le tableau ci-dessous.
Contrôle | Propriété | Valeur |
---|---|---|
Auto_Title0 | Nom | EtPage |
Police | Calibri | |
Taille de police | 10 | |
Italique | Oui | |
Epaisseur de police | Gras |
Insérez le contrôle suivant :
Contrôle | Propriété | Valeur |
---|---|---|
EtNom | Légende | Nom |
Police | Calibri | |
Taille de police | 8 | |
Aligner le texte | Droite |
Après un placement judicieux, vous devriez obtenir ceci.
V-A. Côté code▲
Le code ressemble au précédent.
On affecte à l'étiquette nom le titre « Auto_Title0 » du parent comme pour l'en-tête et l'étiquette « EtPage » reçoit une expression qui doit indiquer le N° de la page sur le nombre de pages total.
Me.Parent.Page est la page courante.
Me.Parent.Pages est le nombre de pages total.
On Error Resume next évite de retourner une erreur si l'un des composants de Parent n'existait pas. Cela permet également de faire des prévisualisations de l'en-tête seule pour sa mise au point.
Enregistrez et fermez.
V-B. Utiliser le pied de page▲
Rien de plus simple que d'utiliser le pied de page. Commencez par ouvrir les deux états précédents « Annuaire des clients » et « Etat ventes annuel ».
Supprimez dans le pied de page le contrôle « txtPages » et faites-y glisser le pied de page.
Supprimez la petite étiquette créée en même temps que le sous-état et enlevez la bordure.
Contrôle | Propriété | Valeur |
---|---|---|
PiedDePage | Style bordure | Transparent |
Faites un aperçu pour voir le résultat. Normalement le pied de page devrait être tronqué.
Mettez la même hauteur pour le contrôle que pour la zone Détail du sous-formulaire « PiedDePage ».
VI. Conclusion▲
Comme vous l'avez constaté, au travers de ce tutoriel, il est facile de créer des états ayant une présentation homogène. Visual Basic pour Application crée une excellente interaction entre états et sous-états. Cela contribue très largement à la réussite de cette technique.
VII. Remerciements▲
Je remercie Jacques-jean pour ses corrections toujours judicieuses. Philippe Jochmans, JpCheck et Ormonth pour leurs remarques constructives et Caro-Line pour son coup de louche.