Функция Previous (службы Reporting Services)
Возвращает значение указанного статистического выражения для предыдущего экземпляра элемента в указанной области.
Синтаксис
Previous(expression, scope)
Параметры
expression
(Variant или Binary) Выражение, идентифицирующее получаемое значение, например Fields!Fieldname.Value или Sum(Fields!Fieldname.Value).scope
(String) Необязательно. Имя группы или область данных либо значение NULL (Nothing в Visual Basic), указывающее область, из которой необходимо получить предыдущее значение, заданное выражением expression. Дополнительные сведения о параметре scope см. в разделе Использование встроенных функций отчета и статистических функций в выражениях (службы Reporting Services).
Тип возвращаемых данных
Возвращает Variant или Binary.
Замечания
Функция Previous возвращает предыдущее значение для выражения, которое вычисляется в указанной области после применения всех операций сортировки и фильтрации. Если параметр expression содержит статистическую функцию, использующую область по умолчанию, функция Previous выполняет статистическую обработку данных в пределах предыдущего экземпляра области, указанной в вызове статистической функции. Если параметр expression содержит статистическую функцию, задающую область, отличную от области по умолчанию, параметр scope для функции Previous должен включать область для области, указанной в вызове статистической функции.
В группе подробных сведений с помощью Previous можно указать значение ссылки на поле в предыдущем экземпляре строки подробных сведений. Ссылки на поля поддерживаются только в группе подробных сведений. Например, для текстового поля в группе сведений выражение =Previous(Fields!Quantity.Value) возвращает данные для поля Quantity из предыдущей строки. В первой строке это выражение возвращает значение NULL (Nothing в Visual Basic).
В группах, не являющихся группами подробных сведений, следует использовать Previous со статистической функцией, например First или Last, содержащей конкретный экземпляр группы. Например, в текстовом поле в группе строк на основе =Fields!Year.Value=Previous(First(Fields!Year.Value)) возвращает год для первого экземпляра группы «Year».
Функции 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")
См. также
Основные понятия
Журнал изменений
Обновленное содержимое |
---|
Предыдущее значение ссылки на поле допустимо только в группе подробных сведений. |