Использование выражений в отчетах с разбивкой на страницы (построитель отчетов)

Применяется к: Microsoft Report Builder (SSRS) Power BI Report Builder Конструктор отчетов в SQL Server Data Tools

В отчетах с разбивкой на страницы выражения используются в определении отчета для указания или вычисления значений параметров, запросов, фильтров, свойств элементов отчета, группирования и сортировки определений, свойств текстовых полей, закладок, схем документов, динамического содержимого верхних и нижних колонтитулов страницы, изображений и динамических определений источников данных. В данном разделе приводится множество примеров использования выражений для внесения разнообразия в содержимое или внешний вид отчета. Этот список не является исчерпывающим. Вы можете установить выражение для любого свойства в диалоговом окне, где отображается кнопка выражения (fx), или в выпадающем списке, где отображается< Expression...>.

Выражения бывают простыми и сложными. Простое выражение содержит ссылку на одно поле набора данных, параметр или встроенное поле. Сложные выражения могут содержать несколько встроенных ссылок, операторов и вызовов функций. Например, сложное выражение может включать функцию Sum, применяемую к полю Sales.

Выражения записываются на языке Microsoft Visual Basic. Выражение начинается со знака равенства (=), за которым следует сочетание ссылок на встроенные коллекции, например поля набора данных, параметры, константы, операторы и функции.

Примечание.

Файлы определения страничных отчетов (.rdl) можно создавать и изменять в Microsoft Report Builder, Power BI Report Builder и в конструктор отчетов в SQL Server Data Tools.

Использование простых выражений

Простые выражения отображаются в области конструктора и в диалоговых окнах в скобках; например, поле набора данных отображается как [ProductID]. Простые выражения создаются системой автоматически, при перетаскивании поля из набора данных в текстовое поле. Создается заполнитель, а выражение определяет базовое значение. Вы также можете вводить выражения непосредственно в ячейку области данных или текстовое поле как в области конструктора, так и в диалоговом окне (например, [ProductID]).

В следующей таблице приведены примеры использования простых выражений. В таблице описана функциональность, задаваемое свойство, диалоговое окно, в котором оно обычно задается, и значение свойства. Простые выражения можно вводить непосредственно в области конструктора, в диалоговом окне или на панели свойств, а также, как любые другие выражения, изменять в диалоговом окне «Выражение».

Функция Свойство, контекст и диалоговое окно Значение свойства
Задать поле набора данных для отображения в текстовом поле. Свойство Value для заполнителя внутри текстового поля. Используйте диалоговое окно Свойства заполнителя — Общие. [Sales]
Агрегатные значения для группы. Значение свойства для местозаполнителя в строке, связанной с группой tablix. Используйте диалоговое окно Свойства текстового поля. [Sum(Sales)]
Укажите номер страницы. Значение свойства для заполнителя в текстовом поле, расположенном в верхнем колонтитуле страницы. Используйте диалоговое окно Свойства текстового поля — Общие. [&PageNumber]
Отобразить значение выбранного параметра. Свойство Value для заполнителя внутри текстового поля на поверхности конструктора. Используйте диалоговое окно Свойства текстового поля — Общие. [@SalesThreshold]
Задать определение группы для области данных. Выражение группировки для группы табликса. Используйте диалоговое окно Свойства группы табликса — Общие. [Category]
Исключить из таблицы значение конкретного поля. Уравнение фильтра для табликса. Используйте диалоговое окно Свойства табликса — Фильтры. В качестве типа данных выберите Integer.

[Quantity]

>

100
Включить только конкретное значение для фильтра группирования. Уравнение фильтра для группы табликса. Используйте диалоговое окно Свойства группы табликса — Фильтры. [Category]

=

Clothing
Исключить из набора данных конкретные значения нескольких полей. Уравнение фильтра для группы в табликсе. Используйте диалоговое окно Свойства табликса — Фильтры. =[Color]

<>

Red

=[Color]

<>

Blue
Задать порядок сортировки по существующему полю таблицы. Выражение сортировки в табликсе. Используйте диалоговое окно Свойства табликса — Сортировка. [SizeSortOrder]
Связать параметр запроса с параметром отчета. Коллекция параметров набора данных. Используйте диалоговое окно Свойства набора данных — Параметры. [@Category]

[@Category]
Передать параметр из основного отчета в подотчет. Коллекция параметров подотчета. Используйте диалоговое окно Свойства вложенного отчета — Параметры. [@Category]

[@Category]

Использование сложных выражений

Сложные выражения могут содержать несколько встроенных ссылок, операторов и вызовов функций и отображаются на рабочей области конструктора как <<Expr>>. Чтобы просмотреть или изменить текст выражения, нужно открыть диалоговое окно Выражение или ввести выражение непосредственно в панели свойств. В приведенной ниже таблице описаны типичные примеры применения сложных выражений для вывода или организации данных и для изменения внешнего вида отчета. Указаны задаваемое свойство, диалоговое окно, в котором оно обычно задается, и значение свойства. Выражение можно ввести непосредственно в диалоговом окне, в области конструктора или в панели свойств.

Функция Свойство, контекст и диалоговое окно Значение свойства
Агрегатные вычисления значений в наборе данных. Значение свойства для заполнителя в текстовом поле. Используйте диалоговое окно Свойства заполнителя — Общие. =First(Fields!Sales.Value,"DataSet1")
Объединить текст и выражения в одном текстовом поле. Значение для заполнителя в текстовом поле, размещённом в верхнем или нижнем колонтитуле страницы. Используйте диалоговое окно Свойства заполнителя — Общие. ="This report began processing at " & Globals!ExecutionTime
Вычислить агрегированное значение для набора данных в другом контексте. Значение для заполнителя внутри текстового поля, размещённого в группе табликса. Используйте диалоговое окно Свойства заполнителя — Общие. =Max(Fields!Total.Value,"DataSet2")
Форматировать данные в текстовом поле в зависимости от их значения. Цвет замещающего текста внутри текстового поля в строке сведений для табликса. Используйте диалоговое окно Свойства текстового поля — Шрифт. =IIF(Fields!TotalDue.Value < 10000,"Red","Black")
Вычислите значение один раз, чтобы ссылаться на него по всему отчету. Значение для переменной отчета. Используйте диалоговое окно Свойства отчета — Переменные. =Variables!MyCalculation.Value
Включить в набор данных конкретные значения нескольких полей. Уравнение фильтра для группы в табликсе. Используйте диалоговое окно Свойства табликса — Фильтры. В качестве типа данных выберите Boolean.

=IIF(InStr(Fields!Subcat.Value,"Shorts")=0 AND (Fields!Size.Value="M" OR Fields!Size.Value="S"),TRUE, FALSE)

=

TRUE
Скрыть текстовое поле на поверхности конструктора, которое пользователь может показывать и скрывать с помощью логического параметра с именем Show. Свойство Hiddenproperty у текстового поля. Используйте диалоговое окно Свойства текстового поля — Видимость. =Not Parameters! Показать<логический параметр>.Value
Динамически задать содержимое верхнего или нижнего колонтитулов страницы. Значение заполнителя внутри текстового поля, которое находится в верхнем или нижнем колонтитуле страницы. ="Page " & Globals!PageNumber & " of " & Globals!TotalPages
Динамически задать источник данных с помощью параметра. Строка подключения в источнике данных. Используйте диалоговое окно Свойства источника данных — Общие. ="Data Source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks2022"
Задать все значения для многозначного параметра, выбранного пользователем. Значение заполнителя в текстовом поле. Используйте диалоговое окно Свойства табликса — Фильтры. =Join(Parameters!MyMultivalueParameter.Value,", ")
Указать разрывы страниц через каждые 20 строк в табликсе, не содержащем других групп. Выражение группы для группы в табликсе. Используйте диалоговое окно «Свойства группы», страница «Разрывы страниц». Установите параметр Между всеми экземплярами группы. =Ceiling(RowNumber(Nothing)/20)
Задать условную видимость в зависимости от значения параметра. Скрытое свойство для табликса. Используйте диалоговое окно Свойства табликса — Видимость. =Not Parameters!< логический параметр>.Value
Укажите дату, отформатированную для определенной культуры. Значение заполнителя внутри текстового поля в области данных. Используйте диалоговое окно Свойства текстового поля — Общие. =Fields!OrderDate.Value.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("de-DE"))
Объедините строку и число, отформатированное как процент с точностью до двух знаков после запятой. Значение заполнителя внутри текстового поля в области данных. Используйте диалоговое окно Свойства текстового поля — Общие. ="Growth Percent: " & Format(Fields!Growth.Value,"p2")