レッスン 4: カスケード型パラメータの追加 (レポート ビルダ 2.0)
カスケード型パラメータによって、大量のレポート データの管理が可能になります。カスケード型パラメータでは、1 つのパラメータの値のリストが、前のパラメータで選択した値によって決まります。
このレッスンでは、衣料カテゴリのサブカテゴリおよび製品のクエリ パラメータを定義するメイン データセット クエリのある新しいレポートを作成します。2 つの追加データセットを定義して、各カスケード型パラメータに使用可能な値を提供します。
新しいレポート定義ファイルを作成してレポート サーバーに保存するには
[スタート] ボタンをクリックし、[プログラム]、[Microsoft SQL Server 2008 レポート ビルダ] の順にポイントして、[レポート ビルダ 2.0] をクリックします。
デザイン画面で、[タイトルを追加するにはここをクリックしてください] をクリックし、「Cascading Parameters」と入力します。
レポート ビルダのボタンの [名前を付けて保存] をクリックします。
[最近使ったサイトとサーバー] をクリックします。
レポートを保存する権限があるレポート サーバーの名前をクリックします。
[名前] に「Cascading Parameters」と入力します。
[保存] をクリックします。
新しいレポートがレポート サーバーに保存されました。
データ ソースの参照を追加するには
レポート データ ペイン ツール バーで、[新規作成] をクリックし、[データ ソース] をクリックします。
[共有接続またはレポート モデルを使用する] を選択します。
「チュートリアル : 基本的なテーブル レポートの作成 (レポート ビルダ 2.0)」で作成した AdventureWorks2008 サンプル データベースのデータ ソースを参照して指定するか選択します。
[OK] をクリックします。
AdventureWorks2008 データベースのデータ ソースへの参照が追加されました。
クエリとクエリ パラメータを含むメイン データセットを作成するには
レポート データ ペイン ツール バーで、[新規作成] をクリックし、[データセット] をクリックします。
[名前] に、「SalesbyCategory」と入力します。
クエリ ペインの下の [クエリ デザイナ] をクリックします。
[テキストとして編集] をクリックします。
クエリ ペインに、次のクエリを貼り付けます。
SELECT SH.OrderDate ,DATENAME(weekday, SH.OrderDate) as Weekday ,SH.SalesOrderNumber ,SD.OrderQty ,SD.LineTotal ,P.Name AS [Product] ,PS.Name AS [Subcategory] FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader AS SH ON SP.BusinessEntityID = SH.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product AS P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory AS PS ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PS.ProductCategoryID WHERE PC.Name = 'Clothing' AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND PS.Name = (@Subcategory) AND P.Name IN (@Product)
カスケード型の一連の値に対するメイン クエリを作成するための @StartDate、@EndDate、@Subcategory、および @Product のクエリ パラメータが追加されました。
[実行] ([!]) をクリックして、結果セットを表示します。[クエリ パラメータの定義] ダイアログ ボックスが表示されます。
次の表を参照して、[パラメータ値] 列に各クエリ パラメータの値を入力します。
パラメータ名
パラメータ値
@StartDate
20010101
@EndDate
20030101
@Subcategory
Gloves
@Product
Full-Finger Gloves, M
[OK] をクリックします。
結果セットに、指定した種類のグローブの販売注文番号が含まれます。
クエリを実行したとき、各クエリ パラメータは対応するレポート パラメータを生成しました。[OK] を 2 度クリックして、クエリ デザイナとダイアログ ボックスを終了します。
(省略可) レポート データ ペインで [パラメータ] ノードを展開し、レポート パラメータの StartDate、EndDate、Subcategory、および Product が表示されていることを確認します。
(省略可) 各データセット クエリ パラメータの値は、同じ名前のレポート パラメータにバインドされます。これを確認するには、レポート データ ペインで [SalesbyCategory] を右クリックし、[データセットのプロパティ] をクリックします。
[パラメータ] をクリックします。
[パラメータ名] で、名前が @StartDate、@EndDate、@Subcategory、および @Product であることを確認します。
[パラメータ値] で、値が [@StartDate]、[@EndDate]、[@Subcategory]、および [@Product] であることを確認します。
これらの単純型の式は、レポート データ ペインに表示されるレポート パラメータを参照します。
次に、@Subcategory および @Product に値を提供するデータセットを作成します。新しいデータセットではそれぞれ、使用可能な値と既定値の両方をパラメータに提供します。
日付パラメータのデータ型と既定値を設定するには
レポート データ ペインで StartDate を右クリックし、[パラメータのプロパティ] をクリックします。
[データ型] から [日付/時刻] を選択します。
[既定値] をクリックします。
[値の指定] オプションを選択します。
[追加] をクリックします。
[値] に「2001-01-01」と入力します。
[OK] をクリックします。
レポート データ ペインで EndDate を右クリックし、[パラメータのプロパティ] をクリックします。
[データ型] から [日付/時刻] を選択します。
[既定値] をクリックします。
[値の指定] オプションを選択します。
[追加] をクリックします。
[値] に「2003-01-01」と入力します。
[OK] をクリックします。
データ パラメータのデータ型と既定値が設定されました。
レポート パラメータ Subcategory に値データセットを追加するには
レポート データ ペイン ツール バーで、[新規作成] をクリックし、[データセット] をクリックします。
[名前] に、「SubcategoryValues」と入力します。
[クエリ デザイナ] をクリックし、[テキストとして編集] をクリックします。
クエリ ペインに、次のクエリ テキストを貼り付けます。
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 = 'Clothing'
[OK] を 2 度クリックして、クエリ デザイナとダイアログ ボックスを終了します。
レポート データ ペインにデータセット SubcategoryValues が表示されます。Subcategory フィールドには、8 行から成る衣料カテゴリのサブカテゴリの一覧が表示されます。
次に、レポート パラメータ @Subcategory のプロパティを設定して、このクエリの値を使用可能な値とその既定値の両方に使用します。
レポート パラメータ Subcategory に使用可能な値と既定値を設定するには
レポート データ ペインの Parameters フォルダで、Subcategory を右クリックし、[パラメータのプロパティ] をクリックします。
[使用できる値] をクリックします。
[クエリから値を取得] をクリックします。
[データセット] のボックスの一覧から、[SubcategoryValues] をクリックします。
[値] フィールドで [Subcategory] をクリックします。
[ラベル] フィールドで [Subcategory] をクリックします。
[既定値] をクリックします。
[値の指定] をクリックします。
[追加] をクリックします。
[値] に「Gloves」と入力します。
[OK] をクリックします。
次に、@Subcategory の両方の値に基づくパラメータ @Product を作成します。
レポート パラメータ Product に値データセットを追加するには
レポート データ ペイン ツール バーで、[新規作成] をクリックし、[データセット] をクリックします。
[名前] に「ProductValues」と入力します。
[クエリ デザイナ] をクリックし、[テキストとして編集] をクリックします。
クエリ ペインに、次のクエリ テキストを貼り付けます。
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 = 'Clothing' AND PSC.Name = (@Subcategory))
[OK] を 2 度クリックして、クエリ デザイナとダイアログ ボックスを終了します。
Product というフィールドが 1 つある ProductValues というデータセットがレポート データ ペインに追加されます。
次に、パラメータ @Product のプロパティを設定して、このクエリの値を使用可能な値とその既定値の両方に使用します。
レポート パラメータ Product に使用可能な値と既定値を設定するには
レポート データ ペインの Parameters フォルダで、Product パラメータを右クリックし、[パラメータのプロパティ] をクリックします。
[複数の値を許可] を選択します。
[使用できる値] をクリックします。
[クエリから値を取得] をクリックします。
[データセット] のボックスの一覧から、[ProductValues] をクリックします。
[値] フィールドで [Product] をクリックします。
[ラベル] フィールドで [Product] をクリックします。
[既定値] をクリックします。
[クエリから値を取得] をクリックします。
[データセット] のボックスの一覧から、[ProductValues] をクリックします。
[値] フィールドで [Product] をクリックします。
[OK] をクリックします。
[実行] をクリックして、レポートをプレビューします。
[Subcategory] ボックスの一覧で、[Jerseys] を選択します。
Product のドロップダウン リストに、Jerseys である製品だけが表示されます。
レポート ビューア ツール バーの [レポートの表示] をクリックします。
選択した製品を含む販売注文がレポートのテーブルとグラフに表示されます。表示されるデータは、販売注文日と曜日のレポート パラメータで限定されます。
次の手順
サブカテゴリでフィルタ処理するカスケード型パラメータを使用して、特定の製品の販売注文を表示する新しいレポートを作成できました。次のレッスンでは、ドリルスルー レポートにパラメータを渡す方法を学習します。「レッスン 5: ドリルスルー レポートに渡すパラメータの追加 (レポート ビルダ 2.0)」を参照してください。