Utilisation d'expressions dans Reporting Services

Nouveau : 5 décembre 2005

Dans Reporting Services, les expressions offrent une souplesse dynamique dans le contrôle du contenu et de l'aspect d'un rapport. Certaines expressions sont créées automatiquement. Par exemple, lorsque vous créez un nouveau rapport et que vous faites glisser des champs de datasets sur des éléments de rapport, les valeurs des zones de texte prennent automatiquement les valeurs des expressions faisant référence aux champs de dataset par le nom. Lors du traitement du rapport, chaque expression est évaluée à une valeur spécifique qui remplace l'expression lors du rendu du rapport. Les expressions sont également utilisées dans la définition du rapport pour spécifier ou calculer des valeurs pour des propriétés d'éléments de rapport, des propriétés de zones de texte, des paramètres, des requêtes, des signets, des explorateurs de documents, des filtres et des définitions de groupe et de tri.

Vous pouvez créer des expressions sur des éléments de rapport en entrant du texte dans des zones de texte, dans des propriétés ou par le biais d'une boîte de dialogue. Une expression est écrite en Microsoft Visual Basic. Une expression commence par un signe égal (=) et est composée de références à des constantes, des opérateurs, des fonctions et des collections globales de rapport intégrées incluant des champs et des paramètres. Vous pouvez également créer des références à des classes .NET Framework, du code personnalisé et des assemblys externes au traitement du rapport. Pour plus d'informations sur la création d'expressions, consultez Création d'expressions dans Reporting Services.

Cette rubrique présente les endroits où vous pouvez utiliser des expressions dans des définitions de rapport. Les exemples de cette rubrique sont basés sur le dataset AdventureWorks créé dans le didacticiel, Création d'un rapport de base. Pour démarrer avec des exemples, consultez Exemples d'expressions dans Reporting Services.

Utilisation d'expressions de champ

Vous pouvez utiliser des expressions pour faire référence à un champ à partir d'un dataset et afficher sa valeur dans une zone de texte. Pour lier les données extraites à un élément du rapport, l'expression de champ doit utiliser la collection globale Fields, le nom du champ et la propriété Value.

  • Lorsque vous faites glisser un champ d'une fenêtre de dataset sur un élément de rapport, une expression de champ est automatiquement ajoutée à la zone de texte.
    Exemple :
    =Fields!LastName.Value
    Résultat :
    Reiter
    Reiter
    Saraiva
  • Vous pouvez combiner les données de plusieurs champs ou de plusieurs constantes.
    Exemple :
    =Fields!FirstName.Value & " " & Fields!LastName.Value
    Résultat :
    Tsvi Reiter
    Tsvi Reiter
    Jose Saraiva

Pour obtenir la liste de tous les types de références que vous pouvez utiliser dans une expression, consultez Création d'expressions dans Reporting Services.

Utilisation des fonctions intégrées de Reporting Services

Vous pouvez utiliser des expressions pour faire référence aux différentes fonctions de rapport intégrées à partir d'une expression. Celles-ci vont des fonctions d'agrégation standard, telles que Sum, Min, Max et Count qui sont utilisées pour calculer des valeurs pour un groupe de lignes, aux fonctions telles que RowNumber et RunningValue que vous pouvez utiliser dans des lignes de détail pour fournir des valeurs pour chaque ligne.

  • Compter le nombre de noms dans le champ LastName d'un dataset nommé SalesOrder en utilisant la fonction d'agrégation Count. Bien que vous puissiez placer l'expression dans la ligne de détail du tableau, vous pouvez voir la même valeur entrée dans chacune des 3 906 lignes. Les fonctions d'agrégation sont conçues pour synthétiser les lignes de détails, et sont généralement utilisées dans des zones de texte dans les lignes d'en-tête ou de pied de page d'une région de données ou d'un groupement de régions de données.
    Exemple :
    ="Number of Names: " & Count(Fields!LastName.Value)
    Résultat :
    Number of Names: 3906
  • Calculer la somme du champ TotalDue à l'aide de la fonction d'agrégation Sum. Placez cette valeur dans la ligne de pied de page du tableau. Notez que la valeur n'est pas mise en forme.
    Exemple :
    ="Total Sold: " & Sum(Fields!TotalDue.Value)
    Résultat :
    Total Sold: 108266245.7018
  • Formater une valeur numérique à l'aide de la fonction Format et une chaîne de mise en forme Microsoft .NET, C.
    Exemple :
    ="Total Sold: " & Format(Sum(Fields!TotalDue.Value),"C")
    Résultat :
    Total Sold: $108,266,245.70
  • Numéroter les lignes à l'aide de la fonction RowNumber.
    Exemple :
    =RowNumber(Nothing)
    Résultat :
    1
    2
    3
  • Utiliser RunningValue pour agréger un total cumulé pour l'étendue donnée.
    Exemple :
    =Format(RunningValue(Fields!TotalDue.Value,Sum,Nothing),"C")
    Résultat :
    $27,231.55
    $28,947.73

Pour une liste complète des fonctions intégrées pouvant être référencées à partir d'une expression, consultez Utilisation de fonctions de rapport dans des expressions (Reporting Services).

Étendue

Comme plusieurs groupes ont été définis, vous pouvez spécifier l'étendue qu'une fonction d'agrégation doit utiliser. Les étendues sont des noms que vous pouvez transmettre à des fonctions d'agrégation pour indiquer comment vous souhaitez calculer les agrégations. Par exemple, pour les tableaux ayant plusieurs groupes définis, vous pouvez faire référence à un groupe extérieur à partir de la ligne d'en-tête d'un groupe intérieur. L'étendue Nothing demande à une fonction d'utiliser l'étendue la plus à l'extérieur. Pour une région de données de tableau simple sans groupement, il n'y a qu'une seule étendue.

Pour identifier les étendues valides pour un groupement d'éléments de rapport, sélectionnez l'élément, ouvrez la boîte de dialogue Propriétés, cliquez sur l'onglet Groupes, et affichez la liste d'étiquettes de groupe pouvant être utilisées pour identifier des étendues.

Utilisation des espaces de noms .NET Framework et System

Vous pouvez faire référence aux espaces de noms intégrés de la bibliothèque d'exécutables Microsoft.VisualBasic, et aux espaces de noms .NET Framework System.Convert et System.Math. Pour faire référence à d'autres espaces de noms .NET Framework CLR (Common Language Runtime), vous devez utiliser l'espace de noms complet, par exemple System.Text.StringBuilder. Pour des références à des assemblys externes, vous devez identifier l'assembly au moyen des propriétés de rapport et vous assurer qu'il est disponible sur le serveur de rapports. Pour plus d'informations, consultez Procédure : ajouter une référence d'assembly à un rapport (Générateur de rapports) et Referencing Assemblies in an RDL File.

Utilisation de code personnalisé et de références de classe

Vous pouvez utiliser des expressions pour faire référence à vos propres instances personnalisées et de classe. Pour cela, vous ajoutez du code directement au rapport au moyen des propriétés du rapport ou en créant un assembly personnalisé et en y faisant référence dans une expression. Pour plus d'informations, consultez Utilisation de références de code personnalisé dans des expressions (Reporting Services).

Utilisation d'une mise en forme conditionnelle

Vous pouvez utiliser des expressions pour contrôler l'aspect d'un élément de rapport. Par exemple, vous pouvez écrire une expression pour la propriété Color d'une zone de texte de sorte que les données soient affichées dans une couleur différente en fonction d'une condition. L'exemple suivant affiche en rouge la valeur du champ TotalDue si elle est inférieure à 10 000. Si la condition n'est pas remplie, le texte apparaît en noir.

=Iif(Fields!TotalDue.Value < 10000,"Red","Black")

Pour entrer des expressions de mise en forme pour un élément de rapport, ouvrez la fenêtre Propriétés et tapez l'expression dans le champ de valeur de la propriété à mettre en forme. Pour plus d'informations sur la mise en forme conditionnelle, consultez Ajout d'une mise en forme conditionnelle.

Utilisation d'expressions de requête

Vous pouvez utiliser des expressions pour définir la requête contenue dans un dataset. Cette approche vous permet de concevoir des rapports où la requête change en fonction de l'entrée de l'utilisateur, de données d'autres datasets ou d'autres variables. Pour plus d'informations sur les requêtes, consultez Définition des datasets de rapports.

Utilisation d'expressions de filtrage, de groupement et de tri

Vous pouvez utiliser des expressions pour définir des filtres qui limitent la quantité de données ainsi que le type des données présentées dans un rapport. Les filtres sont appliqués aux données après leur extraction de la source de données. Vous pouvez définir des filtres sur des datasets, des régions de données et des groupements de régions de données. Pour plus d'informations sur le filtrage, consultez Procédure : ajouter un filtre (Générateur de rapports) et Filtrage de données dans un rapport.

Vous pouvez utiliser des expressions pour définir des groupes pour des régions de données. Vous utilisez fréquemment des expressions pour calculer des agrégations sur des données groupées. Les groupes sont définis en créant des en-têtes de groupe sur des régions de données. Pour plus d'informations sur le groupement de données, consultez Regroupement de données dans un rapport et Procédure : ajouter un groupe à un tableau (Générateur de rapports).

Vous pouvez utiliser des expressions pour définir un tri pour des régions de données. Vous pouvez trier des datasets, des lignes de détails sur une région de données, et des groupes sur une région de données. Pour plus d'informations sur le tri des données, consultez Tri des données dans un rapport et Procédure : trier les données dans une table (Concepteur de rapports).

Utilisation de collections de rapport intégrées

Vous pouvez utiliser des expressions pour faire référence à des classes de collections de rapports intégrées. Outre la collection Fields décrite plus haut, vous pouvez créer des expressions faisant référence à des éléments des collections suivantes : Globals, User, Parameters, ReportItems, DataSets et DataSources. Lorsqu'elles sont utilisées dans une expression, ces collections donnent accès à des propriétés de rapport et à des données déterminées dynamiquement lors du traitement du rapport. Pour plus d'informations, consultez Utilisation de collections globales dans les expressions (Reporting Services).

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 à extraire 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.

ms345242.note(fr-fr,SQL.90).gifRemarque :
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.

Voir aussi

Tâches

Procédure : ajouter une expression (Générateur de rapports)

Référence

Exemples d'expressions dans Reporting Services

Concepts

Rubriques Procédures relatives à la mise en page de rapports

Autres ressources

Modifier l'expression (Générateur de rapports)

Aide et Informations

Assistance sur SQL Server 2005