第 3 课:从嵌入 XML 数据定义报表数据集
新建日期: 2006 年 7 月 17 日
通过下列步骤可以学习如何从嵌入在 Reporting Services XML 数据源的数据集查询中的 XML 数据检索报表数据。在本例中,AdventureWorks 示例数据库的 SQL 查询结果集的 XML 数据已嵌入在数据集查询中。本教程还将展示如何在查询的 ElementPath 标记中为报表数据集指定要检索的元素节点和属性。
过程
为数据集创建查询
打开 Microsoft SQL Server Management Studio。
在**“连接到服务器”对话框中,选择“服务器类型”,然后选择“数据库引擎”**。
在**“服务器名称”**中,输入安装了 AdventureWorks 示例数据库的服务器的名称。例如 localhost。
在对象资源管理器中,展开“数据库”节点。
右键单击 AdventureWorks,然后选择**“新建查询”**。
将下列查询粘贴到查询窗格中。
SELECT TOP 5 S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName FROM HumanResources.Employee E INNER JOIN Person.Contact C ON E.ContactID = C.ContactID INNER JOIN Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID ORDER BY S.TotalDue DESC FOR XML AUTO
在结果窗格中,选择 xml 结果并复制。
将根节点添加到 XML
打开记事本或您选择的编辑器。
粘贴 XML 文本。
在第一行之前插入以下 XML:
<Query><XmlData><Root>
。将以下 XML 添加到最后一行:
</Root></XmlData></Query>
可使用此 XML 数据作为测试数据。
为 Web 服务定义报表数据集
启动报表设计器,打开为本教程创建的报表服务器项目。
在“数据”视图中,选择**“新建数据集”**。键入数据集的名称(例如 XMLEmbeddedDataSet)。
在**“数据集”对话框的“数据源”中,选择“新建数据源”。将显示“数据源”**对话框。
键入数据源的名称(例如 XMLEmbeddedDataSource)。
在**“类型”**中,选择 XML。
将**“连接字符串”**保留为空。
单击**“确定”以保存更改,并关闭“数据源”**对话框。
单击**“确定”**关闭“数据集”对话框。
从上一步中使用的记事本或编辑器中复制查询文本,然后将其粘贴在“查询”窗格中。该查询文本应如下所示:
<Query> <XmlData> <Root> <S OrderDate="2003-07-01T00:00:00" SalesOrderNumber="SO51131" TotalDue="247913.9138"> <C FirstName="Shu" LastName="Ito" /> </S> <S OrderDate="2003-10-01T00:00:00" SalesOrderNumber="SO55282" TotalDue="227737.7215"> <C FirstName="Shu" LastName="Ito" /> </S> <S OrderDate="2002-07-01T00:00:00" SalesOrderNumber="SO46616" TotalDue="207058.3754"> <C FirstName="Jae" LastName="Pak" /> </S> <S OrderDate="2002-08-01T00:00:00" SalesOrderNumber="SO46981" TotalDue="201490.4144"> <C FirstName="Ranjit" LastName="Varkey Chudukatil" /> </S> <S OrderDate="2002-09-01T00:00:00" SalesOrderNumber="SO47395" TotalDue="198628.3054"> <C FirstName="Michael" LastName="Blythe" /> </S> </Root> </XmlData> </Query>
单击**“运行”**(!) 以查看结果集。请注意,XML 的默认查询会选择通往叶节点的第一个路径上的所有属性和元素。
通过在查询中包括 ElementPath 标记,指定要在结果集中包括的元素。在“查询”窗格中的 Query 标记之后和 XmlData 标记之前粘贴以下文本。
<ElementPath>Root /S {@OrderDate (Date), @TotalDue (Decimal)} /C {@LastName} </ElementPath>
此元素路径指定如下内容:
- 对于 S 元素,将 OrderDate 属性作为 Date 类型返回,将 TotalDue 属性作为 Decimal 类型返回。
- 对于 C 元素,返回 LastName 属性(默认为 String 类型)。
单击**“运行”**(!) 以查看结果集。现在,结果仅包括了您在 ElementPath 部分中指定的那些元素和属性。OrderDate 属性指定了 Date 类型以将其值转换为 DateTime。同样,TotalDue 转换为 Decimal 格式。
在工具栏中,单击**“刷新字段”() 按钮。这将保存报表定义并更新“报表数据集”**窗口中的字段视图,以显示您可以使用的所有字段。
后续步骤
您已成功地从嵌入在数据集查询中的 XML 数据定义了报表数据集。处理报表时,从 Web 服务检索来自每个 XML 表元素的数据及其属性。接下来,您将创建一个报表,该报表使用第 1 课、第 2 课和第 3 课中的数据集。请参阅第 4 课:创建使用 XML 数据的报表。
请参阅
概念
其他资源
为 XML 数据定义报表数据集
连接数据源
定义报表数据集
如何创建或编辑报表特定数据源(报表设计器)
如何创建数据集(报表设计器)
使用报表数据集中的字段
如何在“数据集”窗口中添加、编辑或删除字段(报表设计器)
报表数据集(报表设计器)
用于指定 XML 报表数据的元素路径语法