レッスン 2: 使用可能な値の一覧を作成するパラメータの追加 (レポート ビルダ 2.0)
選択可能な値 (有効な値) を使用すると、ユーザーは、レポート パラメータの値を一覧から選択できるようになります。データ ソースから特定の値セットを取得するためのクエリを作成して、そのクエリから有効な値を提示することも、値セットを事前定義しておくこともできます。レポート処理時に実行されるデータセット クエリに使用可能な値のセットをバインドすることで、基になるデータ ソースに存在する値のみをユーザーが選択できるようにすることができます。
このレッスンでは、販売注文レポートを修正して、AdventureWorks2008 データベースから取得した販売担当者の名前がドロップダウン リストに表示されるようにします。また、選択したパラメータ値の結果セットに行がない場合はメッセージが表示されるようにテーブルのプロパティを設定します。名前を選択してレポートを表示すると、レポートにはその販売担当者のみの販売情報が表示されます。
既存のデータセット クエリを置き換えるには
レポート データ ペインで DataSet1 を右クリックし、[クエリ] をクリックします。クエリ デザイナが表示されます。
クエリ ペインで、既存のクエリ テキストを次のクエリに置き換えます。
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 SH.SalesPersonID = (@BusinessPersonID)
このクエリには、この販売注文の販売担当者を表すクエリ パラメータが含まれています。
AND SH.SalesPersonID = (@BusinessPersonID)
[実行] (!) ボタンをクリックします。クエリ パラメータの入力画面が表示されたら、次の表にある値を入力します。
@StartDate
20010101
@EndDate
20030101
@BusinessPersonID
290
[OK] をクリックします。SalesPersonID = 290 の販売担当者 Ranjit Varkey Chudukatil の結果セットが表示されます。
次に、販売担当者名を一覧表示する新しいデータセットを作成します。
レポート パラメータの有効な値の一覧を表示するには
レポート データ ペイン ツール バーで、[新規作成] をクリックし、[データセット] をクリックします。[データセットのプロパティ] ダイアログ ボックスが表示されます。
[名前] フィールドに、「SalesPersons」と入力します。SalesPersonID レポート パラメータの有効な値の一覧にはこのデータセットが使用されます。
データ ソースが AdventureWorks2008 であることを確認します。
[クエリ デザイナ] をクリックし、[テキストとして編集] をクリックします。
次の Transact-SQL クエリをクエリ ペインに貼り付けます。
SELECT SP.BusinessEntityID, C.FirstName, C.LastName FROM Sales.SalesPerson AS SP INNER JOIN HumanResources.Employee AS E ON E.BusinessEntityID = SP.BusinessEntityID INNER JOIN Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID ORDER BY SP.BusinessEntityID
[OK] を 2 回クリックします。レポート データ ペインで、新しいデータセットに BusinessEntityID、FirstName、および LastName の 3 つのフィールドが表示されます。BusinessPersonID レポート パラメータの有効な値の一覧にはこのデータセットが使用されます。
次に、FirstName と LastName を Name という 1 つのフィールドに連結する追加のデータセット フィールドを作成します。定義するフィールドは、計算フィールドと呼ばれます。
レポート データ ペインで計算フィールドを定義するには
レポート データ ペイン ツール バーで SalesPersons データセットを右クリックし、[計算フィールドの追加] をクリックします。[データセットのプロパティ] ダイアログ ボックスの [フィールド] ページで、新しい行が追加されたグリッドが表示されます。
最後の [フィールド名] ボックスで、「名前」と入力します。
[フィールド ソース] ボックスに、次の式を貼り付けます。
=Fields!LastName.Value & ", " & Fields!FirstName.Value
[OK] をクリックします。
レポート データ ペインで、SalesPersons データセットのフィールド コレクションに新しい Name フィールドが表示されます。
次に、BusinessPersonID レポート パラメータでこのデータセットを有効な値として使用するように指定します。
レポート パラメータに使用可能な値の一覧を挿入するには
レポート データ ペインで [パラメータ] ノードを展開して BusinessPersonID を右クリックし、[パラメータのプロパティ] をクリックします。
[プロンプト] で「販売担当者を選択してください : 」と入力します。
[データ型] として [Integer] を選択します。
[使用できる値] をクリックします。
[クエリから値を取得] オプションを選択します。
[データセット] ボックスの一覧から、[BusinessPersons] を選択します。
[値フィールド] ボックスの一覧から [BusinessEntityID] を選択します。
[ラベル フィールド] ボックスの一覧から [名前] を選択します。
ラベルの名前を選択することによって、今度は BusinessEntityID パラメータの有効な値の一覧に、営業担当者の ID ではなく各販売担当者の名前が表示されます。
[既定値] をクリックします。
[クエリから値を取得] オプションを選択します。
[データセット] ボックスの一覧から、[BusinessPersons] を選択します。
[値フィールド] ボックスの一覧から [BusinessEntityID] を選択します。
[OK] をクリックします。
[実行] をクリックします。レポートに、営業担当者名のドロップダウン リストが表示されます。
[レポートの表示] をクリックします。
選択した販売担当者の販売注文がレポートに表示されます。表示されるデータは、レポート パラメータで指定した条件に一致します。日付、曜日、および販売担当者の組み合わせによっては、結果が含まれない場合があります。
次の手順
これで、既存のレポートのパラメータに使用可能な値の一覧を追加できました。次は、DayoftheWeek パラメータと BusinessPersonID パラメータが複数の値をとるように修正します。「レッスン 3: 複数の値を一覧で選択するためのパラメータの追加 (レポート ビルダ 2.0)」を参照してください。