Partager via


Ajout d'en-têtes et de pieds de page à un rapport (Concepteur de rapports Visual Studio)

Un rapport peut contenir un en-tête et un pied de page, informations situées respectivement le long des bords supérieur et inférieur de chaque page. Les en-têtes et les pieds de page peuvent contenir du texte statique, des images, des lignes, des rectangles, des bordure, une couleur d'arrière-plan et des images d'arrière-plan. Vous ne pouvez pas ajouter directement à un en-tête ou un pied de page des champs liés aux données ou des images. Cependant, vous pouvez écrire une expression faisant indirectement référence à un champ lié aux données ou à une image que vous souhaitez utiliser dans un en-tête ou un pied de page.

Les en-têtes et les pieds de page de rapport sont différents des en-têtes et des pieds de page d'un tableau ou d'un groupe. Pour plus d'informations sur les en-têtes et les pieds de page d'un tableau, consultez Ajout de régions de données de tableau (Concepteur de rapports Visual Studio). Pour plus d'informations sur l'ajout d'en-têtes et de pieds de page à votre rapport, consultez Procédure : ajouter, masquer et supprimer des en-têtes et des pieds de page (Concepteur de rapports Visual Studio).

NoteRemarque

Chaque format de sortie de rapport traite les pages différemment. Pour plus d'informations, consultez Définition de la taille de la page et des sauts de page dans un rapport (Concepteur de rapports Visual Studio).

Suppression d'en-têtes et de pieds de page sur la première page

Les en-têtes et les pieds de page sont affichés par défaut sur la première et la dernière page d'un rapport. Vous pouvez supprimer les en-têtes et les pieds de page sur la première et la dernière page en changeant la propriété PrintOnFirstPage ou PrintOnLastPage pour l'en-tête ou le pied de page.

Affichage de données variables dans un en-tête ou un pied de page

Les en-têtes et les pieds de page peuvent contenir du contenu statique, mais ils servent généralement à afficher des éléments qui varient, tels que des numéros de page ou des informations sur le contenu d'une page. Pour afficher des données variables qui sont différentes sur chaque page, vous devez écrire une expression. Pour placer des données variables dans un en-tête ou un pied de page :

  1. Ajoutez une zone de texte à l'en-tête ou au pied de page.

  2. Dans la zone de texte, écrivez une expression qui produit les données variables que vous souhaitez.

  3. Dans l'expression, incluez des références aux éléments de rapport sur la page (par exemple, vous pouvez faire référence à une zone de texte qui contient des données d'un champ particulier). Évitez d'inclure une référence directe aux champs d'un dataset.

Vous ne pouvez pas faire référence directement à un champ dans une zone de texte d'un en-tête ou d'un pied de page. Par exemple, vous ne pouvez pas utiliser l'expression =Fields!LastName.Value.

Pour afficher les informations d'un champ dans un en-tête ou un pied de page, placez l'expression du champ dans une zone de texte dans le corps du rapport, puis créez une référence à cette zone de texte dans l'en-tête ou le pied de page. L'expression suivante affiche le contenu de la première instance d'une zone de texte nommée TXT_LastName :

=First(ReportItems!TXT_LastName.Value)

Vous ne pouvez pas utiliser des fonctions d'agrégation sur des champs dans l'en-tête ou le pied de page. Vous pouvez uniquement utiliser une fonction d'agrégation sur un élément de rapport (tel que la fonction First() décrite précédemment). Pour en savoir plus sur les expressions courantes dans les en-têtes et les pieds de page, reportez-vous à Expressions communes pour les rapports (Concepteur de rapports Visual Studio).

Les sections suivantes de cette rubrique montrent des expressions prêtes à l'emploi qui obtiennent des données variables couramment utilisées dans des en-têtes et des pieds de page. Elles expliquent également comment l'extension de rendu Excel traite les en-têtes et les pieds de page. Pour plus d'informations sur les expressions, consultez Utilisation d'expressions dans un rapport (Concepteur de rapports Visual Studio).

Ajout d'un numéro de page à un en-tête ou un pied de page

Les pieds de page affichent généralement un numéro de page. Pour afficher un numéro de page dans l'en-tête ou le pied de page d'un rapport, créez une zone de texte dans le pied de page et ajoutez-y l'expression suivante :

=Globals.PageNumber & " of " & Globals.TotalPages

Ajout du nom, du chemin et de l'heure d'exécution du rapport dans un en-tête ou un pied de page

Utilisez les expressions suivantes pour inclure le titre ou le nom du rapport tel qu'il est enregistré dans la base de données du serveur de rapports avec l'aide des informations d'horodatage sur la génération du rapport :

=ReportItems!ReportTitle.Value

=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")

Ajout d'une image liée aux données à un en-tête ou un pied de page

Vous pouvez utiliser dans un en-tête ou un pied de page des données d'image stockées dans une base de données. Cependant, vous ne pouvez pas faire référence aux champs d'une base de données directement à partir du contrôle Image. Vous devez plutôt ajouter une zone de texte dans le corps du rapport, puis attribuer à la zone de texte le champ de données qui contient une image (notez que la valeur doit être codée en base64). Vous pouvez masquer la zone de texte dans le corps du rapport pour éviter d'afficher l'image codée en base64. Vous pouvez ensuite faire référence à la valeur de la zone de texte masquée à partir du contrôle Image dans l'en-tête ou le pied de page.

Par exemple, supposons que vous avez un rapport composé de pages d'informations sur des produits. Dans l'en-tête de chaque page, vous souhaitez afficher une photographie du produit. Pour imprimer une image stockée dans l'en-tête du rapport, définissez une zone de texte masquée nommée TXT_Photo dans le corps du rapport qui récupère l'image à partir de la base de données et utilisez une expression pour lui donner une valeur :

=Convert.ToBase64String(Fields!Photo.Value)

Dans l'en-tête, ajoutez un contrôle Image qui utilise la zone de texte TXT_Photo, décodée pour afficher l'image :

=Convert.FromBase64String(ReportItems!TXT_Photo.Value)

Ajout de totaux calculés à un en-tête ou un pied de page

Pour certains rapports, il est pratique d'inclure une valeur calculée dans l'en-tête ou le pied de page de chaque rapport (par exemple, une somme totale par page si la page inclut des valeurs numériques). Toute référence directe aux champs étant impossible, l'expression que vous placez dans l'en-tête ou le pied de page doit faire référence au nom de l'élément de rapport (par exemple, une zone de texte) et non au champ de données :

=Sum(ReportItems!Textbox1.Value)

Si la zone de texte se trouve dans un tableau ou une liste qui contient des lignes répétées de données, la valeur qui apparaît dans l'en-tête ou le pied de page au moment de l'exécution est une somme de toutes les valeurs de toutes les données de l'instance TextBox1 dans le tableau ou la liste de la page courante.

Lors du calcul de totaux de page, vous pouvez vous attendre à avoir des différences dans les totaux lorsque vous utilisez différentes extensions de rendu pour afficher le rapport. Une sortie paginée est calculée différemment pour chaque extension de rendu. La même page affichée en HTML pourrait présenter des totaux différents lors d'un affichage au format PDF si la quantité de données sur la page PDF est différente.

Utilisation d'en-têtes et de pieds de page pour positionner le texte

Vous pouvez utiliser des en-têtes et des pieds de page pour positionner le texte sur une page. Par exemple, supposons que vous créez un rapport que vous souhaitez poster à des clients. Vous utilisez un en-tête ou un pied de page pour positionner l'adresse du client afin qu'elle apparaisse dans une fenêtre d'enveloppe après pliage.

Si vous utilisez la zone de texte pour remplir un en-tête ou un pied de page, vous pouvez masquer la zone de texte dans le corps du rapport. Le positionnement de la zone de texte dans le corps du rapport peut déterminer si la valeur apparaîtra dans l'en-tête ou le pied de page de la première ou de la dernière page d'un rapport. Par exemple, si vous avez des tableaux, des matrices ou des listes qui étendent le rapport sur plusieurs pages, la valeur de la zone de texte masquée apparaît sur la dernière page. Si vous souhaitez la voir apparaître sur la première page, placez la zone de texte masquée en haut du corps du rapport.

Utilisation d'en-têtes et de pieds de page dans Excel

Lors de la définition d'en-têtes et de pieds de page pour des rapports qui ciblent l'extension de rendu Excel, observez ces recommandations pour obtenir les meilleurs résultats :

  • Utilisez des pieds de page pour afficher les numéros de pages.

  • Utilisez des en-têtes de page pour afficher des images, des titres ou autre texte. Ne placez pas de numéros de page dans l'en-tête.

Dans Excel, les pieds de page ont une mise en page limitée. Si vous définissez un rapport qui inclut des éléments de rapport complexes dans le pied de page, le pied de page ne sera pas traité de la manière prévue lors de l'affichage du rapport dans Excel.

L'extension de rendu d'Excel peut recevoir des images et assurer un positionnement absolu d'éléments de rapport simples ou complexes dans l'en-tête de page. La prise en charge d'une mise en page d'en-tête plus riche compromet toutefois la prise en charge du calcul de numéros de page dans la tête. Dans l'extension de rendu Excel, avec les valeurs par défaut le nombre de pages est calculé en fonction du nombre de feuilles. Selon la définition du rapport, cela risque de produire des nombres de pages erronés. Par exemple, supposons qu'un rapport rendu sur une grande feuille unique s'imprime sur quatre pages. Si vous incluez des informations de nombre de pages dans l'en-tête, chaque page imprimée indique « Page 1 sur 1 » dans l'en-tête.

Un nombre de pages plus précis est basé sur les pages logiques définies en corrélation avec les dimensions d'une page imprimée. Dans Excel, le pied de page utilise automatiquement des nombres de pages logiques. Pour placer le nombre de pages logiques dans l'en-tête de page, vous devez configurer les paramètres d'information sur le périphérique de manière à utiliser des en-têtes simples. Sachez toutefois que lors de l'utilisation d'en-têtes simples, vous perdez la possibilité de traiter des dispositions de rapports complexes dans la région de l'en-tête.

Voir aussi

Tâches

Procédure : ajouter, masquer et supprimer des en-têtes et des pieds de page (Concepteur de rapports Visual Studio)

Concepts

Définition de la taille de la page et des sauts de page dans un rapport (Concepteur de rapports Visual Studio)