返回指定作用域内某项的前一个实例的值或该实例的指定聚合值。
注释
可以在报表生成器和 SQL Server Data Tools 中的报表设计器中创建和修改报表定义(.rdl)。 每个创作环境提供了创建、打开和保存报表和相关项的不同方法。 有关详细信息,请参阅 microsoft.com Web 上的 报表设计器和报表生成器(SSRS)中设计报表 。
语法
Previous(expression, scope)
参数
expression
(Variant 或 Binary) 用于标识数据的表达式,并用于检索上一个值的表达式,例如 Fields!Fieldname.Value 或 Sum(Fields!Fieldname.Value)。
作用域
(String) 可选。 组或数据区域的名称,或 null(Nothing 在 Visual Basic 中),用于指定检索由 expression 所指定的上一个值的范围。
返回类型
返回 Variant 或 Binary。
注解
该 Previous 函数返回在应用所有排序和筛选后在指定范围内计算的表达式的上一个值。
如果 表达式 不包含聚合,则 Previous 函数默认为报表项的当前范围。
在详细信息组中,使用 Previous 指定详细信息行的上一个实例中字段引用的值。
注释
该 Previous 函数仅支持详细信息组中的字段引用。 例如,在详细信息组的文本框中, =Previous(Fields!Quantity.Value) 将返回上一行中 Quantity 字段的数据。 在第一行中,此表达式返回 null(Nothing 在 Visual Basic 中)。
如果 表达式 包含使用默认范围的聚合函数, Previous 则聚合聚合函数调用中指定的作用域的上一个实例中的数据。
如果表达式包含指定默认值以外的范围的聚合函数,则Previous函数的 scope 参数必须是聚合函数调用中指定的范围的包含范围。
函数Level、InScope、Aggregate和Previous不能在表达式参数中使用。 不支持将 recursive 参数指定给任何聚合函数。
有关详细信息,请参阅聚合函数引用(报表生成器和 SSRS)和总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)。
例子
DESCRIPTION
下面的代码示例置于数据区域的默认数据行时,提供上一行中 LineTotal 字段的值。
代码
=Previous(Fields!LineTotal.Value)
DESCRIPTION
下面的示例显示一个表达式,该表达式计算某月特定天的销售额和上一年该月该天的销售额的总和。 该表达式将添加至属于子组 GroupbyDay的行的某个单元格中。 它的父组是 GroupbyMonth,该父组的父组是 GroupbyYear。 该表达式显示 GroupbyDay(默认作用域)和 GroupbyYear (父组 GroupbyMonth的父组)的结果。
例如,对于具有名为 Year的父组的数据区域,其子组名为 Month,子组的子组名为 Day (3 个嵌套级别)。 与组 =Previous(Sum(Fields!Sales.Value,"Day"),"Year") 关联的行中的表达式 Day 返回上一年同一月同一天的销售额值。
代码
=Sum(Fields!Sales.Value) & " " & Previous(Sum(Fields!Sales.Value,"GroupbyDay"),"GroupbyYear")
另请参阅
在报表中使用表达式(报表生成器和 SSRS)
表达式示例(报表生成器和 SSRS)
表达式中的数据类型(报表生成器和 SSRS)
总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)