分页报表中的 ReportItems 集合引用(报表生成器)

适用于: Microsoft Report Builder (SSRS) Power BI Report Builder SQL Server Data Tools 中的 Report Designer

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

注意

在 SQL Server Data Tools 中,你可以在 Microsoft 报表生成器、Power BI 报表生成器和报表设计器中创建和修改分页报表定义 (.rdl) 文件。

使用 ReportItems 值属性

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

例如:

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

    =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 集合的引用的作用域为当前作用域或高于当前作用域的任何点。

例如,位于父组行的文本框不能包含引用子组行的文本框名称的表达式。 子行文本框超出了作用域,所以此类表达式不会解析报表中的值。 有关详细信息,请参阅“聚合函数引用(报表生成器)”。