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