报表中表达式的全局集合(Visual Studio 报表设计器)

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

  • Collection!ObjectName

    =User!Language

  • Collection.Item("ObjectName")

    =User.Item("Language")

  • Collection("ObjectName")

    =User("Language")

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

  • Collection.ObjectName

    =Globals.PageNumber

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

字段

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

访问字段对象的最常用语法是属性语法,例如 Fields!Product.Value。您还可以使用上述的集合语法来访问字段对象。有些数据源为字段提供了附加属性。您可以通过使用集合语法来访问这些属性。如果数据源不支持某属性,或在执行查询时找不到该字段,则属性的类型为 StringObject 时,其属性值为 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 集合中的项有两种属性:ValueLabelValue 属性返回参数(如 EmployeeID)的值。Label 属性返回参数(如 EmployeeName)的便于用户识别的标签。如果未指定标签,则 Label 属性值和 Value 属性的值相同。如果有多个标签与同一个值关联,则使用第一个匹配的标签。参数既可以通过属性语法访问,也可以通过集合语法访问。

ReportItems

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

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

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

    =ReportItems!Textbox1.Value
    

User

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

成员 类型 说明

Language

字符串

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

UserID

字符串

运行报表的用户的 ID。

另请参见

概念

ReportViewer 控件 (Visual Studio)
在报表中使用表达式(Visual Studio 报表设计器)
定义报表中的报表参数(Visual Studio 报表设计器)
向报表中添加页眉和页脚(Visual Studio 报表设计器)
将 ReportViewer 配置为进行远程处理