使用 ReportItems 集合引用(Report Builder 3.0 和 SSRS)

ReportItems 内置集合是来自报表项(如报表设计图面上的数据区域行或文本框)的文本框集合。ReportItems 集合包括位于表头、表尾或表体的当前作用域中的文本框。此集合在运行时由报表处理器和报表呈现器确定。用户查看报表页面时,如果报表处理器连续组合报表数据和报表项布局元素,则当前作用域将随之变化。可以使用 ReportItems 内置集合在每个页面中生成显示首项和尾项的字典样式表头。

注意注意

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

使用 ReportItems 值属性

ReportItems 集合内的项只有一个属性:Value。ReportItems 项的值可用于显示或计算报表中其他字段的数据。若要访问当前文本框的值,可以使用 Visual Basic 内置全局 Me.Value 或仅使用 Value。在报表函数(如 First)和聚合函数中使用完全限定语法。

例如:

  • 此表达式放置在文本框中时,显示名为 Textbox1 的 ReportItem 文本框的值:

    =ReportItems.Textbox1.Value

  • 此表达式放置在 ReportItem 文本框的 Color 属性中,当值为 > 0 时以黑色显示文本;否则将以红色显示该值:

    =IIF(Me.Value > 0,"Black","Red")

  • 此表达式放置在表头或表尾的文本框中时,显示所呈现的报表每一页中名为 LastName 的文本框的第一个值:

    =First(ReportItems("LastName").Value)

字典样式表头表达式

可以创建一个表头,显示此页第一个客户和最后一个客户。因为在一个表达式中,表头中的文本框只能引用一次 ReportItems 内置集合,所以需要在表头添加两个文本框:一个用于第一个客户名称 (=First(ReportItems!textboxLastName.Value),另一个用于最后一个客户名称 (=Last(ReportItems!textboxLastName.Value)。

在表头或表尾部分,只有当前页中的文本框才能作为 ReportItems 集合的成员。例如,在多页数据区域中,如果 ReportItems!textboxLastName.Value 引用一个只显示在首页的文本框,则可以在首页看到一个值,其他页则显示 #Error,表明该表达式不能按本文所述进行计算。

ReportItems 集合的作用域

处理报表时,文本框所在数据集、数据区域和组关联的上下文将计算表体或数据区域中的所有文本框。对 ReportItems 集合的引用的作用域为当前作用域或高于当前作用域的任何点。

例如,位于父组行的文本框不能包含引用子组行的文本框名称的表达式。此类表达式不会解析报表中的值,因为子行文本框超出了作用域。有关详细信息,请参阅聚合函数引用(Report Builder 3.0 和 SSRS)