Функции построителя отчетов — функция Previous в отчете с разбивкой на страницы (построитель отчетов)
Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools
В отчете с разбивкой на страницы возвращает значение или значение статистического выражения для предыдущего экземпляра элемента внутри заданной области.
Примечание.
Создать и изменить определение для отчета на страницу (RDL-файл) можно с помощью построителя отчетов (Майкрософт), построителя отчетов Power BI и конструктора отчетов в SQL Server Data Tools.
Синтаксис
Previous(expression, scope)
Параметры
выражение
(Variant или Binary) Выражение, используемое для идентификации данных, для которого необходимо получить предыдущее значение, например Fields!Fieldname.Value
или Sum(Fields!Fieldname.Value)
.
область
(String) необязательно. Имя группы или область данных либо значение NULL (Nothing в Visual Basic), указывающее область, из которой необходимо получить предыдущее значение, заданное параметром expression.
Тип возвращаемых данных
Возвращает Variant или Binary.
Замечания
Функция Previous возвращает предыдущее значение для выражения, которое вычисляется в указанной области после применения всех операций сортировки и фильтрации.
Если параметр expression не содержит статистической функции, функция Previous по умолчанию относится к текущей области элемента отчета.
В группе подробностей используйте функцию Previous , чтобы задать ссылку на значение поля в предыдущем экземпляре строки детализации.
Примечание.
Функция Previous поддерживает только ссылки на поля в группе подробных сведений. Например, для текстового поля в группе подробностей выражение =Previous(Fields!Quantity.Value)
возвращает данные для поля Quantity
из предыдущей строки. Это выражение в первой строке возвращает значение NULL (Nothing в Visual Basic).
Если параметр expression содержит агрегатную функцию, использующую область по умолчанию, функция Previous выполняет статистическую обработку данных в пределах предыдущего экземпляра области, указанной в вызове агрегатной функции.
Если параметр expression содержит агрегатную функцию, задающую область, отличную от области по умолчанию, параметр scope для функции Previous должен включать область для области, указанной в вызове агрегатной функции.
Функции Level, InScope, Aggregate и Previous нельзя использовать в параметре expression. Параметр recursive для агрегатных функций не поддерживается.
Дополнительные сведения см. в разделах Справочник по агрегатным функциям (построитель отчетов и SSRS) и Область выражения для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов и SSRS).
Примеры
Description
Следующий пример кода, помещенный в строку данных по умолчанию для области данных, предоставляет значение для поля LineTotal
в предыдущей строке.
Код
=Previous(Fields!LineTotal.Value)
Описание
В следующем примере показано выражение, вычисляющее сумму продаж в указанный день месяца и предыдущее значение в тот же день месяца в прошлом году. Выражение добавляется в ячейку строки, относящуюся к дочерней группе GroupbyDay
. Ее родительской группой является GroupbyMonth
, которая имеет родительскую группу GroupbyYear
. Выражение отображает результаты для группы GroupbyDay (область по умолчанию) и затем для группы GroupbyYear
(родитель родительской группы GroupbyMonth
).
Рассмотрим для примера область данных с родительской группой Year
и ее дочерней группой Month
, у которой имеется дочерняя группа Day
(три вложенных уровня). Выражение =Previous(Sum(Fields!Sales.Value,"Day"),"Year")
в строке, связанной с группой Day
, возвращает значение продаж в тот же день и в тот же месяц прошлого года.
Код
=Sum(Fields!Sales.Value) & " " & Previous(Sum(Fields!Sales.Value,"GroupbyDay"),"GroupbyYear")