Les états : en-têtes et pieds de page génériques

Si la mise en page des états est un challenge, l'ajout d'en-têtes et de pieds de page est répétitif et peut à la longue devenir rébarbatif. Dans ce tutoriel, nous allons créer des entêtes et pieds de page génériques.


Commentez cet article : 2 commentaires

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

Bandeau Réorganiser

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.

Graphisme simple


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.

Graphisme agréable

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.

du code

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.

Graphisme un peu plus élaboré

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.

Joli résultat

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. 

Encore du code

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.

Superbe !

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.

Pas mal.

V-A. Côté code

Le code ressemble au précédent.

image

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 ».

Et voilà !

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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2010 Fabrice CONSTANS. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.