次の方法で共有


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

カスケード型パラメータを使用すると、大量のレポート データの管理が可能になります。カスケード型パラメータでは、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. 次のクエリを貼り付けます。

    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 がクエリに含まれます。

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

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

    パラメータ名

    パラメータ値

    @Category

    Components

    @Subcategory

    Brakes

    @Product

    Front Brakes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    SELECT DISTINCT Name AS Category FROM Production.ProductCategory
    

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

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

  8. [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 が表示されます。Subcategory フィールドに 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 : ドリルスルー レポートに渡すパラメーターの追加」を参照してください。