使用报表数据集中的字段
数据集字段用于提供报表项(如表和图表)与报表数据之间的链接。该字段可以是指向查询所返回列的直接链接,也可以是您定义的计算字段。
数据集字段与内置字段不同。内置字段是由 Reporting Services 提供的一组预定义字段,这些字段可提供报表信息,例如,报表名称或处理报表时的时间戳。有关详细信息,请参阅在表达式中使用内置字段引用 (Reporting Services)。
若要在报表中显示数据集字段值,请将这些值拖到设计图面或数据区域单元格上的文本框中,或者拖到图表和仪表的放置区中。数据集字段可以表示数值数据和非数值数据,以及数据库中其他类型的数据,例如,钻取报表的 URL、图像、和订阅方的电子邮件地址。
使用字段集合
数据集字段由数据集查询和所有您定义的计算字段指定。创建数据集后,可以展开**“报表数据”**窗格中的数据集节点查看数据集字段集合。每次更改数据集的查询时,这些数据库字段都会自动刷新。
通过创建表达式可以手动指定计算字段。计算字段可用于创建数据源中不存在的新值。例如,计算字段可以表示新值、一组字段值的自定义排序顺序,也可以表示转换为另一数据类型的现有字段。有关详细信息,请参阅如何在“报表数据”窗格中添加、编辑或删除字段。
将数据集字段与报表项进行链接
以下报表项可以显示数据集中的数据:文本框、表、矩阵、列表、图表和仪表。若要将字段与报表项进行链接,可以将该字段从“报表数据”窗格拖到该报表项上,或者使用该报表项上的字段选择器图标。例如,将字段与图表类别放置区进行链接的最简单方法是使用字段选择器。对于带有现有行组的 Tablix,可以将字段拖到 Tablix 行组区域中以添加附加嵌套字段。当您将字段拖到 Tablix 正文区时,可以为该字段添加自动填充了默认值的新列。
有关将字段添加到设计图面上的报表项的详细信息,请参阅设计报表布局 中的特定报表项类型。
如果在数据集字段集合中没有看到预期结果,请参阅报表故障排除:以特定文件格式导出的报表。
了解默认表达式
文本框可以是报表正文中的文本框报表项,也可以是 Tablix 数据区域的单元格中的一个文本框。将字段与文本框进行链接时,文本框的位置决定了字段引用的默认表达式。在报表正文中,文本框值表达式必须指定聚合和数据集。如果报表中只有一个数据集,系统将为您创建此默认表达式。对于表示数值的字段,默认聚合函数为 SUM。对于表示非数值的字段,默认聚合为 First。
在 Tablix 数据区域中,默认字段表达式取决于字段所添加到的文本框的行成员身份和组成员身份。将“销售量”字段添加到表详细信息行的文本框中时,字段表达式为 [Sales]。如果将同一字段添加到组头中的文本框,则默认表达式为 (Sum[Sales]),这是因为组头显示组的汇总值,而不是详细值。报表运行时,报表处理器对每个表达式进行计算,然后替换报表中的结果。
使用扩展字段属性
支持多维查询的数据源(例如,SQL ServerAnalysis Services)支持字段的字段属性。字段属性显示在查询的结果集中,但是在**“报表数据”**窗格中不可见。它们仍可在报表中使用。若要引用字段的属性,请将该字段拖到报表中,然后将默认属性 Value 更改为所需属性的字段名。例如,在 Analysis Services 多维数据集中,可以定义多维数据集单元格中的值格式。通过使用字段属性 FormattedValue 可使用已格式化值。若要直接使用该格式化值,而不是使用一个值,然后再设置文本框的格式属性,请将该字段拖到该文本框中,然后将默认表达式 =Fields!FieldName.Value 更改为 =Fields!FieldName.FormattedValue。
注意 |
---|
并非所有的 Field 属性均可用于所有数据源。针对所有的数据源定义 Value 和 IsMissing 属性。仅当数据源提供了其他预定义的属性(例如,多维数据源的 Key、UniqueName 和 ParentUniqueName)时,才支持这些属性。某些数据访问接口支持自定义属性。有关详细信息,请参阅创建报表数据集 中关于数据源类型的扩展字段属性的特定主题。例如,对于 SQL ServerAnalysis Services 数据源,请参阅为 Analysis Services 数据集使用扩展字段属性。 |
使用字段数据类型
创建数据集后,数据源中字段的数据类型可能不与报表中使用的数据类型完全相同。数据类型可能经过一到两层映射。数据处理扩展插件或数据访问接口可能将数据源中的数据类型映射到公共语言运行时 (CLR) 数据类型。数据处理扩展插件返回的数据类型将映射到 .NET Framework 中的公共语言运行时 (CLR) 数据类型的子集。
了解数据集字段集合中的数据类型
在数据源中,数据以该数据源所支持的数据类型存储。例如,SQL Server 数据库中的数据必须是受支持的 SQL Server 数据类型之一,例如 nvarchar 或 datetime。从数据源检索数据时,数据通过与数据源类型相关联的数据处理扩展插件或数据访问接口进行传递。数据可能从数据源所使用的数据类型转换为数据处理扩展插件所支持的数据类型,具体情况取决于数据处理扩展插件。Reporting Services 使用随 Business Intelligence Development Studio 一起安装的公共语言运行时 (CLR) 版本所支持的数据类型。
报表数据从数据源开始传递,经过数据访问接口或数据处理扩展插件,然后到达报表处理组件。在每个阶段中,数据分别由以下列表中所介绍的数据类型表示:
数据访问接口将结果集中的每一列从本机数据类型映射到 Microsoft.NET Framework CLR 数据类型:
数据源:所连接的数据源类型版本支持的数据类型。
例如,SQL Server 2005 数据源的常见数据类型包括 int、datetime 和 varchar。SQL Server 2008 所引入的数据类型添加了对 date、time、datetimetz 和 datetime2 的支持。有关详细信息,请参阅数据类型 (Transact-SQL)。
数据访问接口或数据处理扩展插件 连接到数据源时选择的数据处理扩展插件的数据访问接口版本所支持的数据类型。基于 .NET Framework 的数据访问接口使用 CLR 所支持的数据类型。
例如,.NET Framework 所支持的常见数据类型包括 Int32 和 String。日历日期和时间由 DateTime 结构支持。.NET Framework 2.0 Service Pack 1 引入了对 DateTimeOffset 结构的支持,该结构适用于带有时区偏移量的日期。有关带有时区的日期的详细信息,请参阅
注意 报表服务器使用该服务器上安装并配置的数据访问接口。处于预览模式的报表创作客户端使用在客户端计算机上安装和配置的数据处理扩展插件。报表必须在报表客户端和报表服务器环境中都进行测试。
报表处理器:基于随 Reporting Services 一起安装的 CLR 版本的数据类型。SQL Server 2008Reporting Services 基于 .NET Framework 2.0 Service Pack 1 安装 CLR。
例如,下表显示了报表处理器用于 SQL Server 2008 中引入的新日期和时间类型的数据类型:
SQL 数据类型
CLR 数据类型
说明
Date
DateTime
仅日期
Time
TimeSpan
仅时间
DateTimeTZ
DateTimeOffset
带有时区偏移量的日期和时间
DateTime2
DateTime
带有毫秒小数部分的日期和时间。
有关 SQL Server 数据库类型的详细信息,请参阅数据类型(数据库引擎)和日期和时间数据类型及函数 (Transact-SQL)。有关 CLR 数据类型的详细信息,请参阅 Working with Base Types(使用基类型)。
有关 Microsoft.NET Framework 数据访问接口数据类型的详细信息,请参阅 Data Type Mappings (ADO.NET)(数据类型映射 (ADO.NET))。
有关详细信息,请参阅在表达式中使用数据类型 (Reporting Services) 和报表定义语言数据类型。