新規 : 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] を選択します。
[接続文字列] は空白のままにします。
[OK] をクリックして、変更を保存し、[データ ソース] ダイアログ ボックスを閉じます。
[OK] をクリックして、[データセット] ダイアログ ボックスを閉じます。
前の手順で使用したメモ帳またはエディタからクエリ テキストをコピーして、クエリ ペインに貼り付けます。クエリは次のようになります。
<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 レポート データを指定するための要素パス構文