Previous 函数(Report Builder 3.0 和 SSRS)

返回指定作用域内某项的前一个实例的值或该实例的指定聚合值。

注意注意

在 Business Intelligence Development Studio 中,您可以在 Report Builder 3.0 和报表设计器中创建和修改报表定义 (.rdl)。每个创作环境提供了不同的方式来创建、打开和保存报表和相关项。有关详细信息,请参阅 Web 上 microsoft.com 中的“在报表设计器和 Report Builder 3.0 中设计报表 (SSRS)”。

语法

Previous(expression, scope)

参数

  • expression
    (Variant 或 Binary)用于标识数据和检索以前值的表达式,例如 Fields!Fieldname.Value 或 Sum(Fields!Fieldname.Value)。

  • scope
    (String) 可选。组或数据区域的名称,也可以为 Null(在 Visual Basic 中为 Nothing),它指定从中检索由 expression 指定的以前值的作用域。

返回类型

返回 Variant 或 Binary。

注释

Previous 函数返回在应用所有排序和筛选之后,指定作用域内计算的表达式的前一个值。

如果 expression 不包含聚合,则 Previous 函数默认为该报表项的当前作用域。

在详细信息组中,使用 Previous 来指定详细信息行上一实例中的字段引用的值。只有在详细信息组中才支持字段引用。例如,在详细信息组的文本框中,=Previous(Fields!Quantity.Value) 将返回上一行中 Quantity 字段的数据。在第一行中,此表达式返回 Null(在 Visual Basic 中为 Nothing)。

如果 expression 包含使用默认作用域的聚合函数,则 Previous 将聚合在聚合函数调用中指定的作用域的前一个实例内的数据。

如果 expression 包含指定非默认作用域的聚合函数,则 Previous 函数的 scope 参数必须是聚合函数调用中指定的作用域的包含作用域。

Level、InScope、Aggregate 和 Previous 函数不能用于 expression 参数。不支持将 recursive 参数指定给任何聚合函数。

有关详细信息,请参阅聚合函数引用(Report Builder 3.0 和 SSRS)了解总计、聚合和内置集合的表达式作用域(Report Builder 3.0 和 SSRS)

示例

说明

下面的代码示例置于数据区域的默认数据行时,提供上一行中 LineTotal 字段的值。

代码

=Previous(Fields!LineTotal.Value)

说明

下面的示例显示一个表达式,该表达式计算某月特定天的销售额和上一年该月该天的销售额的总和。该表达式将添加至属于子组 GroupbyDay 的行的某个单元格中。它的父组是 GroupbyMonth,该父组的父组是 GroupbyYear。该表达式显示 GroupbyDay(默认作用域)和 GroupbyYear(父组 GroupbyMonth 的父组)的结果。

例如,对于具有名为 Year 的父组的数据区域,其子组名为 Month,子组的子组名为 Day(3 个嵌套级别)。与组 Day 关联的行中的表达式 =Previous(Sum(Fields!Sales.Value,"Day"),"Year") 返回上一年同一月同一天的销售额值。

代码

=Sum(Fields!Sales.Value) & " " & Previous(Sum(Fields!Sales.Value,"GroupbyDay"),"GroupbyYear")