Функция Previous (построитель отчетов и службы SSRS)
Возвращает значение или значение статистического выражения для предыдущего экземпляра элемента внутри заданной области.
Примечание
Создавать и изменять определения отчетов (RDL-файлы) в SQL Server Data Tools можно в построителе отчетов и конструкторе отчетов В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в статье Проектирование отчетов в конструктор отчетов и Report Builder (SSRS) в Интернете по адресу microsoft.com.
Синтаксис
Previous(expression, scope)
Параметры
expression
(Variant
или Binary
) Выражение, используемое для идентификации данных, для которого необходимо получить предыдущее значение, например Fields!Fieldname.Value
или Sum(Fields!Fieldname.Value)
.
область
(String
) Необязательно. Имя группы или области данных или значение NULL (Nothing
в Visual Basic), указывающее область, из которого извлекается предыдущее значение, указанное выражением.
Тип возвращаемых данных
Возвращает Variant
или Binary
.
Комментарии
Функция Previous
возвращает предыдущее значение для выражения, которое вычисляется в указанной области после применения всех операций сортировки и фильтрации.
Если выражение не содержит агрегата, Previous
функция по умолчанию использует текущий область для элемента отчета.
В группе подробностей используйте функцию Previous
, чтобы задать ссылку на значение поля в предыдущем экземпляре строки детализации.
Примечание
Функция Previous
поддерживает только ссылки на поля в группе сведений. Например, для текстового поля в группе подробностей выражение =Previous(Fields!Quantity.Value)
возвращает данные для поля Quantity
из предыдущей строки. В первой строке это выражение возвращает значение NULL (Nothing
в Visual Basic).
Если выражение содержит агрегатную функцию, которая использует область по умолчанию, Previous
агрегирует данные в предыдущем экземпляре область, указанного в вызове агрегатной функции.
Если выражение содержит агрегатную функцию, которая задает область, отличный от значения по умолчанию, параметр область для Previous
функции должен быть содержащим область для область, указанного в вызове агрегатной функции.
Функции Level
, InScope
Aggregate
и Previous
нельзя использовать в параметре expression. Параметр recursive для агрегатных функций не поддерживается.
Дополнительные сведения см. в статьях Функции построителя отчетов — справочник по агрегатным функциям в отчетах с разбивкой на страницы (построитель отчетов) и Область выражения для суммирования, статистических выражений и встроенных коллекций в отчете с разбивкой на страницы (построитель отчетов).
Примеры
Описание
Следующий пример кода, помещенный в строку данных по умолчанию для области данных, предоставляет значение для поля 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")
См. также:
Использование выражений в отчетах (построитель отчетов и службы SSRS)
Примеры выражений (построитель отчетов и службы SSRS)
Типы данных в выражениях (построитель отчетов и службы SSRS)
Область выражения для итогов, агрегатных функций и встроенных коллекций (построитель отчетов и службы SSRS)