Share via


レッスン 7 : ドリルスルー レポートの作成

新規 : 2006 年 7 月 17 日

パラメータの用途の 1 つに、他のレポートへのドリルスルーがあります。このレッスンでは、AdventureWorks のサンプル レポート "Territory Sales Drilldown" にパラメータを追加し、販売区域グループを条件にレポート データをフィルタ選択できるようにします。また、パラメータに可能な値を設定するため TerritoryGroup というデータセットを作成し、AdventureWorks データベースから販売区域グループ名を 1 種類ずつ取得するようにします。

次のレッスンでは、このレポートを数種類のナビゲーション アクションの対象として使用します。

Advanced Parameters Tutorial レポート サーバー プロジェクトを開くには

  1. SQL Server Business Intelligence Development Studio で、前のレッスンで作成した Advanced Parameters Tutorial レポート サーバー プロジェクトを開きます。

  2. ソリューション エクスプローラで、Resellers Worldwide レポートをダブルクリックします。レポートが [レイアウト] ビューに表示されます。

  3. [データ] タブをクリックします。

AdventureWorks のサンプル レポート Territory Sales Drilldown をインポートするには

  1. ソリューション エクスプローラで [レポート] フォルダを右クリックし、[追加][既存の項目] の順にクリックします。[既存項目の追加] ダイアログ ボックスが表示されます。

    Aa337439.note(ja-jp,SQL.90).gifメモ :
    [レポートのインポート] は、既存の Reporting Services レポートではなく、既存の Microsoft Access レポートをインポートするコマンドです。
  2. AdventureWorks Sample Reports フォルダまで移動します。このフォルダの既定の場所は、*<drive>:\*Program Files\Microsoft SQL Server\90\Samples\Reporting Services\Report Samples\AdventureWorks Sample Reports です。Territory Sales Drilldown.rdl レポートをダブルクリックして、Advanced Parameter Tutorial プロジェクトに追加します。

  3. ソリューション エクスプローラで、Territory Sales Drilldown.rdl を右クリックして [名前の変更] をクリックします。「Parameterized Territory Sales Drilldown.rdl」と入力して、Enter キーを押します。

  4. Parameterized Territory Sales Drilldown レポートをダブルクリックします。レポートが [レイアウト] ビューに表示されます。

次は、このレポートのデータ ソースを変更し、レッスン 1 で作成した共有データ ソースを使うようにする必要があります。

データセットを別のデータ ソースにバインドするには

  1. [データ] タブをクリックして [データ] ビューに切り替えます。"データベースに接続できません。接続文字列を設定およびテストしてください。" というエラーが表示されます。

    Parameterized Territory Sales Drilldown レポートでは "AdventureWorks" というデータ ソースが使用されていますが、これを共有データ ソース "Resellers" に変更する必要があります。

  2. [データセット] の一覧で [TerritorySales] データセットを選択し、[選択したデータセットの編集] をクリックします。

  3. [クエリ] タブの [データ ソース] の一覧で、[Resellers] を選択します。

  4. [OK] をクリックします。

  5. [実行] ([!]) をクリックして、結果セットを表示します。

    6 つの列 (Name、SalesPersonID、FirstName、LastName、SalesOrderNumber、TotalDue) に値が入力された多数の行が表示されます。

次は、このレポートをパラメータ化します。有効な値を格納する新しいデータセットを作成した後、新しいレポート パラメータ SalesTerritoryGroup を作成し、このデータセットから有効な値を取得するようにします。

可能な値を格納するデータセットを作成するには

  1. [データセット] の一覧で、[<新しいデータセット>] をクリックします。[データセット] ダイアログ ボックスが表示されます。

  2. [クエリ] タブで、[名前] ボックスに「ValidValuesforTerritoryGroup」と入力します。

  3. [データソース][Resellers] になっていることを確認します。

  4. [コマンドの種類][Text] になっていることを確認します。

  5. 次のクエリをクエリ ペインに貼り付けます。

    SELECT DISTINCT [Group] AS SalesTerritoryList
       FROM [AdventureWorks].[Sales].[SalesTerritory]
    

    AdventureWorks データベースの Sales.SalesTerritory テーブルにある Group 列には、販売区域を表す値が含まれています。

  6. [実行] ([!]) をクリックして、結果セットを表示します。

    SalesTerritoryList 列に、Europe、North America、Pacific の 3 つの行が表示されます。この 3 つの値が、次の手順で作成する複数値パラメータ SalesTerritoryGroup での選択対象となります。

新しい複数値レポート パラメータを追加するには

  1. [レイアウト] タブをクリックします。

  2. [レポート] メニューの [レポート パラメータ] をクリックします。[レポート パラメータ] ダイアログ ボックスが表示されます。

  3. [追加] をクリックします。新しいレポート パラメータが既定値で生成されます。

  4. [プロパティ] セクションの [名前] ボックスに「SalesTerritoryGroup」と入力し、データ型が String であることを確認します。

  5. [複数値] チェック ボックスをオンにします。

  6. [表示名] ボックスに「販売区域グループ : 」と入力します。

  7. [空白の値を許可] チェック ボックスをオフにします。

  8. [使用できる値] セクションで、[クエリにより取得] をクリックします。

  9. [データセット] の一覧で [TerritoryGroup] を選択します。

  10. [値フィールド] の一覧で [SalesTerritory] を選択します。

  11. [ラベル フィールド] の一覧で、[SalesTerritory] を選択します。

  12. [既定値] セクションで [クエリにより取得] をクリックします。

  13. [データセット] の一覧で [TerritoryGroup] を選択します。

  14. [値フィールド] の一覧で [SalesTerritory] を選択します。

    これで、SalesTerritoryGroup の既定値は、データセット ValidValuesforTerritoryGroup から取得したすべての値になります。

  15. [OK] をクリックします。

これで、レポート パラメータとその可能な値のセットを定義できました。次の手順では、TerritorySales データセット クエリを修正し、この有効な値のセットの基になっている販売区域グループ用の列を含めます。その後さらにクエリを修正し、パラメータ SalesTerritoryGroup に選択した値のデータだけを抽出できるようにします。

データセット クエリにレポート パラメータをバインドするには

  1. [データ] タブをクリックします。

  2. [データセット] の一覧で、[TerritorySales] を選択します。クエリ ペインに TerritorySales クエリが表示されます。

  3. 有効な値のクエリを修正したときと同様に、既存のクエリに販売区域グループを追加し、また制限句 HAVING (ST.[Group] IN (@SalesTerritoryGroup)) を追加して、選択した販売区域のデータだけが結果に表示されるようにします。

    既存のクエリを次のクエリで置き換えます。

    SELECT ST.[Group] AS SalesTerritory, ST.Name, SP.SalesPersonID, 
      C.FirstName, C.LastName, SOH.SalesOrderNumber, SOH.TotalDue 
    FROM  Sales.SalesTerritory ST INNER JOIN
     Sales.SalesPerson SP ON ST.TerritoryID = SP.TerritoryID INNER JOIN
     HumanResources.Employee E ON SP.SalesPersonID = 
         E.EmployeeID INNER JOIN
     Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
     Sales.SalesOrderHeader SOH ON SP.SalesPersonID = SOH.SalesPersonID
    GROUP BY ST.[Group],ST.Name, SP.SalesPersonID, C.FirstName, 
        C.LastName, SOH.SalesOrderNumber, SOH.TotalDue
    HAVING (ST.[Group] IN (@SalesTerritoryGroup))
    ORDER BY ST.Name
    
  4. (省略可) クエリ パラメータがレポート パラメータにバインドされていることを確認します。[選択したデータセットの編集] をクリックし、[パラメータ] タブをクリックして、パラメータ @SalesTerritoryGroup=Parameters!SalesTerritoryGroup.Value という式が設定されていることを確認します。

  5. [実行] ([!]) をクリックして、結果セットを表示します。[クエリ パラメータの定義] ダイアログ ボックスが表示されるので、「Europe」と入力します。

  6. 結果セットに、Europe の値だけが表示されます。

    Aa337439.note(ja-jp,SQL.90).gifメモ :
    クエリ デザイナでは、複数値をとるパラメータを評価することはできません。

Parameterized Territory Sales Drilldown レポートでは、SalesOrderNumber ボックスに、同じレポート フォルダ内のドリルスルー レポートを指すハイパーリンク アクションがあらかじめ定義されています。次の手順では、このハイパーリンクを変更して、既定のサンプル フォルダを指定します。

Sales Order Number ドリルスルーにサンプル レポート フォルダを指定するには

  1. [レイアウト] タブをクリックします。

  2. [SalesOrderNumber] ボックスを右クリックし、[プロパティ] をクリックします。[テキスト ボックスのプロパティ] ダイアログ ボックスが表示されます。

  3. [ナビゲーション] タブをクリックします。

  4. [ハイパーリンクのアクション] で、[レポートに移動] オプションに示されているレポート名を次の完全修飾レポート アドレスに置き換えます。

    /AdventureWorks Sample Reports/Sales Order Detail
    
  5. [OK] をクリックします。

  6. [ファイル] メニューの [すべてを保存] をクリックします。

レポートの説明を修正するには

  1. [レポート] メニューの [レポートのプロパティ] をクリックします。[レポートのプロパティ] ダイアログ ボックスが表示されます。

  2. [説明] ボックスの内容を「Adventure Works の区域別売上高 (販売区域パラメータ使用)」と書き換えます。

  3. [OK] をクリックします。

    Aa337439.note(ja-jp,SQL.90).gifメモ :
    レポートをレポート サーバーに配置しても、レポート サーバー上のパブリッシュされた説明は、レポート デザイナで変更した説明に置き換えられません。パブリッシュされた説明を置き換えるには、レポート マネージャを使って説明を削除した後、レポート デザイナからレポートを再配置する必要があります。レポート マネージャで説明を削除するには、レポートを指定して [プロパティ] タブをクリックし、[説明] テキストを選択して削除した後、[適用] をクリックします。

次の手順

ここでは、レポート アイテム テキスト ボックスにハイパーリンクを追加しました。次のレッスンでは、パブリッシュされた Resellers Worldwide を基にリンクされたレポートを作成し、レポート パラメータの値をあらかじめ設定して、対象読者に応じたレポートを提供できるようにします。「レッスン 8 : カスタマイズされたパラメータ値を使ったリンク レポートの追加」を参照してください。

参照

その他の技術情報

Reporting Services でのパラメータを使用した作業
パラメータを使用した他のレポートへの接続

ヘルプおよび情報

SQL Server 2005 の参考資料の入手