共用方式為


第 3 課:從內嵌 XML 資料定義報表資料集

新增: 2006 年 7 月 17 日

運用下列步驟,學習如何從內嵌於 Reporting Services XML 資料來源之資料集查詢中的 XML 資料擷取報表資料。在此範例中,AdventureWorks 範例資料庫中 SQL 結果集的 XML 資料已內嵌於資料集查詢中。此教學課程也示範如何在查詢的 ElementPath 標記中,指定您要為報表資料集擷取的元素節點和屬性。

程序

建立資料集的查詢

  1. 開啟 [Microsoft SQL Server Management Studio]

  2. [連接到伺服器] 對話方塊中,選擇 [伺服器類型][Database Engine]

  3. [伺服器名稱] 中,輸入安裝 AdventureWorks 範例資料庫的伺服器名稱。例如,localhost。

  4. [物件總管] 中,展開 [資料庫] 節點。

  5. 以滑鼠右鍵按一下 AdventureWorks,然後選擇 [新增查詢]

  6. 將下列查詢貼入查詢窗格中。

    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
    
  7. 在結果窗格中,選取 xml 結果並加以複製。

將根節點加入至 XML

  1. 開啟 [記事本],或您所選用的編輯器。

  2. 貼上 XML 文字。

  3. 將下列 XML 插入在第一行之前:<Query><XmlData><Root>

  4. 將下列 XML 加入最後一行:</Root></XmlData></Query>

    這是您可以用作測試資料的 XML 資料。

定義 Web 服務的報表資料集

  1. 啟動報表設計師,然後開啟為此教學課程建立的報表伺服器專案。

  2. 在 [資料] 檢視中,選取 [新增資料集]。輸入資料集的名稱 (例如 XMLEmbeddedDataSet)。

  3. [資料集] 對話方塊的 [資料來源] 中,選取 [新增資料來源]。此時會出現 [資料來源] 對話方塊。

  4. 輸入資料來源的名稱 (例如 XMLEmbeddedDataSource)。

  5. [類型] 中,選取 [XML]

  6. [連接字串] 保留為空白。

  7. 按一下 [確定] 以儲存您的變更,並關閉 [資料來源] 對話方塊。

  8. 按一下 [確定],並關閉 [資料集] 對話方塊。

  9. 從 [記事本] 或您在上一個程序中使用的編輯器,複製查詢文字,然後貼入 [查詢] 窗格中。查詢看起來如下列文字:

    <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>
    
  10. 按一下 [執行 (!)],以檢視結果集。請注意,XML 的預設查詢選取到分葉節點第一個路徑上的所有屬性和元素。

  11. 在查詢中納入 ElementPath 標記,指定要包含在結果集中的元素。將下列文字貼入 [查詢] 窗格中,在 Query 標記之後,但在 XmlData 標記之前。

    <ElementPath>Root /S  {@OrderDate (Date), @TotalDue (Decimal)} /C {@LastName} </ElementPath>
    

    此元素路徑指定下列項目:

    • 對 S 元素,傳回 OrderDate 屬性作為 Date 類型,以及 TotalDue 屬性作為 Decimal 類型。
    • 對 C 元素,傳回 LastName 屬性 (預設值是 String 類型)。
  12. 按一下 [執行 (!)],以檢視結果集。現在,結果只包含您在 ElementPath 區段中指定的元素和屬性。OrderDate 屬性指定 Date 類型,以將其值轉換成 DateTime。同樣地,TotalDue 會轉換成 Decimal 格式。

  13. 按一下工具列上的 [重新整理欄位] (重新整理資料集欄位) 按鈕。這時就會儲存報表定義,並且更新 [報表資料集] 視窗中的欄位檢視,以顯示您可使用的所有欄位。

後續的步驟

您已從內嵌於資料集查詢中的 XML 資料,成功地定義報表資料集。處理報表時,各個 XML 資料表元素及其屬性的資料都是從 Web 服務擷取的。下一步,您要建立使用第 1、2、3 課中資料集的報表,請參閱<第 4 課:建立使用 XML 資料的報表>。

請參閱

概念

Reporting Services 教學課程

其他資源

定義 XML 資料的報表資料集
連接到資料來源
定義報表資料集
如何:建立或編輯報表特定資料來源 (報表設計師)
如何:建立資料集 (報表設計師)
使用報表資料集中的欄位
如何:加入、編輯或刪除資料集視窗中的欄位 (報表設計師)
報表資料集 (報表設計師)
指定 XML 報表資料的元素路徑語法

說明及資訊

取得 SQL Server 2005 協助