在表达式中使用报表变量和组变量集合引用 (Reporting Services)

在报表的表达式中需要多次使用某个复杂计算时,您可能需要创建一个变量。您可以创建一个报表变量或组变量。报表变量只要设置一次,就可在整个报表的表达式中使用。组变量在每个唯一组值中设置一次后,可在当前级别或组层次结构下的表达式中使用。

报表变量

使用报表变量可保存时间相关的计算的值,例如货币汇率、时间戳或计算一次的复杂计算。当用户在报表中翻页时,文本框中的表达式将按需评估,所以如果用户查看一页,再查看下一页,然后使用**“上一步”**按钮返回到第一页,动态值(例如,一个包括 Now() 的表达式,该函数返回时间)就可以返回不同的值。通过将报表变量的值设置为表达式 =Now(),然后在表达式中添加变量,可确保整个报表处理过程中使用相同的值。可以在报表中的任何表达式中引用报表变量。

若要添加报表变量,请打开**“报表属性”对话框,单击“变量”**,然后输入名称和值。报表变量值只要设置一次,就可在整个报表处理期间保持不变。

若要引用表达式中的变量,请使用全局集合语法,例如 =Variables!CustomTimeStamp.Value。在设计图面上,文本框中的值显示为 <<Expr>>。

组变量

使用组变量可在组的作用域中计算值。组变量仅在组及其子组的作用域中有效。

例如,假定一个数据区域显示不同税收类别项目的库存数据,您希望对每种类别分别采用不同的税率。可以对 Category 中的数据进行分组,并对父组定义一个 Tax 变量。然后为每个税收类别的 ItemTax 定义一个组变量,再为每个不同的 Category 子组分配正确的组变量。例如:

  • 对于基于 [Category] 的父组,使用一个 [Tax] 值定义变量 Tax。假定类别值为 Food 和 Clothing。

  • 对于基于 [Subcategory] 的子组,将变量 ItemsTax 定义为 =Variables!Tax.Value * Sum(Fields!Price.Value)。假定 Food 类别中的子类别值为 Beverages 和 Bread。假定 Clothing 类别中的子类别值为 Shirts 和 Hats。

  • 在子组行中的文本框添加表达式 =Variables!ItemsTax.Value。

    文本框中显示按照 Food 税计算的 Beverages 和 Bread 以及按照 Clothing 税计算的 Shirts 和 Hats 的总税额。

若要添加组变量,打开**“Tablix 组属性”对话框,单击“变量”**,然后输入一个名称和一个值。组变量在每个唯一组值中计算一次。

若要引用表达式中的变量,请使用全局集合语法,例如 =Variables!GroupDescription.Value。在设计图面上,文本框中的值显示为 <<Expr>>。

您还可以将组变量与自定义代码结合使用来自定义聚合计算。有关详细信息,请参阅 Using Group Variables in Reporting Services 2008 for Custom Aggregation(在 Reporting Services 2008 使用组变量自定义聚合)和计算总计和其他聚合 (Reporting Services)

请参阅

参考

在表达式中使用内置集合 (Reporting Services)

概念

对数据区域中的数据进行分组