次の方法で共有


レッスン 3 : 埋め込み XML データからのレポート データセットの定義

新規 : 2006 年 7 月 17 日

以下の手順では、Reporting Services XML データ ソースのデータセット クエリに埋め込まれている XML データからレポート データを取得する方法を学習します。この例では、AdventureWorks サンプル データベースから取得した SQL クエリ結果セットの XML データがデータセット クエリに埋め込まれています。このチュートリアルでは、レポート データセットに取得する要素ノードと属性をクエリの ElementPath タグ内に指定する方法についても学習します。

手順

データセットを取得するクエリを作成するには

  1. Microsoft SQL Server Management Studio を開きます。

  2. [サーバーへの接続] ダイアログ ボックスで、[サーバーの種類][データベース エンジン] を選択します。

  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. [OK] をクリックして、変更を保存し、[データ ソース] ダイアログ ボックスを閉じます。

  8. [OK] をクリックして、[データセット] ダイアログ ボックスを閉じます。

  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 に変換されます。同様に、TotalDueDecimal 形式に変換されます。

  13. ツール バーの [フィールドの更新] (データセット フィールドの更新) ボタンをクリックします。レポート定義が保存され、[データセットのレポート] ウィンドウのフィールドの表示が更新されて、使用するすべてのフィールドが表示されます。

次の手順

ここでは、データセット クエリに埋め込まれた XML データからレポート データセットを定義し、レポートを実行したときにそれぞれの XML テーブル要素とその属性が Web サービスから取得されるようにしました。次は、レッスン 1、2、3 のデータセットを使用するレポートを作成します。「レッスン 4 : XML データを使用するレポートの作成」を参照してください。

参照

概念

Reporting Services のチュートリアル

その他の技術情報

レポート データセットの定義 (XML データ)
データ ソースへの接続
レポートのデータセットの定義
レポート固有のデータ ソースを作成または編集する方法 (レポート デザイナ)
データセットを作成する方法 (レポート デザイナ)
レポート データセットのフィールドの操作
[データセット] ウィンドウでフィールドを追加、編集、削除する方法 (レポート デザイナ)
[データセットのレポート] (レポート デザイナ)
XML レポート データを指定するための要素パス構文

ヘルプおよび情報

SQL Server 2005 の参考資料の入手