第 3 課:從內嵌 XML 資料定義報表資料集
新增: 2006 年 7 月 17 日
運用下列步驟,學習如何從內嵌於 Reporting Services XML 資料來源之資料集查詢中的 XML 資料擷取報表資料。在此範例中,AdventureWorks 範例資料庫中 SQL 結果集的 XML 資料已內嵌於資料集查詢中。此教學課程也示範如何在查詢的 ElementPath 標記中,指定您要為報表資料集擷取的元素節點和屬性。
程序
建立資料集的查詢
開啟 [Microsoft SQL Server Management Studio]。
在 [連接到伺服器] 對話方塊中,選擇 [伺服器類型][Database Engine]。
在 [伺服器名稱] 中,輸入安裝 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 資料,成功地定義報表資料集。處理報表時,各個 XML 資料表元素及其屬性的資料都是從 Web 服務擷取的。下一步,您要建立使用第 1、2、3 課中資料集的報表,請參閱<第 4 課:建立使用 XML 資料的報表>。
請參閱
概念
其他資源
定義 XML 資料的報表資料集
連接到資料來源
定義報表資料集
如何:建立或編輯報表特定資料來源 (報表設計師)
如何:建立資料集 (報表設計師)
使用報表資料集中的欄位
如何:加入、編輯或刪除資料集視窗中的欄位 (報表設計師)
報表資料集 (報表設計師)
指定 XML 報表資料的元素路徑語法