Collections intégrées – Références à Globals et User dans un rapport paginé (Générateur de rapports)

S’applique à : Générateur de rapports Microsoft (SSRS) Power BI Report Builder Concepteur de rapports dans SQL Server Data Tools

La collection de champs prédéfinis, qui inclut à la fois les collections Globals et User, représente les valeurs globales fournies par Reporting Services pendant le traitement d’un rapport paginé. La collection Globals fournit des valeurs, telles que le nom du rapport, l'heure de début du traitement du rapport et les numéros des pages actuelles pour l'en-tête ou le pied de page du rapport. La collection User fournit les paramètres d'identificateur d'utilisateur et de langue. Ces valeurs peuvent être utilisées dans les expressions pour filtrer les résultats dans un rapport.

Notes

Il est possible de créer et de modifier des fichiers de définition de rapports (.rdl) paginés dans le Générateur de rapports Microsoft, dans Power BI Report Builder et dans le Concepteur de rapports de SQL Server Data Tools.

Utilisation de la collection Globals

La collection Globals comprend les variables globales du rapport. Dans l’aire de conception, ces variables apparaissent avec le préfixe & (esperluette), par exemple, [&ReportName]. Le tableau ci-dessous décrit les membres de la collection Globals .

Membre Type Description
ExecutionTime DateTime Date et heure du début de l'exécution du rapport.
PageNumber Integer Numéro de page actuel relatif aux sauts de page qui réinitialisent le nombre de pages. Au début du traitement des rapports, la valeur initiale est 1. Le numéro de page est incrémenté pour chaque page rendue.

Pour numéroter les pages à l’intérieur de sauts de page pour un rectangle, une région de données, un groupe de régions de données ou une carte, dans la propriété PageBreak, attribuez à la propriété ResetPageNumber la valeur True. Non pris en charge dans la hiérarchie des groupes de colonnes de tableau matriciel.

PageNumber peut uniquement être utilisé dans une expression figurant dans un en-tête ou un pied de page.
ReportFolder Chaîne Chemin d'accès complet au dossier contenant le rapport. Ce chemin n'inclut pas l'URL du serveur de rapports.
ReportName Chaîne Nom du rapport tel qu'il est stocké dans la base de données du serveur de rapports.
ReportServerUrl Chaîne URL du serveur de rapports sur lequel le rapport est en cours d'exécution.
TotalPages Integer Nombre total de pages par rapport aux sauts de page qui réinitialisent PageNumber. Si aucun saut de page n’est défini, cette valeur est identique à celle de OverallTotalPages.

TotalPages peut uniquement être utilisé dans une expression figurant dans un en-tête ou un pied de page.
PageName Chaîne Nom de la page. Au début du traitement d’un rapport, la valeur initiale est celle définie pour la valeur de la propriété de rapport InitialPageName. À mesure que chaque élément de rapport est traité, cette valeur est remplacée par la valeur correspondante de PageName d’un rectangle, d’une région de données, d’un groupe de régions de données ou d’une carte. Non pris en charge dans la hiérarchie des groupes de colonnes de tableau matriciel.

PageName peut uniquement être utilisé dans une expression figurant dans un en-tête ou un pied de page.
OverallPageNumber Integer Numéro de la page actuelle pour le rapport entier. Cette valeur n’est pas affectée par ResetPageNumber.

OverallPageNumber peut uniquement être utilisé dans une expression figurant dans un en-tête ou un pied de page.
OverallTotalPages Integer Nombre total de pages pour le rapport entier. Cette valeur n’est pas affectée par ResetPageNumber.

OverallTotalPages peut uniquement être utilisé dans une expression figurant dans un en-tête ou un pied de page.
RenderFormat RenderFormat Informations sur la demande de rendu actuelle.

Pour plus d'informations, consultez « RenderFormat » dans la section suivante.

Les membres de la collection Globals retournent un type Variant. Si vous souhaitez utiliser un membre de cette collection dans une expression nécessitant un type de données spécifique, vous devez en premier lieu effectuer le cast de la variable. Par exemple, pour convertir le type Variant de temps d'exécution en format de date, utilisez =CDate(Globals!ExecutionTime). Pour plus d’informations, consultez Types de données dans les expressions (Générateur de rapports et SSRS).

RenderFormat

Le tableau suivant décrit les membres de RenderFormat.

Membre Type Description
Nom Chaîne Nom du convertisseur tel qu'il a été inscrit dans le fichier de configuration RSReportServer.

Disponible pendant des parties spécifiques du cycle de traitement/rendu des rapports.
IsInteractive Booléen Indique si la demande de rendu actuelle utilise un format de rendu interactif.
DeviceInfo Collection nom/valeur en lecture seule Paires clé/valeur pour les paramètres deviceinfo de la demande de rendu actuelle.

Les valeurs de chaîne peuvent être spécifiées en utilisant la clé ou un index dans la collection.

Exemples

Les exemples suivants montrent comment utiliser une référence à la collection Globals dans une expression :

  • Cette expression, placée dans une zone de texte dans le pied de page d'un rapport, indique le numéro de la page actuelle ainsi que le nombre total de pages du rapport :

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

  • Cette expression fournit le nom du rapport ainsi que l'heure de son exécution. Le format des date et heure est déterminé par la chaîne de formatage du Microsoft .NET Framework pour la date courte :

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

  • Cette expression, placée dans la boîte de dialogue Visibilité de la colonne pour une colonne sélectionnée, affiche la colonne uniquement lorsque le rapport est exporté vers Excel. Dans les autres cas, cette colonne est masquée.

    EXCELOPENXML fait référence au format Excel inclus dans Office 2007. EXCEL fait référence au format Excel inclus dans Office 2003.

    =IIF(Globals!RenderFormat.Name = "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", false, true)

Utilisation de la collection User

La collection User contient des données relatives à l'utilisateur qui exécute le rapport. Vous pouvez utiliser cette collection pour filtrer les données qui apparaissent dans un rapport, par exemple pour montrer uniquement les données de l'utilisateur actuel ou inclure l'ID utilisateur dans un titre de rapport. Dans l’aire de conception, ces variables apparaissent avec le préfixe & (esperluette), par exemple, [&UserID].

Le tableau ci-dessous décrit les membres de la collection User .

Membre Type Description
Langage Chaîne Langue de l'utilisateur qui exécute le rapport. Par exemple : en-US.
l'UserId Chaîne Identificateur de l'utilisateur qui exécute le rapport. Si vous utilisez l'authentification Windows, cette valeur correspond au compte de domaine de l'utilisateur actuel. La valeur est déterminée par l’extension de sécurité du Générateur de rapports, qui peut utiliser l’authentification Windows ou une authentification personnalisée.

Utilisation des paramètres régionaux

Vous pouvez utiliser des expressions pour faire référence aux paramètres régionaux sur un ordinateur client au moyen de la valeur User.Language pour déterminer l'aspect d'un rapport pour l'utilisateur. Par exemple, vous pouvez créer un rapport qui utilise une expression de requête différente en fonction de la valeur d'un paramètre régional. La requête peut changer de façon à récupérer des informations localisées, provenant d'une colonne différente selon la langue indiquée en retour. Vous pouvez également utiliser une expression dans les paramètres de langue du rapport ou des éléments de rapport basés sur cette variable.

Notes

S'il est possible de modifier les paramètres de langue d'un rapport, vous devez toutefois faire preuve de prudence car cela peut entraîner des problèmes d'affichage. Ainsi, un tel changement peut entraîner la modification du format de date du rapport, mais aussi du format de la devise. Si un processus de conversion de devise n'a pas été mis en place, cela peut provoquer l'affichage de symboles de devises incorrects dans le rapport. Pour éviter un tel problème, définissez les informations de langue sur les éléments individuels à modifier ou attribuez à l'élément comportant les données monétaires une langue spécifique.

Identification de l'ID utilisateur pour les rapports d'historique ou d'instantané

Dans certains cas, les rapports qui contiennent la variable User!UserID ne parviennent pas à afficher les données de rapport spécifiques de l’utilisateur qui affiche le rapport.

Voir aussi

Expressions (Générateur de rapports et SSRS)
Boîte de dialogue Expression (Générateur de rapports)
Types de données dans les expressions (Générateur de rapports et SSRS)
Mise en forme des nombres et des dates (Générateur de rapports et SSRS)
Exemples d'expressions (Générateur de rapports et SSRS)