Expressions (Générateur de rapports et SSRS)Expressions (Report Builder and SSRS)

Les expressions sont couramment utilisées dans des rapports Reporting ServicesReporting Services pour récupérer, calculer, afficher, regrouper, trier, filtrer, paramétrer et mettre en forme les données d’un rapport.Expressions are widely used throughout Reporting ServicesReporting Services paginated reports to retrieve, calculate, display, group, sort, filter, parameterize, and format data.

De nombreuses propriétés d'élément de rapport peuvent avoir la valeur d'une expression.Many report item properties can be set to an expression. Les expressions vous aident à contrôler le contenu, la conception et l'interactivité de votre rapport.Expressions help you control the content, design, and interactivity of your report. Les expressions sont écrites dans MicrosoftMicrosoft Visual BasicVisual Basic, enregistrées dans la définition de rapport et évaluées par le processeur de rapports au moment où vous exécutez le rapport.Expressions are written in MicrosoftMicrosoft Visual BasicVisual Basic, saved in the report definition, and evaluated by the report processor when you run the report.

Contrairement à certaines applications comme MicrosoftMicrosoft Office Excel, où vous utilisez les données directement dans une feuille de calcul, dans un rapport, vous utilisez des expressions qui représentent des espaces réservés pour les données.Unlike applications such as MicrosoftMicrosoft Office Excel where you work with data directly in a worksheet, in a report, you work with expressions that are placeholders for data. Pour consulter les données effectives des expressions évaluées, vous devez afficher un aperçu du rapport.To see the actual data from the evaluated expressions, you must preview the report. Lorsque vous exécutez le rapport, le processeur de rapports évalue chaque expression au moment de combiner les données de rapport et les éléments de disposition du rapport tels que les tableaux et les graphiques.When you run the report, the report processor evaluates each expression as it combines report data and report layout elements such as tables and charts.

Lorsque vous concevez un rapport, de nombreuses expressions relatives aux éléments de rapport sont définies automatiquement.As you design a report, many expressions for report items are set for you. Par exemple, lorsque vous faites glisser un champ du volet de données vers une cellule de tableau sur l'aire de conception du rapport, la zone de texte prend la valeur d'une expression simple pour le champ.For example, when you drag a field from the data pane to a table cell on the report design surface, the text box value is set to a simple expression for the field. Dans l'illustration suivante, le volet des données de rapport affiche l'ID des champs du dataset, Name, SalesTerritory, Code et Sales.In the following figure, the Report Data pane displays the dataset fields ID, Name, SalesTerritory, Code, and Sales. Trois champs ont été ajoutés à la table : [Name], [Code] et [Sales].Three fields have been added to the table: [Name], [Code], and [Sales]. La notation [Name] sur l'aire de conception représente l'expression sous-jacente =Fields!Name.Value.The notation [Name] on the design surface represents the underlying expression =Fields!Name.Value.

rs_DataDesignandPreviewrs_DataDesignandPreview

Lorsque vous affichez un aperçu du rapport, le processeur de rapports combine la région de données de table avec les données effectives de la connexion de données, puis affiche une ligne dans la table pour chaque ligne du jeu de résultats.When you preview the report, the report processor combines the table data region with the actual data from the data connection and displays a row in the table for every row in the result set.

Pour entrer manuellement des expressions, sélectionnez un élément dans l'aire de conception, puis utilisez les menus contextuels et boîtes de dialogue pour définir les propriétés de l'élément.To enter expressions manually, select an item on the design surface, and use shortcut menus and dialog boxes to set the properties of the item. Quand vous voyez le bouton (fx) ou la valeur <Expression> dans une liste déroulante, vous savez que vous pouvez attribuer une expression à la propriété.When you see the (fx) button or the value <Expression> in a drop-down list, you know that you can set the property to an expression. Pour plus d’informations, consultez Ajouter une expression (Générateur de rapports et SSRS).For more information, see Add an Expression (Report Builder and SSRS).

Pour développer des expressions complexes ou des expressions qui utilisent du code personnalisé ou des assemblys personnalisés, il est recommandé de recourir au Concepteur de rapports dans Outils de données SQL Server (SSDT)SQL Server Data Tools (SSDT).To develop complex expressions or expressions that use custom code or custom assemblies, we recommend that you use Report Designer in Outils de données SQL Server (SSDT)SQL Server Data Tools (SSDT). Pour plus d’informations, consultez Code personnalisé et références d’assembly dans les expressions du Concepteur de rapports (SSRS).For more information, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).

Note

Vous pouvez créer et modifier des fichiers de définition de rapport (.rdl) paginés dans le Générateur de rapports et dans le Concepteur de rapports dans SQL Server Data Tools.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. Chaque environnement de création offre différentes possibilités pour créer, ouvrir et enregistrer des rapports et des éléments connexes.Each authoring environment provides different ways to create, open, and save reports and related items.

Présentation des expressions simples et complexesUnderstanding Simple and Complex Expressions

Les expressions commencent par un signe égal (=) et sont écrites en langage MicrosoftMicrosoft Visual BasicVisual Basic.Expressions begin with an equal sign (=) and are written in MicrosoftMicrosoft Visual BasicVisual Basic. Les expressions peuvent se composer d'une combinaison de constantes, d'opérateurs et de références à des valeurs prédéfinies (champs, collections et fonctions) ainsi qu'à du code externe ou personnalisé.Expressions can include a combination of constants, operators, and references to built-in values (fields, collections, and functions), and to external or custom code.

Vous pouvez utiliser des expressions pour spécifier la valeur de nombreuses propriétés d'élément de rapport.You can use expressions to specify the value of many report item properties. Les propriétés les plus usuelles sont les valeurs des zones de texte et du texte de l'espace réservé.The most common properties are values for text boxes and placeholder text. En règle générale, si une zone de texte contient une seule expression, celle-ci représente la valeur de la propriété de la zone de texte.Typically, if a text box contains only one expression, the expression is the value of the text box property. Si une zone de texte contient plusieurs expressions, chaque expression représente la valeur du texte de l'espace réservé dans la zone de texte.If a text box contains multiple expressions, each expression is the value of placeholder text in the text box.

Par défaut, les expressions s’affichent dans l’aire de conception du rapport sous la forme d’expressions simples ou complexes.By default, expressions appear on the report design surface as simple or complex expressions.

  • Simple : une expression simple contient une référence à un élément unique dans une collection intégrée, par exemple un champ de dataset, un paramètre ou un champ prédéfini.Simple A simple expression contains a reference to a single item in a built-in collection, for example, a dataset field, a parameter, or a built-in field. Sur l'aire de conception, une expression simple apparaît entre parenthèses.On the design surface, a simple expression appears in brackets. Par exemple, [FieldName] correspond à l’expression sous-jacente =Fields!FieldName.Value.For example, [FieldName] corresponds to the underlying expression =Fields!FieldName.Value. Les expressions simples sont créées automatiquement lorsque vous créez la mise en page du rapport et que vous faites glisser des éléments du volet des données de rapport vers l'aire de conception.Simple expressions are created for you automatically as you create the report layout and drag items from the Report Data pane to the design surface. Pour plus d’informations sur les symboles qui représentent les différentes collections intégrées, consultez Présentation des symboles de préfixe dans les expressions simples.For more information about the symbols that represent different built-in collections, see Understanding Prefix Symbols for Simple Expressions.

  • Complexe : une expression complexe contient des références à plusieurs références intégrées, opérateurs et appels de fonction.Complex A complex expression contains references to multiple built-in references, operators, and function calls. Une expression complexe se présente sous la forme <<Expr>> quand la valeur d’expression inclut plusieurs références simples.A complex expression appears as <<Expr>> when the expression value includes more than a simple reference. Pour consulter l'expression, pointez sur cette dernière et utilisez l'info-bulle.To view the expression, hover over it and use the tooltip. Pour modifier l’expression, ouvrez-la dans la boîte de dialogue Expression .To edit the expression, open it in the Expression dialog box.

    L'illustration suivante montre des expressions simples et complexes classiques pour des zones de texte et du texte d'espace réservé.The following figure shows typical simple and complex expressions for both text boxes and placeholder text.

    rs_ExpressionDefaultFormatrs_ExpressionDefaultFormat

    Pour afficher des exemples de valeurs à la place du texte pour les expressions, appliquez la mise en forme à la zone de texte ou au texte de l'espace réservé.To display sample values instead of text for expressions, apply formatting to the text box or placeholder text. L'illustration suivante montre l'aire de conception du rapport de manière à afficher les exemples de valeurs :The following figure shows the report design surface toggled to show sample values:

    rs_ExpressionSampleValuesFormatrs_ExpressionSampleValuesFormat

    Pour plus d’informations, consultez Mise en forme du texte et des espaces réservés (Générateur de rapports et SSRS).For more information, see Formatting Text and Placeholders (Report Builder and SSRS).

Formules de modèle de rapportReport Model Formulas

Quand vous concevez une requête pour un dataset qui utilise un modèle de rapport comme source de données, vous pouvez créer des formules.When you are designing a query for a dataset that uses a report model as a data source, you can create formulas. Les formules sont des calculs effectués sur les valeurs d'un rapport qui sont basées sur des données d'un modèle de rapport.Formulas are calculations performed on values in a report that are based on data from a report model.

Pour plus d’informations, consultez Formules dans les requêtes de modèle de rapport (Générateur de rapports et SSRS).For more information, see Formulas in Report Model Queries (Report Builder and SSRS).

Présentation des symboles de préfixe dans les expressions simplesUnderstanding Prefix Symbols in Simple Expressions

Les expressions simples utilisent des symboles pour indiquer si la référence est une référence à un champ, un paramètre, une collection intégrée ou la collection ReportItems.Simple expressions use symbols to indicate whether the reference is to a field, a parameter, a built-in collection, or the ReportItems collection. Le tableau suivant présente des exemples de texte affiché et de texte d'expression :The following table shows examples of display and expression text:

ÉlémentItem Exemple de texte affichéDisplay text example Exemple de texte d'expressionExpression text example
Champs de datasetDataset fields [Sales]

[SUM(Sales)]

[FIRST(Store)]
=Fields!Sales.Value

=Sum(Fields!Sales.Value)

=First(Fields!Store.Value)
Paramètres du rapportReport parameters [@Param]

[@Param.Label]
=Parameters!Param.Value

=Parameters!Param.Label
Champs prédéfinisBuilt-in fields [&ReportName] =Globals!ReportName.Value
Caractères littéraux utilisés pour le texte affichéLiteral characters used for display text \[Sales\] [Sales]

Écriture d'expressions complexesWriting Complex Expressions

Les expressions peuvent inclure des références à des fonctions, des opérateurs, des constantes, des champs, des paramètres, des éléments provenant de collections intégrées, ainsi que des références à du code personnalisé incorporé ou à des assemblys personnalisés.Expressions can include references to functions, operators, constants, fields, parameters, items from built-in collections, and to embedded custom code or custom assemblies.

Note

Pour développer des expressions complexes ou des expressions qui utilisent du code personnalisé ou des assemblys personnalisés, il est recommandé de recourir au Concepteur de rapports dans SQL ServerSQL Server Outils de données SQL Server (SSDT)SQL Server Data Tools (SSDT).To develop complex expressions or expressions that use custom code or custom assemblies, we recommend that you use Report Designer in SQL ServerSQL Server Outils de données SQL Server (SSDT)SQL Server Data Tools (SSDT). Pour plus d’informations, consultez Code personnalisé et références d’assembly dans les expressions du Concepteur de rapports (SSRS).For more information, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).

Le tableau suivant répertorie les types de références que vous pouvez inclure dans une expression :The following table lists the kinds of references you can include in an expression:

RéférencesReferences DescriptionDescription ExempleExample
ConstantesConstants Décrit les constantes auxquelles vous pouvez accéder de manière interactive pour les propriétés qui requièrent des valeurs constantes ; par exemple les couleurs de police.Describes the constants you can access interactively for properties that require constant values, such as font colors. ="Blue"
OpérateursOperators Décrit les opérateurs que vous pouvez utiliser pour combiner des références dans une expression.Describes the operators you can use to combine references in an expression. Par exemple, l’opérateur & sert à concaténer des chaînes.For example, the & operator is used for concatenating strings. ="The report ran at: " & Globals!ExecutionTime & "."
Collections intégréesBuilt-in Collections Décrit les collections intégrées que vous pouvez inclure dans une expression ; par exemple, Fields, Parameterset Variables.Describes the built-in collections that you can include in an expression, such as Fields, Parameters, and Variables. =Fields!Sales.Value

=Parameters!Store.Value

=Variables!MyCalculation.Value
Fonctions de rapport et d'agrégation intégréesBuilt-in Report and Aggregate Functions Décrit les fonctions intégrées, telles que Sum ou Previous, auxquelles vous pouvez accéder à partir d’une expression.Describes the built-in functions, such as Sum or Previous, that you can access from an expression. =Previous(Sum(Fields!Sales.Value))
Code personnalisé et références d’assembly dans les expressions du Concepteur de rapports (SSRS)Custom Code and Assembly References in Expressions in Report Designer (SSRS) Explique comment vous pouvez accéder aux classes CLR intégrées Math et Convertet à d’autres classes CLR, à des fonctions de la bibliothèque runtime Visual BasicVisual Basic ou à des méthodes à partir d’un assembly externe.Describes how you can access the built-in CLR classes Math and Convert, other CLR classes, Visual BasicVisual Basic run-time library functions, or methods from an external assembly.

Explique comment vous pouvez accéder à du code personnalisé qui est incorporé dans votre rapport ou que vous compilez et installez en tant qu'assembly personnalisé à la fois sur le client de rapports et sur le serveur de rapports.Describes how you can access custom code that is embedded in your report, or that you compile and install as a custom assembly on both the report client and the report server.
=Sum(Fields!Sales.Value)

=CDate(Fields!SalesDate.Value)

=DateAdd("d",3,Fields!BirthDate.Value)

=Code.ToUSD(Fields!StandardCost.Value)

Validation d'expressionsValidating Expressions

Lorsque vous créez une expression pour une propriété d'élément de rapport spécifique, les références que vous pouvez inclure dans l'expression dépendent des valeurs que la propriété d'élément de rapport peut accepter et de l'étendue dans laquelle la propriété est évaluée.When you create an expression for a specific report item property, the references that you can include in an expression depend on the values that the report item property can accept and the scope in which the property is evaluated. Par exemple :For example:

  • Par défaut, l'expression [Sum] calcule la somme des données qui se trouvent dans l'étendue au moment où l'expression est évaluée.By default, the expression [Sum] calculates the sum of data that is in scope at the time the expression is evaluated. Pour une cellule de tableau, l'étendue dépend des membres du groupe de lignes et de colonnes.For a table cell, the scope depends on row and column group memberships. Pour plus d’informations, consultez Étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports et SSRS).For more information, see Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).

  • Pour une propriété Font, la valeur doit correspondre au nom d’une police.For the value for a Font property, the value must evaluate to the name of a font.

  • La syntaxe de l'expression est validée au moment du design.Expression syntax is validated at design time. La validation de l'étendue de l'expression se produit lorsque vous publiez le rapport.Expression scope validation occurs when you publish the report. Lorsque la validation dépend des données effectives, les erreurs ne peuvent être détectées qu'au moment de l'exécution.For validation that depends on the actual data, errors can only be detected at run-time. Certaines de ces expressions produisent le message d'erreur #Error dans le rapport rendu.Some of these expressions produce #Error as an error message in the rendered report. Pour faciliter l'identification des problèmes liés à ce type d'erreur, vous devez utiliser le Concepteur de rapports dans Outils de données SQL Server (SSDT)SQL Server Data Tools (SSDT).To help determine the issues for this kind of error, you must use Report Designer in Outils de données SQL Server (SSDT)SQL Server Data Tools (SSDT). Le Concepteur de rapports fournit une fenêtre Sortie qui indique des informations supplémentaires sur ces erreurs.Report Designer provides an Output window that provides more information about these errors.

    Pour plus d’informations, consultez Référence d’expression (Générateur de rapports et SSRS).For more information, see Expression Reference (Report Builder and SSRS).

Dans cette sectionIn This Section

Ajouter une expression (Générateur de rapports et SSRS)Add an Expression (Report Builder and SSRS)

Utilisation d’expressions dans les rapports (Générateur de rapports et SSRS)Expression Uses in Reports (Report Builder and SSRS)

Étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports et SSRS)Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)

Référence d’expression (Générateur de rapports et SSRS)Expression Reference (Report Builder and SSRS)

Voir aussiSee Also

Pour plus d'informations et pour obtenir des exemples, consultez les rubriques suivantes :For more information and examples, see the following topics: