使用内置的全局和用户引用(Report Builder 3.0 和 SSRS)

内置字段集合包含 Globals 和 User 集合,表示处理报表时由 Reporting Services 提供的全局值。Globals 集合提供一些值,例如报表名称、开始处理报表的时间,以及报表表头或表尾的当前页码。User 集合提供用户标识符和语言设置。这些值在表达式中用于对报表中的结果进行筛选。

注意注意

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

使用 Globals 集合

Globals 集合包含报表的全局变量。在设计图面上,这些变量显示为带有前缀 &(“与”符号),例如 [&ReportName]。下表对 Globals 集合的成员进行了说明。

成员

类型

说明

ExecutionTime

DateTime

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

PageNumber

Integer

相对于重置页码的分页符的当前页码。在报表处理开始时,初始值设置为 1。对于每个呈现的页,该页码将增 1。

若要为矩形、数据区域、数据区域组或地图在分页符内对页面进行编号,请在 PageBreak 属性上,将 ResetPageNumber 属性设置为 True。不支持 Tablix 列层次结构组。

PageNumber 只能用于页眉或页脚中的表达式中。

ReportFolder

String

包含该报表的文件夹的完整路径。它不包括报表服务器 URL。

ReportName

String

报表存储在报表服务器数据库中的名称。

ReportServerUrl

String

正在运行该报表的报表服务器的 URL。

TotalPages

Integer

相对于重置 PageNumber 的分页符的总页数。如果未设置分页符,则该值与 OverallTotalPages 相同。

TotalPages 只能用于页眉或页脚中的表达式中。

PageName

String

页的名称。在报表处理开始时,从 InitialPageName(这是一个报表属性)设置初始值。在处理每个报表项时,该值被来自矩形、数据区域、数据区域组或地图的 PageName 的相应值替换。不支持 Tablix 列层次结构组。

PageName 只能用于页眉或页脚中的表达式中。

OverallPageNumber

Integer

针对整个报表的当前页的页码。此值不受 ResetPageNumber 的影响。

OverallPageNumber 只能用于页眉或页脚中的表达式中。

OverallTotalPages

Integer

整个报表的总页数。此值不受 ResetPageNumber 的影响。

OverallTotalPages 只能用于页眉或页脚中的表达式中。

RenderFormat

RenderFormat

与当前呈现请求有关的信息。

有关详细信息,请参阅下一节中的“RenderFormat”。

Globals 集合的成员将返回一个变量。如果要在表达式中使用此集合中要求特定数据类型的成员,则必须先转换该变量。例如,若要将执行时间变量转换为 Date 格式,请使用 =CDate(Globals!ExecutionTime)。有关详细信息,请参阅在表达式中使用数据类型(Report Builder 3.0 和 SSRS)

RenderFormat

下表介绍 RenderFormat 的成员。

成员

类型

说明

名称

String

呈现器的名称注册在 RSReportServer 配置文件中。

在报表处理/呈现周期的特定环节可用。

IsInteractive

Boolean

当前呈现请求是否使用交互式呈现格式。

DeviceInfo

只读名称/值集合

当前呈现请求的 deviceinfo 参数的键/值对。

可以通过使用集合中的键或索引指定字符串值。

示例

下面的示例演示如何在表达式中使用对 Globals 集合的引用:

  • 此表达式放置在报表表尾的文本框中,提供了报表的页码和总页数:

    =Globals.PageNumber & " of " & Globals.TotalPages

  • 此表达式提供了报表的名称和运行时间。其时间格式为短日期形式的 Microsoft .NET Framework 格式设置字符串:

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

使用 User 集合

User 集合包含运行报表的用户的相关数据。可以使用此集合筛选报表中显示的数据,例如,仅显示当前用户的数据或显示 UserID(如在报表标题中)。在设计图面上,这些变量显示为带有前缀 &(“与”符号),例如 [&UserID]。

下表对 User 集合的成员进行了说明。

成员

类型

说明

Language

String

运行报表的用户的语言。例如,en-US。

UserID

String

运行报表的用户的 ID。如果您使用的是 Windows 身份验证,则此值为当前用户的域帐户。此值由 Reporting Services 安全扩展插件确定,此插件可以使用 Windows 身份验证,也可以使用自定义身份验证。

有关在报表中支持多种语言的详细信息,请参阅 SQL Server 联机丛书中的 Reporting Services 文档中的“多语言或全局部署的解决方案设计注意事项”。

使用区域设置

可以使用表达式通过 User.Language 值来引用客户端计算机上的区域设置,从而确定如何向用户显示报表。例如,可创建基于区域值而使用不同查询表达式的报表。查询可以根据返回的语言发生相应更改,从不同的列中检索本地化信息。您还可以根据此变量在报表或报表项的语言设置中使用表达式。

注意注意

在更改报表的语言设置时,必须注意由此引发的显示问题。例如,更改报表的区域设置可以更改报表的日期格式,也可以更改货币格式。除非已对货币进行转换,否则上述更改可能导致在报表中显示错误的货币符号。若要避免这种情况,可设置要更改的各个项的语言信息,或将包含货币数据的项设置为特定语言。

标识快照或历史记录报表的 UserID

在某些情况下,包含 User!UserID 变量的报表将无法显示特定于查看报表的当前用户的报表数据。有关详细信息,请参阅报表故障排除:报表处理