Поделиться через


Функция 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")