Share via


レッスン 4: カスケード型パラメーターの追加 (SSRS)

カスケード型パラメーターを使用すると、大量のレポート データの管理が可能になります。カスケード型パラメーターでは、1 つのパラメーターの値のリストが、前のパラメーターで選択した値によって決まります。リストの後半にあるパラメーターのデータセット クエリにはリストの前半にあるパラメーターへの参照が含まれているため、カスケード型パラメーターでは順序が重要な意味を持ちます。

このレッスンでは、カテゴリ、サブカテゴリ、製品の 3 つのクエリ パラメーターを定義するメイン データセット クエリのあるレポートを作成します。各カスケード型パラメーターについて、3 つの追加データ セットを定義して、使用可能な値を提供します。

開いているレポート サーバー プロジェクトに新しいレポートを追加するには

  1. ソリューション エクスプローラーで [レポート] を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで、[テンプレート][レポート] をクリックします。

  3. [名前] に「CascadingParameters.rdl」と入力して、[追加] をクリックします。

    レポート デザイナーが開き、デザイン ビューに新しい .rdl ファイルが表示されます。

共有データ ソースの参照を作成するには

  1. レポート データ ペインで、[新規作成] をクリックし、[データ ソース] をクリックします。

  2. [名前] に、「AdventureWorks_Ref」と入力します。

  3. [共有データ ソース参照を使用する] を選択します。

  4. ボックスの一覧から [AdventureWorks] を選択します。

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

クエリとクエリ パラメーターを含むメイン データセットを作成するには

  1. レポート データ ペインでデータ ソース AdventureWorks_Ref を右クリックし、[データセットの追加] をクリックします。

  2. [名前] に、「SalesbyCategory」と入力します。

  3. [データ ソース] で、[AdventureWorks_Ref] が選択されていることを確認します。

  4. [クエリの種類][テキスト] が選択されていることを確認します。

  5. クエリ ペインの下の [クエリ デザイナー] をクリックします。

  6. [テキストとして編集] をクリックして、テキスト ベースのクエリ デザイナーに切り替えます。

  7. 次のクエリを貼り付けます。

    SELECT 
       PC.Name AS Category,
       PSC.Name AS Subcategory,
       P.Name AS Product,
       SOH.[OrderDate],
       SOH.SalesOrderNumber,
       SD.OrderQty, 
       SD.LineTotal
       FROM [Sales].[SalesPerson] SP 
          INNER JOIN [Sales].[SalesOrderHeader] SOH 
          ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
          INNER JOIN Sales.SalesOrderDetail SD
          ON SD.SalesOrderID = SOH.SalesOrderID
          INNER JOIN Production.Product P
          ON SD.ProductID = P.ProductID
          INNER JOIN Production.ProductSubcategory PSC
          ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
          INNER JOIN Production.ProductCategory PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE (PC.Name = (@Category)
             AND PSC.Name = (@Subcategory)
             AND P.Name = (@Product))
    

    これで、クエリ パラメーターの @Category、@Subcategory、および @Product がクエリに含まれます。

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

  9. 次の表を参照して、[パラメーター値] 列に各クエリ パラメーターの値を入力します。

    パラメーター名

    パラメーター値

    @Category

    Components

    @Subcategory

    Brakes

    @Product

    Front Brakes

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

    front brakes の場合、結果セットには日付で分類された販売注文番号が含まれます。

    クエリを実行したとき、各クエリ パラメーターは対応するレポート パラメーターを生成しました。[OK] を 2 度クリックして、クエリ デザイナーとダイアログ ボックスを終了します。

  11. (省略可) レポート データ ペインでパラメーター ノードを展開し、レポート パラメーターの Category、Subcategory、および Product が表示されていることを確認します。

  12. (省略可) 各データセット クエリ パラメーターの値は、同じ名前のレポート パラメーターにバインドされます。これを確認するには、レポート データ ペインで [SalesbyCategory] を右クリックし、[データセットのプロパティ] をクリックします。

    1. [パラメーター] をクリックします。

    2. [パラメーター名] で、パラメーターが @Category、@Subcategory、および @Product であることを確認します。

    3. [パラメーター値] で、値が [@Category]、[@Subcategory]、および [@Product] であることを確認します。

      これらの単純型の式は、レポート データ ペインに表示されるレポート パラメーターを参照します。

次に、各レポート パラメーターの値を実行時に提供するデータセットを作成します。この値は使用可能な値を表示し、既定値も提供して、レポートが自動的に実行されるようにします。

レポート パラメーターの有効な値データセットを定義するには

  1. レポート データ ペインで、AdventureWorks_Ref を右クリックし、[データセットの追加] をクリックします。

  2. [名前] に、「CategoryValues」と入力します。

  3. [データ ソース] で、[AdventureWorks_Ref] が選択されていることを確認します。

  4. [クエリの種類][テキスト] が設定されていることを確認します。

  5. [クエリ] ペインの下の [クエリ デザイナー] をクリックします。

  6. [テキストとして編集] をクリックして、テキスト ベースのクエリ デザイナーに切り替えます。

  7. [クエリ] ペインに、次のクエリ テキストを貼り付けます。

    SELECT DISTINCT Name AS Category FROM Production.ProductCategory
    

    SELECT DISTINCT コマンドは列から一意の値のみを取得します。

  8. [実行] ([!]) をクリックして、結果セットを表示します。[Category] 列に [Accessories]、[Bikes]、[Clothing]、および [Components] の 4 個の値が表示されます。

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

次に、レポート パラメーター Category のプロパティを設定して、このクエリの値を使用可能な値とその既定値の両方に使用します。

レポート パラメーターに使用可能な値と既定値を設定するには

  1. レポート データ ペインの Parameters フォルダーで、Category パラメーターを右クリックし、[パラメーターのプロパティ] をクリックします。

  2. [名前] で、名前が「Category」であることを確認します。

  3. [使用できる値] をクリックします。

  4. [クエリから値を取得] をクリックします。次の 3 つのフィールドが表示されます。

  5. [データセット] のボックスの一覧から、[CategoryValues] を選択します。

  6. [値] フィールドで [Category] をクリックします。

  7. [ラベル] フィールドで [Category] をクリックします。

  8. [既定値] をクリックします。

  9. [クエリから値を取得] をクリックします。

  10. [データセット] のボックスの一覧から、[CategoryValues] を選択します。

  11. [値] フィールドで [Category] を選択します。

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

次に、@Category に選択した値に基づいて @Subcategory パラメーターを変更します。

レポート パラメーター Subcategory に値データセットを追加するには

  1. レポート データ ペインで、[AdventureWorks_Ref] を右クリックし、[データセットの追加] をクリックします。

  2. [名前] に、「SubcategoryValues」と入力します。

  3. クエリ ペインに、次のクエリ テキストを貼り付けます。

    SELECT DISTINCT PSC.Name AS Subcategory 
       FROM Production.ProductSubcategory AS PSC
          INNER JOIN Production.ProductCategory AS PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE PC.Name = (@Category)
    
  4. [OK] をクリックします。 

  5. レポート データ ペインにデータセット SubcategoryValues が表示されます。クエリ デザイナーを開いてクエリを実行し、カテゴリとして「Components」と入力すると、結果セットに 14 行が表示されます。

次に、レポート パラメーター @Subcategory のプロパティを設定して、このクエリの値を使用可能な値とその既定値の両方に使用します。

レポート パラメーター Subcategory に使用可能な値と既定値を設定するには

  1. レポート データ ペインの Parameters フォルダーで、Subcategory を右クリックし、[パラメーターのプロパティ] をクリックします。

  2. [使用できる値] をクリックします。

  3. [クエリから値を取得] をクリックします。

  4. [データセット] のボックスの一覧から、[SubcategoryValues] をクリックします。

  5. [値] フィールドで [Subcategory] をクリックします。

  6. [ラベル] フィールドで [Subcategory] をクリックします。

  7. [既定値] をクリックします。

  8. [クエリから値を取得] をクリックします。

  9. [データセット] のボックスの一覧から、[SubcategoryValues] をクリックします。

  10. [値] フィールドで [Subcategory] をクリックします。

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

次に、@Category の値と @Subcategory の値に基づくパラメーター @Product を作成します。

レポート パラメーター Product に値データセットを追加するには

  1. レポート データ ペインで AdventureWorks_Ref を右クリックし、[データセットの追加] をクリックします。

  2. [名前] に「ProductValues」と入力します。

  3. クエリ ペインに、次のクエリ テキストを貼り付けます。

    SELECT DISTINCT P.Name AS Product
    FROM Production.Product P
       INNER JOIN Production.ProductSubcategory AS PSC
       ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PSC.ProductCategoryID
    WHERE (PC.Name = (@Category)
       AND PSC.Name = (@Subcategory))
    
  4. [OK] をクリックします。

    Product というフィールドが 1 つある ProductValues という名前のデータセットがレポート データ ペインに追加されます。

次に、パラメーター @Product のプロパティを設定して、このクエリの値を使用可能な値とその既定値の両方に使用します。

レポート パラメーター Product に使用可能な値と既定値を設定するには

  1. レポート データ ペインの Parameters フォルダーで、[Product] を右クリックし、[パラメーターのプロパティ] をクリックします。

  2. [使用できる値] をクリックします。

  3. [クエリから値を取得] をクリックします。

  4. [データセット] のボックスの一覧から、[ProductValues] をクリックします。

  5. [値] フィールドで [Product] をクリックします。

  6. [ラベル] フィールドで [Product] をクリックします。

  7. [既定値] をクリックします。

  8. [クエリから値を取得] をクリックします。

  9. [データセット] のボックスの一覧から、ProductValues をクリックします。

  10. [値] フィールドで [Product] をクリックします。

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

次に、各カスケード型パラメーターの値を選択した効果を確認できるように、テーブルを追加します。

結果を表示するテーブルを追加するには

  1. [デザイン] ビューでテーブルを追加します。

  2. レポート データ ペインで、SalesbyCategory データセットからテーブルの詳細行の 3 つのセルに、SalesOrderNumber、OrderQty、および LineTotal の各フィールドをドラッグします。

  3. SalesbyCategory データセットから行グループ ペインに Category をドラッグし、[詳細] の上にドロップします。

  4. SalesbyCategory データセットから行グループ ペインに Subcategory をドラッグし、Category の下にドロップします。

  5. SalesbyCategory データセットから行グループ ペインに Product をドラッグし、Subcategory の下にドロップします。

  6. SalesbyCategory データセットから行グループ ペインに OrderDate をドラッグし、Product の下にドロップします。

  7. (省略可能) 次の各セルの書式を設定します。[LineTotal] を通貨、[OrderDate] を日付とします。

カスケード型パラメーターをテストするには

  1. [プレビュー] をクリックします。

    各レポート パラメーターに既定値を指定したので、レポートは自動的に実行されます。

  2. [Category] ボックスの一覧から [Components] を選択します。

  3. [Subcategory] ボックスの一覧から [Brakes] を選択します。

  4. [Product] ボックスの一覧から [Front Brakes] を選択します。

    パラメーターを順に選択しながら、前の選択に基づく有効な値だけが次のパラメーターのボックスの一覧に表示されることを確認してください。

  5. レポート ビューアー ツール バーの [レポートの表示] をクリックします。

レポートに、販売注文番号と、注文数量および "front brakes" 製品を含む注文行の合計が表示されます。テーブルには、カテゴリ、サブカテゴリ、製品、および注文日別に分類された販売注文が表示されます。

次の手順

製品のカテゴリ、サブカテゴリ、製品名でフィルターするカスケード型パラメーターを使用して、特定の製品が含まれた販売注文を表示するレポートを作成できました。次のレッスンでは、ドリルスルー レポートにパラメーターを渡す方法を学習します。「レッスン 5: ドリルスルー レポートに渡すパラメーターの追加 (SSRS)」を参照してください。