Выражения (построитель отчетов и службы SSRS)Expressions (Report Builder and SSRS)

Выражения часто используются в отчетах с разбивкой на страницы Службы Reporting ServicesReporting Services для получения, вычисления, отображения, группирования, сортировки, параметризации и форматирования данных.Expressions are widely used throughout Службы Reporting ServicesReporting Services paginated reports to retrieve, calculate, display, group, sort, filter, parameterize, and format data.

Многие свойства элементов отчета могут быть заданы в виде выражений.Many report item properties can be set to an expression. С помощью выражений можно управлять содержимым, внешним видом и интерактивными возможностями отчета.Expressions help you control the content, design, and interactivity of your report. Выражения пишутся на языке MicrosoftMicrosoft Visual BasicVisual Basic, сохраняются в определении отчета и вычисляются обработчиком отчетов при выполнении отчета.Expressions are written in MicrosoftMicrosoft Visual BasicVisual Basic, saved in the report definition, and evaluated by the report processor when you run the report.

В отличие от приложений вроде MicrosoftMicrosoft Office Excel, где работа с данными идет напрямую на листе, в отчете работа ведется с выражениями, являющимися заполнителями для данных.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. Чтобы просмотреть фактические данные из вычисленных выражений, необходимо просмотреть отчет.To see the actual data from the evaluated expressions, you must preview the report. При запуске отчета обработчик отчета вычисляет каждое выражение, объединяя данные отчета и элементы макета отчета, такие как таблицы и диаграммы.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.

При конструировании отчета многие выражения для элементов отчета будут уже заданы.As you design a report, many expressions for report items are set for you. Например, если перетащить поле с панели данных в ячейку таблицы в области конструктора отчета, в качестве значения текстового поля будет задано простое выражение для поля.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. На следующем рисунке область данных отчета отображает такие поля наборов данных, как ID, Name, SalesTerritory, Code и Sales.In the following figure, the Report Data pane displays the dataset fields ID, Name, SalesTerritory, Code, and Sales. В таблицу добавлено три поля: [Name], [Code] и [Sales].Three fields have been added to the table: [Name], [Code], and [Sales]. Обозначение [Name] в области конструктора представляет базовое выражение =Fields!Name.Value.The notation [Name] on the design surface represents the underlying expression =Fields!Name.Value.

rs_DataDesignandPreviewrs_DataDesignandPreview

При предварительном просмотре отчета обработчик отчетов комбинирует табличную область данных с фактическими данными из подключения к данным и отображает строку в таблице для каждой строки в результирующем наборе.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.

Чтобы ввести выражения вручную, выберите элемент в области конструктора и с помощью контекстных меню и диалоговых окон задайте свойства этого элемента.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. Если присутствует кнопка (fx) или значение <Expression> в раскрывающемся списке, то для свойства можно задать выражение.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. Дополнительные сведения см. в разделе Добавление выражения (построитель отчетов и службы SSRS).For more information, see Add an Expression (Report Builder and SSRS).

Для разработки сложных выражений или выражений, использующих пользовательский код или пользовательские сборки, рекомендуется использовать конструктор отчетов среды SQL Server Data Tools (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 Server Data Tools (SSDT)SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Пользовательский код и ссылки на сборки в выражениях в конструкторе отчетов (службы SSRS).For more information, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).

Примечание

Создать и изменить разбитое на страницы определение отчета (RDL-файл) в 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. В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов.Each authoring environment provides different ways to create, open, and save reports and related items.

Основные сведения о простых и сложных выраженияхUnderstanding Simple and Complex Expressions

Выражения начинаются со знака равенства (=) и создаются на языке MicrosoftMicrosoft Visual BasicVisual Basic.Expressions begin with an equal sign (=) and are written in MicrosoftMicrosoft Visual BasicVisual Basic. Они могут включать сочетание констант, операторов и ссылок на встроенные значения (поля, коллекции и функции), а также на внешний и пользовательский код.Expressions can include a combination of constants, operators, and references to built-in values (fields, collections, and functions), and to external or custom code.

Выражения можно использовать, чтобы задавать значения различных свойств элементов отчета.You can use expressions to specify the value of many report item properties. Самыми распространенными свойствами являются значения для текстовых полей и текста заполнителя.The most common properties are values for text boxes and placeholder text. Как правило, если текстовое поле содержит только одно выражение, это выражение является значением для свойства текстового поля.Typically, if a text box contains only one expression, the expression is the value of the text box property. Если текстовое поле содержит несколько выражений, каждое выражение является значением текста заполнителя в текстовом поле.If a text box contains multiple expressions, each expression is the value of placeholder text in the text box.

По умолчанию выражения отображаются в области конструктора отчетов в виде простых или сложных выражений.By default, expressions appear on the report design surface as simple or complex expressions.

  • Простое. Простое выражение содержит ссылку на единственный элемент во встроенной коллекции, например поле набора данных, параметр или встроенное поле.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. В области конструктора простое выражение отображается в скобках.On the design surface, a simple expression appears in brackets. Например, [FieldName] соответствует базовому выражению =Fields!FieldName.Value.For example, [FieldName] corresponds to the underlying expression =Fields!FieldName.Value. Простые выражения создаются автоматически по мере создания макета отчета и перетаскивания элементов из панели данных отчета на панель конструктора.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. Дополнительные сведения о символах, представляющих различные встроенные коллекции, см. в разделе Основные сведения о символах префиксов в простых выражениях.For more information about the symbols that represent different built-in collections, see Understanding Prefix Symbols for Simple Expressions.

  • Сложные. Сложные выражения содержат ссылки на несколько встроенных ссылок, операторов и вызовов функций.Complex A complex expression contains references to multiple built-in references, operators, and function calls. Сложное выражение отображается как <<Выраж>>, если значение выражения включает больше, чем простую ссылку.A complex expression appears as <<Expr>> when the expression value includes more than a simple reference. Для просмотра выражения наведите на него курсор и воспользуйтесь подсказкой.To view the expression, hover over it and use the tooltip. Чтобы изменить выражение, откройте его в диалоговом окне Выражение .To edit the expression, open it in the Expression dialog box.

На следующем рисунке показаны типичные простые и сложные выражения как для текстовых полей, так и для текста заполнителя.The following figure shows typical simple and complex expressions for both text boxes and placeholder text.

rs_ExpressionDefaultFormatrs_ExpressionDefaultFormat

Чтобы вместо текста выражений отобразить образцы значений, примените форматирование к текстовому полю или к тексту заполнителя.To display sample values instead of text for expressions, apply formatting to the text box or placeholder text. На следующем рисунке показана область конструктора отчетов с отображением образцов значений.The following figure shows the report design surface toggled to show sample values:

rs_ExpressionSampleValuesFormatrs_ExpressionSampleValuesFormat

Дополнительные сведения см. в разделе Форматирование текста и заполнителей (построитель отчетов и службы SSRS).For more information, see Formatting Text and Placeholders (Report Builder and SSRS).

Основные сведения о символах префиксов в простых выраженияхUnderstanding Prefix Symbols in Simple Expressions

В простых выражениях используются символы, чтобы указать, ссылается ли оно на поле, параметр, встроенную коллекцию или коллекцию ReportItems.Simple expressions use symbols to indicate whether the reference is to a field, a parameter, a built-in collection, or the ReportItems collection. В следующей таблице показаны примеры отображаемого текста и текста выражения.The following table shows examples of display and expression text:

ЭлементItem Пример отображаемого текстаDisplay text example Пример текста выраженияExpression text example
Поля набора данныхDataset fields [Sales]

[SUM(Sales)]

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

=Sum(Fields!Sales.Value)

=First(Fields!Store.Value)
Параметры отчетаReport parameters [@Param]

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

=Parameters!Param.Label
Встроенные поляBuilt-in fields [&ReportName] =Globals!ReportName.Value
Литеральные символы для отображения текстаLiteral characters used for display text \[Sales\] [Sales]

Написание сложных выраженийWriting Complex Expressions

Выражения могут включать ссылки на функции, операторы, константы, поля, параметры и элементы из встроенных коллекций, а также ссылки на внедренный пользовательский код или пользовательские сборки.Expressions can include references to functions, operators, constants, fields, parameters, items from built-in collections, and to embedded custom code or custom assemblies.

Примечание

Для разработки сложных выражений или выражений, использующих пользовательский код или пользовательские сборки, рекомендуется использовать конструктор отчетов среды SQL ServerSQL ServerSQL Server Data Tools (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 ServerSQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT). Дополнительные сведения см. в разделе Пользовательский код и ссылки на сборки в выражениях в конструкторе отчетов (службы SSRS).For more information, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).

В следующей таблице перечислены типы ссылок, которые можно включать в выражение.The following table lists the kinds of references you can include in an expression:

СсылкиReferences ОписаниеDescription ПримерExample
КонстантыConstants Описывает константы для свойств, требующих постоянных значений, таких как цвет шрифта; к этим константам можно получить доступ в диалоговом режиме.Describes the constants you can access interactively for properties that require constant values, such as font colors. ="Blue"
ОператорыOperators Описывает операторы, которые можно использовать для объединения ссылок в выражении.Describes the operators you can use to combine references in an expression. Например, оператор & используется для объединения строк.For example, the & operator is used for concatenating strings. ="The report ran at: " & Globals!ExecutionTime & "."
Встроенные коллекцииBuilt-in Collections Описывает встроенные коллекции, которые можно включить в выражение, например Fields, Parametersи 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
Встроенные функции отчета и агрегатные функцииBuilt-in Report and Aggregate Functions Описывает встроенные функции, такие как Sum и Previous, к которым можно получить доступ из выражения.Describes the built-in functions, such as Sum or Previous, that you can access from an expression. =Previous(Sum(Fields!Sales.Value))
Пользовательский код и ссылки на сборки в выражениях в конструкторе отчетов (службы SSRS)Custom Code and Assembly References in Expressions in Report Designer (SSRS) Описывает, как получить доступ к встроенным классам среды CLR Math и Convert, другим классам среды CLR, функциям библиотеки времени выполнения Visual BasicVisual Basic или методам из внешней сборки.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.

Описывает, как получить доступ к пользовательскому коду, внедренному в отчет или скомпилированному и установленному в виде пользовательской сборки на клиент отчета и сервер отчетов.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)

Проверка выраженийValidating Expressions

При создании выражения для определенного свойства элемента отчета типы ссылок, которые могут быть включены в выражение, зависят от значений, которые может принимать свойство элемента отчета, и от области, в которой это свойство вычисляется.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. Пример:For example:

  • По умолчанию выражение [Sum] вычисляет сумму данных, находящихся в области в момент вычисления выражения.By default, the expression [Sum] calculates the sum of data that is in scope at the time the expression is evaluated. Для табличной ячейки область зависит от членства групп строк и столбцов.For a table cell, the scope depends on row and column group memberships. Дополнительные сведения см. в разделе Область выражения для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов и службы SSRS).For more information, see Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).

  • Применительно к значению свойства Font это значение должно представлять название шрифта.For the value for a Font property, the value must evaluate to the name of a font.

  • Синтаксис выражения проверяется во время разработки.Expression syntax is validated at design time. При публикации отчета происходит проверка области выражения.Expression scope validation occurs when you publish the report. При проверке, зависящей от фактических данных, ошибки могут быть выявлены только в ходе выполнения.For validation that depends on the actual data, errors can only be detected at run-time. Некоторые из этих выражений выдают #Error в качестве сообщения об ошибке в подготовленном отчете.Some of these expressions produce #Error as an error message in the rendered report. Чтобы определить причины для этого типа ошибки, необходимо воспользоваться конструктором отчетов в среде SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).To help determine the issues for this kind of error, you must use Report Designer in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT). В конструкторе отчетов отображается окно вывода, содержащее дополнительные сведения об этих ошибках.Report Designer provides an Output window that provides more information about these errors.

Дополнительные сведения см. в разделе Справочник выражений (построитель отчетов и службы SSRS).For more information, see Expression Reference (Report Builder and SSRS).

в этом разделеIn This Section

Добавление выражения (построитель отчетов и службы SSRS)Add an Expression (Report Builder and SSRS)

Использование выражений в отчетах (построитель отчетов и службы SSRS)Expression Uses in Reports (Report Builder and SSRS)

Область выражения для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов и службы SSRS)Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)

Справочник выражений (построитель отчетов и службы SSRS)Expression Reference (Report Builder and SSRS)

См. также:See Also

Дополнительные сведения и примеры см. в следующих разделах:For more information and examples, see the following topics: