ReportViewer 报表中表达式全局集合

为在 ReportViewer
控件中处理的报表定义编写的表达式可包含对全局对象集合的引用。您可以使用五种全局对象集合:Fields、Globals、Parameters、
ReportItems 和 User。要访问这些集合,您可以使用标准的 Visual Basic 集合语法。这种语法的示例如下:

  • Collection!ObjectName

    =User!Language

  • Collection.Item(“ObjectName”)

    =User.Item("Language")

  • Collection(“ObjectName”)

    =User("Language")

您还可以使用属性语法来访问 Globals 和 User 集合中的各项。应用示例如下:

  • Collection.ObjectName

    =Globals.PageNumber

Globals 和 Users
集合的成员会返回变量。如果您想在表达式中使用要求特定数据类型的全局变量,则必须先转换该变量。例如,CDate(Globals!ExecutionTime)

字段

Fields 集合包含当前数据源中的各字段。这些字段通常用于显示报表的文本框中的数据,但也可以用在其他报表项、属性和函数中。Fields
集合中的项有两种属性:Value 和 IsMissing。Value 属性返回数据源中为该字段检索到的值。IsMissing
属性指示数据源中是否存在该字段。对于返回字段的变量集的查询,可以使用“IsMissing”属性。对于缺少的字段,其 Value 属性的值为 Null。

访问字段对象的最常用语法是属性语法(如
Fields!Product.Value)。您还可以使用上述的集合语法来访问字段对象。有些数据源为字段提供了附加属性。您可以通过使用集合语法来访问这些属性。如果数据源不支持某属性,或在执行查询时找不到该字段,则属性的类型为
String 和 Object 时,其属性值为 Null;在属性的类型为 Integer 时,其属性值为 0。

报表为它所包含的每一数据源包含一个虚拟的 Fields
集合。字段在一个集合内必须唯一,不过同一字段名称可以在多个集合中存在。如果引用数据区域中的字段,则该数据区域的数据表或业务对象会确定所使用的集合。如果引用聚合表达式中的字段,则范围的数据源会确定所使用的集合。

Globals

Globals 集合包含报表的全局变量。下表对 Globals 集合的成员进行了说明。

成员 类型 说明

ExecutionTime

日期时间

报表开始运行的日期和时间。

PageNumber

整型

当前页码。该变量只能用在页眉和页脚中。

ReportFolder

字符串

包含报表的文件夹的完整路径。它不包括报表服务器 URL。此成员仅适用于服务器报表。

ReportName

字符串

存储在报表服务器数据库中的报表的名称。此成员仅适用于服务器报表。

ReportServerUrl

字符串

正在运行该报表的报表服务器的 URL。此成员仅适用于服务器报表。

TotalPages

整型

报表中的总页数。该变量只能用在页眉和页脚中。

全局变量的示例如下:

  • 该表达式位于报表页脚的文本框中,提供了报表的页码和总页数。

    =Globals.PageNumber & " of " & Globals.TotalPages
  • 以下表达式提供了报表的名称以及它运行的时间。时间格式使用短日期的 .NET Framework 格式字符串进行设置。

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")

Parameters

Parameters 集合包含报表中的报表参数。参数可以用在筛选器中,或用在基于此参数改变报表外观的其他函数中。Parameters
集合中的项有两种属性:Value 和 Label。Value 属性返回参数(如 EmployeeID)的值。Label 属性返回参数(如
EmployeeName)的便于用户识别的标签。如果未指定标签,则 Label 属性值和 Value
属性的值相同。如果有多个标签与同一个值关联,则使用第一个匹配的标签。参数既可以通过属性语法访问,也可以通过集合语法访问。

ReportItems

ReportItems 集合包含报表内的文本框。ReportItems 集合内的项仅包含一个属性:Value。ReportItems
项的值可以用来显示或计算报表中其他字段的数据。若要访问当前文本框的值,请使用 Me.Value 或仅使用 Value。Me.Value 和 Value
不能在聚合函数内部使用。在聚合函数中请使用完整语法来访问文本框的值。

报表项表达式的示例如下:

  • 该表达式位于文本框中,显示了文本框 Textbox1 的值。

    =ReportItems!Textbox1.Value

User

User 集合包含正在运行报表的用户的数据。下表对 User 集合的成员进行了说明。

成员 类型 说明

语言

字符串

运行报表的用户的语言 ID。

UserID

字符串

运行报表的用户的 ID。

另请参见