Share via


レッスン 2 : 使用可能な値の一覧を作成するパラメータの追加

選択可能な値 (有効な値) を使用すると、ユーザーは、レポート パラメータの値を一覧から選択できるようになります。レポート作成者は、データ ソースから特定の値セットを取得するためのクエリを作成して、そのクエリから有効な値を提示することも、値セットを事前定義しておくこともできます。レポート処理時にデータセット クエリを実行して可能な値のセットを取得し、その値をバインドする方法では、確実にデータベースに存在する値だけを一覧の選択肢として提示できます。

このレッスンでは、販売注文レポートを修正して、AdventureWorks2008 データベースから取得した販売担当者の名前がドロップダウン リストに表示されるようにします。また、選択したパラメータ値の結果セットに行がない場合はメッセージが表示されるように表のプロパティを設定します。名前を選択してレポートを表示すると、レポートにはその販売担当者のみの販売情報が表示されます。

既存のデータセットを置き換えるには

  1. レポート データ ペインで AdventureWorksDataset というデータセットを右クリックし、[データセットのプロパティ] をクリックします。

    注意注意

    レポート データ ペインが表示されていない場合は、[表示] メニューの [レポート データ] をクリックします。

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

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

  4. [クエリ デザイナ] をクリックして、クエリ デザイナを開きます。

  5. テキスト ボックスのテキストを次のクエリで置き換えます。

    SELECT 
       soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday,
       soh.SalesOrderNumber AS [Order], 
       pps.Name AS Subcat, pp.Name as Product,  
       SUM(sd.OrderQty) AS Qty,
       SUM(sd.LineTotal) AS LineTotal
    FROM Sales.SalesPerson sp 
       INNER JOIN Sales.SalesOrderHeader AS soh 
          ON sp.BusinessEntityID = soh.SalesPersonID
       INNER JOIN Sales.SalesOrderDetail AS sd 
          ON sd.SalesOrderID = soh.SalesOrderID
       INNER JOIN Production.Product AS pp 
          ON sd.ProductID = pp.ProductID
       INNER JOIN Production.ProductSubcategory AS pps 
          ON pp.ProductSubcategoryID = pps.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS ppc 
          ON ppc.ProductCategoryID = pps.ProductCategoryID
    GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, 
       pps.Name, pp.Name,    soh.SalesPersonID
    HAVING 
    ppc.Name = 'Clothing' 
    AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    AND  soh.SalesPersonID = (@BusinessPersonID)
    

    これは、結果セットに一人の販売担当者のみが表示されるように制限する次の条件が追加されている他は、以前のクエリと同じです。

    AND soh.SalesPersonID = (@BusinessPersonID)

  6. [実行] (!) ボタンをクリックします。クエリ パラメータの入力画面が表示されたら、次の表にある値を入力します。

    @StartDate

    20010101

    @EndDate

    20030101

    @BusinessPersonID

    290

  7. [OK] をクリックします。SalesPersonID = 290 の販売担当者 Ranjit Varkey Chudakatil の結果セットが表示されます。

レポート パラメータの有効な値の一覧を表示するには

  1. レポート データ ペインで、[新規作成] をクリックし、[データセット] をクリックします。[データセットのプロパティ] ダイアログ ボックスが表示されます。

  2. "名前" フィールドに、「BusinessPersons」と入力します。SalesPersonID レポート パラメータの有効な値の一覧にはこのデータセットが使用されます。

  3. データ ソースが AdventureWorks_Ref であることを確認します。

  4. 次の 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 回クリックします。BusinessPersons データセットのフィールド一覧が作成されます。BusinessPersonID レポート パラメータの有効な値の一覧にはこのデータセットが使用されます。

  5. BusinessPersons データセットには FirstName と LastName というフィールドがあります。次に、これらのフィールドを連結して "名前" と呼ばれる 1 つのフィールドに入れます。

レポート データ ペインで計算フィールドを定義するには

  1. レポート データ ペイン ツール バーで BusinessPersons データセットを右クリックし、[計算フィールドの追加] をクリックします。[データセットのプロパティ] ダイアログ ボックスの [フィールド] ページで、新しい行が追加されたグリッドが表示されます。

  2. 最後の [フィールド名] ボックスで、「名前」と入力します。

  3. [フィールド ソース] ボックスに、次の式を貼り付けます。

    =Fields!LastName.Value & ", " & Fields!FirstName.Value

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

  5. レポート データ ペインで、BusinessPersons データセットのフィールド コレクションに新しい「名前」フィールドが表示されます。

レポート パラメータに使用可能な値の一覧を挿入するには

  1. レポート データ ペインで [パラメータ] ノードを展開して BusinessPersonID を右クリックし、[パラメータのプロパティ] をクリックします。

  2. [プロンプト] で「営業担当者の選択 : 」と入力します。

  3. [データ型] として [Integer] を選択します。

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

  5. [クエリから値を取得] オプションを選択します。

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

  7. [値フィールド] ボックスの一覧から [BusinessEntityID] を選択します。

  8. [ラベル フィールド] ボックスの一覧から [名前] を選択します。

    ラベルの名前を選択することによって、今度は BusinessEntityID パラメータの有効な値の一覧に、販売担当者の ID 番号ではなく名前が表示されます。

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

  10. [クエリから値を取得] オプションを選択します。

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

  12. [値フィールド] ボックスの一覧から [BusinessEntityID] を選択します。

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

  14. [プレビュー] タブをクリックします。レポートに、営業担当者名のドロップダウン リストが表示されます。

  15. [レポートの表示] をクリックします。他のパラメータ値を選択して結果を確認します。

次の手順

これで、既存レポートのパラメータに使用可能な値の一覧を追加できました。次は、DayoftheWeek パラメータと SalesPersonID パラメータが複数の値をとるように修正します。「レッスン 3 : 複数の値を一覧で選択するためのパラメータの追加」を参照してください。