Ссылки на переменные отчета и группы в отчете с разбивкой на страницы (построитель отчетов)
Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools
При сложном вычислении, которое используется несколько раз в выражениях в отчете с разбивкой на страницы, может потребоваться создать переменную. Можно создать переменную отчета или переменную группы. В отчете имена переменных должны быть уникальными.
Примечание.
Создать и изменить определение для отчета на страницу (RDL-файл) можно с помощью построителя отчетов (Майкрософт), построителя отчетов Power BI и конструктора отчетов в SQL Server Data Tools.
Переменные отчета
Переменная отчета используется для хранения значения зависимых от времени вычислений, например курсов валют или отметок времени, либо для сложного вычисления, на которое указывает несколько ссылок. По умолчанию переменная отчета вычисляется один раз и может использоваться во всех выражениях отчета. Переменные отчета по умолчанию доступны только для чтения. Можно изменить эту настройку по умолчанию путем включения переменной отчета как допускающей чтение и запись. Значение переменной отчета сохраняется в течение всего сеанса, до повторной обработки отчета.
Чтобы добавить переменную отчета, откройте диалоговое окно ReportProperties , выберите переменные и укажите имя и значение. Имена — это строки с учетом регистра, которые начинаются с буквы и не содержат пробелов. Имя может содержать буквы, цифры и символы подчеркивания (_).
Для ссылки на переменную в выражении используется синтаксис глобальной коллекции, например =Variables!CustomTimeStamp.Value
. В области конструктора значение появляется в текстовом поле в виде <<Expr>>
.
Параметры отчета можно использовать следующими способами.
Использование только для чтения: задайте значение один раз для создания константы для сеанса отчета, например для создания метки времени.
Выражения в текстовых полях вычисляются по требованию при просмотре отчета пользователем, поэтому динамические значения (например, выражение, включающее функцию
Now()
, возвращающую время суток) могут возвращать различные значения после просмотра следующей страницы и возврата к предыдущей странице с помощью кнопки Назад . Задав значение переменной отчета в выражение, а затем добавив переменную в выражение=Now()
, вы убедитесь, что одно и то же значение используется во всей обработке отчета.Использование чтения и записи: задайте значение один раз и сериализируйте значение в сеансе отчета. Вариант с чтением и записью для переменных представляет собой лучшую альтернативу по сравнению с использованием статической переменной в блоке «Код» определения отчета.
При очистке параметра только для чтения для переменной свойство Writable для переменной имеет значение true. Чтобы обновить значение из выражения, используйте
SetValue
метод, например=Variables!MyVariable.SetValue("123")
.Примечание.
Невозможно контролировать, когда обработчик отчетов инициализирует переменную или вычисляет выражение, которое обновляет переменную. Порядок выполнения при инициализации переменной не определен.
Дополнительные сведения о сеансах см. в разделе "Предварительный просмотр отчетов" в построитель отчетов.
Групповые переменные
Групповые переменные используются для однократного вычисления сложного выражения в области группы. Групповая переменная действительна только в области группы и ее дочерних групп.
Например, предположим, что область данных отображает складские запасы элементов, находящихся в различных налоговых категориях, и требуется установить налоговые ставки для каждой категории. Затем следует сгруппировать данные в категории и определить переменную Tax в родительской группе. Потом необходимо определить групповую переменную для параметра ItemTax для каждой налоговой категории и назначить для каждой из отдельных подгрупп категории требуемую групповую переменную. Например:
Для родительской группы, основанной на
[Category]
, следует определить переменную Tax со значением[Tax]
. Предположим, что значениями категории являются пищевые продукты и одежда.Для дочерней группы, основанной на
[Subcategory]
, следует определить переменную ItemsTax как=Variables!Tax.Value * Sum(Fields!Price.Value)
. Предположим, что значениями подкатегории для категории «Пищевые продукты» являются напитки и хлеб. Предположим, что значениями подкатегории «Одежда» являются рубашки и шляпы.В текстовом поле в строке дочерней группы следует добавить выражение
=Variables!ItemsTax.Value
.В текстовом поле отображается полная сумма налога для напитков и хлеба при помощи налога «Пищевые продукты» и для рубашек и шляп — при помощи налога «Одежда».
Чтобы добавить переменную группы, откройте диалоговое окно "Свойства группы табликса", выберите "Переменные" и укажите имя и значение. Групповая переменная вычисляется один раз для уникального значения группы.
Для ссылки на переменную в выражении используется синтаксис глобальной коллекции, например =Variables!GroupDescription.Value
. В области конструктора значение появляется в текстовом поле в виде <<Expr>>
.