Expressions communes pour les rapports (Concepteur de rapports Visual Studio)
Certaines expressions sont couramment utilisées dans les rapports. Elles comprennent notamment des expressions pour modifier l'apparence des données dans un rapport, pour calculer des totaux et pour changer les propriétés d'éléments de rapport. Cette rubrique décrit quelques expressions pouvant être utilisées pour des tâches courantes dans un rapport.
Dans un rapport, beaucoup d'expressions contiennent des fonctions. Vous pouvez écrire des expressions qui utilisent des fonctions des espaces de noms Microsoft.VisualBasic, System.Convert et System.Math, ou vous pouvez ajouter des références à d'autres assemblys ou à votre propre code. Vous pouvez également utiliser des classes du Kit de développement logiciel (SDK) de Microsoft .NET Framework. Pour plus d'informations, consultez la documentation de la bibliothèque de classes du Kit de développement logiciel (SDK) .NET Framework.
Fonctions
La plupart des fonctions dans un rapport sont des fonctions Microsoft Visual Basic ou des fonctions de rapport intégrées. Vous pouvez mettre en forme des données, appliquer une logique et accéder aux métadonnées du rapport en utilisant ces fonctions.
Fonctions Visual Basic
Vous pouvez utiliser des fonctions Visual Basic pour manipuler les données affichées dans des zones de texte ou utilisées pour des paramètres, des propriétés et d'autres zones du rapport. Cette section fournit des exemples expliquant certaines de ces fonctions. Pour plus d'informations sur les fonctions Visual Basic, consultez la documentation de Visual Basic.
Fonctions de date
Vous pouvez utiliser les fonctions Visual Basic pour fournir des informations de date dans votre rapport.
L'expression ci-dessous contient la fonction Today qui fournit la date actuelle. Cette expression peut être utilisée dans une zone de texte pour afficher la date sur le rapport ou bien, dans un paramètre pour filtrer des données sur la base de la date actuelle :
=Today()
La fonction DateAdd est utile pour fournir une plage de dates sur la base d'un seul paramètre. L'expression ci-dessous indique une date qui se situe six mois après la date provenant du paramètre nommé StartDate :
=DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
L'expression suivante contient la fonction Year qui affiche l'année pour une date particulière. Vous pouvez l'utiliser pour grouper des dates ou pour afficher l'année en tant que libellé d'un ensemble de dates. Cette expression affiche l'année pour un groupe donné de dates de commande :
=Year(Fields!OrderDate.Value)
La fonction Month et d'autres fonctions peuvent également être utilisées pour manipuler des dates. Pour plus d'informations, consultez la documentation de Visual Basic.
Fonctions de chaîne
Vous pouvez utiliser les fonctions Visual Basic pour manipuler des chaînes dans votre rapport.
Vous pouvez mettre en forme des dates et des nombres dans une chaîne avec la fonction Format. L'expression ci-dessous affiche les valeurs des paramètres StartDate et EndDate dans un format de date longue :
=Format(Parameters!StartDate.Value, "D") & " through " & Format(Parameters!EndDate.Value, "D")
Si la zone de texte contient seulement une date ou un nombre, utilisez la propriété Format de la zone de texte pour appliquer la mise en forme plutôt que la fonction Format dans la zone de texte.
Les fonctions Right, Len et InStr sont utiles pour renvoyer une sous-chaîne, par exemple en découpant DOMAIN\username pour ne récupérer que le nom de l'utilisateur. Les expressions ci-dessous renvoient une partie d'une chaîne à droite du caractère barre oblique inverse (\) à partir d'un paramètre nommé User :
=Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))
L'expression ci-dessous renvoie la même valeur que précédemment, en utilisant des membres de la classe String de .NET Framework au lieu des fonctions Visual Basic :
=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
Fonctions de décision
Vous pouvez utiliser les fonctions Visual Basic pour évaluer une valeur d'entrée et renvoyer une autre valeur en fonction du résultat.
La fonction Iif renvoie une valeur sur deux, selon que l'expression évaluée est vraie ou fausse. L'expression ci-dessous utilise la fonction Iif pour renvoyer une valeur booléenne True (Vrai) si la valeur de LineTotal est supérieure à 100. Sinon, elle renvoie False (Faux) :
=Iif(Fields!LineTotal.Value > 100, True, False)
L'expression ci-dessous utilise plusieurs fonctions Iif (également appelées « Iifs imbriqués ») pour renvoyer une valeur sur trois, selon la valeur de PctComplete.
=Iif(Fields!PctComplete.Value >= .8, "Green", Iif(Fields!PctComplete.Value >= .5, "Amber", "Red"))
L'expression ci-dessous renvoie également une valeur sur les trois, basée sur la valeur de PctComplete, mais elle utilise à la place la fonction Switch, qui renvoie la valeur associée avec la première expression dans une série qui prend la valeur True (Vrai) :
=Switch(Fields!PctComplete.Value >= .8, "Green", Fields!PctComplete.Value >= .5, "Amber", Fields!PctComplete.Value < .5, "Red")
Fonctions de rapport
Reporting Services comprend des fonctions de rapport supplémentaires que vous pouvez utiliser pour manipuler des données dans un rapport. Cette section fournit des exemples pour deux de ces fonctions. Pour des exemples et plus d'informations sur les fonctions de rapport, consultez Fonctions intégrées pour les rapports (Concepteur de rapports Visual Studio).
La fonction Sum peut additionner des valeurs dans un groupement ou une région de données. Cette fonction peut être utile dans l'en-tête ou le pied de page d'un groupe de tableaux. L'expression suivante affiche la somme des données dans le groupement ou la région de données Order :
=Sum(Fields!LineTotal.Value, "Order")
Une expression contenant la fonction RowNumber, quand elle est utilisée dans une zone de texte au sein d'une région de données, affiche le numéro de ligne de chaque instance de la zone de texte dans laquelle l'expression apparaît. Cette fonction peut être utile pour numéroter les lignes dans un tableau. Elle peut également être utile pour des tâches plus complexes, comme demander des sauts de page sur la base du nombre de lignes. Pour plus d'informations, consultez « Sauts de page » plus loin dans cette rubrique.
L'expression suivante affiche le numéro de ligne à partir de la première ligne et jusqu'à la dernière, dans la région de données la plus à l'extérieur. Le mot clé Nothing indique que la fonction commence à compter à la première ligne dans la région de données la plus à l'extérieur. Pour commencer à compter dans des régions de données enfants, utilisez le nom de la région de données.
=RowNumber(Nothing)
Apparence des données des rapports
Vous pouvez recourir à des expressions pour intervenir sur la façon dont les données apparaissent sur un rapport. Par exemple, vous pouvez afficher les valeurs de deux champs dans une même zone de texte, afficher des informations sur le rapport ou modifier la façon dont les sauts de page sont insérés dans le rapport.
En-têtes et pieds de page
Lors de la conception d'un rapport, vous pouvez choisir d'afficher son nom et les numéros des pages dans le pied de page. Pour ce faire, vous pouvez utiliser les expressions suivantes :
L'expression suivante fournit le nom du rapport ainsi que les date et heure de son exécution. Elle peut être placée dans une zone de texte du pied de page du rapport ou dans le corps du rapport. Le format des date et heure est déterminé par la chaîne de formatage .NET Framework pour la date courte :
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
L'expression ci-dessous, placée dans une zone de texte du 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
Vous pouvez également faire référence dans l'en-tête ou le pied de page du rapport à des éléments du rapport à partir du corps du rapport. Les exemples suivants décrivent comment afficher la première et la dernière valeur d'une page dans l'en-tête de la page, comme dans le contenu d'un annuaire. Cet exemple suppose l'existence d'une région de données qui contient une zone de texte appelée LastName.
L'expression ci-dessous, placée dans une zone de texte sur la partie gauche de l'en-tête de la page, fournit la première valeur de la zone de texte LastName sur la page :
=First(ReportItems!LastName.Value)
L'expression ci-dessous, placée dans une zone de texte sur la partie droite de l'en-tête de la page, fournit la dernière valeur de la zone de texte LastName sur la page :
=Last(ReportItems!LastName.Value)
Vous pouvez appliquer des agrégats à la référence d'un élément de rapport dans un en-tête ou un pied de page. (Vous ne pouvez toutefois pas appliquer d'agrégats à la référence d'un élément de rapport dans le corps du rapport.) L'exemple suivant décrit comment afficher un total pour une page. Cet exemple suppose l'existence d'une région de données qui contient une zone de texte appelée Cost.
L'expression ci-dessous, placée dans l'en-tête ou le pied de page, fournit la somme des valeurs dans la zone de texte Cost pour la page :
=Sum(ReportItems!Cost.Value)
Remarque
Vous pouvez ne faire référence qu'à un seul élément de rapport par expression dans un en-tête ou un pied de page.
Sauts de page
Dans certains rapports, vous pouvez souhaiter placer un saut de page à la fin d'un nombre spécifié de lignes à la place, ou en plus, de groupes ou d'éléments de rapport. Pour ce faire, créez un groupe dans une région de données (un groupe généralement immédiatement en dehors des détails), ajoutez un saut de page au groupe, puis ajoutez une expression de groupe pour regrouper par un nombre spécifié de lignes.
L'expression suivante, quand elle est placée dans l'expression de groupe, affecte un nombre à chaque ensemble de 25 lignes. Quand un saut de page est défini pour le groupe, il en résulte un saut de page toutes les 25 lignes.
=Int((RowNumber(Nothing)-1)/25)
Propriétés
Les expressions ne sont pas seulement utilisées pour afficher des données dans des zones de texte. Elles peuvent servir à modifier la façon dont les propriétés sont appliquées aux éléments de rapport. Vous pouvez modifier les informations de style d'un élément de rapport ou modifier sa visibilité.
Mise en forme
Vous pouvez utiliser les expressions pour varier l'apparence des éléments de rapport dans un rapport.
L'expression ci-dessous, lorsqu'elle est utilisée dans la propriété Color d'une zone de texte, modifie la couleur du texte en fonction de la valeur du champ Profit :
=Iif(Fields!Profit.Value < 0, "Red", "Black")
L'expression ci-dessous, lorsqu'elle est utilisée dans la propriété BackgroundColor d'un élément de rapport dans une région de données, fait alterner la couleur d'arrière-plan de chaque ligne entre vert pâle et blanc :
=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
Visibilité
Vous pouvez également afficher et masquer des éléments dans un rapport en utilisant les propriétés de visibilité de l'élément de rapport. Dans une région de données comme un tableau, vous pouvez initialement masquer les lignes de détails en fonction de la valeur d'une expression.
L'expression suivante, lorsqu'elle est utilisée pour la visibilité initiale des lignes de détails dans un groupe, affiche les lignes de détails de toutes les ventes supérieures à 90 pour cent dans le champ PctQuota :
=Iif(Fields!PctQuota.Value>.9, False, True)
Paramètres du rapport
Vous pouvez utiliser des expressions dans un paramètre pour faire varier la valeur par défaut du paramètre. Par exemple, vous pouvez utiliser un paramètre pour filtrer les données d'un utilisateur en particulier en fonction de l'ID utilisateur utilisé pour exécuter le rapport.
L'expression ci-dessous, lorsqu'elle est utilisée comme valeur par défaut pour un paramètre, collecte l'ID utilisateur de la personne exécutant le rapport :
=User!UserID
Code personnalisé
Vous pouvez utiliser du code personnalisé dans un rapport. Le code personnalisé est soit incorporé au rapport, soit stocké dans un assembly personnalisé utilisé dans le rapport. Pour plus d'informations sur le code personnalisé, consultez Ajout de code personnalisé à un rapport (Concepteur de rapports Visual Studio).
L'exemple de code ci-dessous appelle la méthode du code incorporé ToUSD, qui convertit la valeur du champ StandardCost en une valeur exprimée en dollars :
=Code.ToUSD(Fields!StandardCost.Value)
Voir aussi
Concepts
Utilisation d'expressions dans un rapport (Concepteur de rapports Visual Studio)
Définition de paramètres de rapport dans un rapport (Concepteur de rapports Visual Studio)
Ajout d'en-têtes et de pieds de page à un rapport (Concepteur de rapports Visual Studio)
Ajout d'un style et d'une mise en forme à un rapport (Concepteur de rapports Visual Studio)
Ajout d'interactivité, de visibilité et de navigation à un rapport (Concepteur de rapports Visual Studio)