チュートリアル: レポートへのパラメーターの追加 (レポート ビルダー 3.0)
ユーザーがデータ ソースに対して (またはレポート内で) レポート データをフィルター処理できるようにするには、レポートにパラメーターを追加します。レポート パラメーターは、データセット クエリに追加したクエリ パラメーターごとに自動で作成されます。パラメーターのデータ型により、パラメーターがレポート ビューアー ツール バーに表示される方法が決まります。
学習する内容
このチュートリアルでは、次の方法を学習します。
テーブルまたはマトリックス ウィザードを使用してマトリックス レポートとデータセットを作成する
テーブルまたはマトリックス ウィザードでデータを整理し、レイアウトとスタイルを選択する
クエリ パラメーターを追加してレポート パラメーターを作成する
レポート パラメーターの既定のデータ型とその他のプロパティを変更する
使用可能な値と表示名を提供するデータセットを追加する
使用可能な値を指定して値のドロップダウン リストを作成する
既定値を指定してレポートが自動的に実行されるようにする
名前と値のペアを持つデータセットから値を参照する
選択されたパラメーターの値をレポートに表示する
フィルターにレポート パラメーターを使用する
レポート パラメーターを複数値をとるように変更する
条件付き表示のためにブール型パラメーターを追加する
レポート タイトルを追加する
レポートを保存する
注 |
---|
このチュートリアルでは、ウィザードに関する複数の手順を 1 つにまとめて示します。レポート サーバーの参照、データ ソースの選択、およびデータセットの作成に関する詳細な手順については、このシリーズの最初のチュートリアル (「チュートリアル : 基本的なテーブル レポートの作成 (レポート ビルダー 3.0)」) を参照してください。 |
このチュートリアルの推定所要時間 : 25 分
1. テーブルまたはマトリックス ウィザードを使用してマトリックス レポートとデータセットを作成する
マトリックス レポート、データ ソース、およびデータセットを作成します。
注 |
---|
このチュートリアルのクエリにはデータ値が含まれているため、外部のデータ ソースを必要としません。この場合、クエリが非常に長くなります。ビジネス環境でクエリにデータを含めることはありません。これは、学習に使用することのみを目的としています。 |
新しいマトリックス レポートを作成するには
[スタート] ボタンをクリックし、[プログラム]、[Microsoft SQL Server 2008 R2 レポート ビルダー 3.0] の順にポイントして、[レポート ビルダー 3.0] をクリックします。
[作業の開始] ダイアログ ボックスが表示されます。
注 [作業の開始] ダイアログ ボックスが表示されない場合は、[レポート ビルダー] ボタンの [新規作成] をクリックします。
左ペインで、[レポート] が選択されていることを確認します。
右ペインで、[テーブルまたはマトリックス ウィザード] をクリックします。
[作成] をクリックします。
[データセットの選択] ページで、[データセットを作成する] をクリックします。
[次へ] をクリックします。
[データ ソースへの接続の選択] ページで、種類が [SQL Server] のデータ ソースを選択します。一覧からデータ ソースを選択するか、レポート サーバーを参照してデータ ソースを選択します。
[次へ] をクリックします。
[クエリのデザイン] ページで、[テキストとして編集] をクリックします。
次のクエリをクエリ ペインに貼り付けます。
;WITH CTE (StoreID, Subcategory, Quantity) AS ( SELECT 200 AS StoreID, 'Digital SLR Cameras' AS Subcategory, 2002 AS Quantity UNION SELECT 200 AS StoreID, 'Camcorders' AS Subcategory, 1954 AS Quantity UNION SELECT 200 AS StoreID, 'Accessories' AS Subcategory, 1895 AS Quantity UNION SELECT 199 AS StoreID, 'Digital Cameras' AS Subcategory, 1849 AS Quantity UNION SELECT 306 AS StoreID, 'Digital SLR Cameras' AS Subcategory, 1579 AS Quantity UNION SELECT 306 AS StoreID, 'Camcorders' AS Subcategory, 1561 AS Quantity UNION SELECT 306 AS StoreID, 'Digital Cameras' AS Subcategory, 1553 AS Quantity UNION SELECT 306 AS StoreID, 'Accessories' AS Subcategory, 1534 AS Quantity UNION SELECT 307 AS StoreID, 'Accessories' AS Subcategory, 1755 AS Quantity UNION SELECT 307 AS StoreID, 'Camcorders' AS Subcategory, 1631 AS Quantity UNION SELECT 307 AS StoreID, 'Digital SLR Cameras' AS Subcategory, 1772 AS Quantity) SELECT StoreID, Subcategory, Quantity FROM CTE
Contoso サンプル データベースから抜粋した単純化されたデータを使って値を指定する関係上、このクエリでは、複数の Transact-SQL SELECT ステートメントの結果が共通テーブル式の中で結合されています。Contoso 売上データは、消費者向け商品の各国の売上データを表します。このチュートリアルでは、カメラの売上データを使用します。サブカテゴリは、デジタル カメラ、デジタル一眼レフ (SLR) カメラ、ビデオ カメラ、およびアクセサリを表します。
クエリには、3 つの店舗の販売注文に関して、店舗 ID (StoreID)、商品のサブカテゴリ (Subcategory)、および注文数 (Quantity) を格納している列の名前が指定されています。このクエリでは、店舗名は結果セットに含まれません。このチュートリアルで後ほど、店舗 ID に対応する店舗の名前を別のデータセットから参照します。
クエリ パラメーターは存在しません。以降、このチュートリアルの中でクエリ パラメーターを追加していきます。
クエリ デザイナーのツール バーで、[実行] (!) をクリックします。結果セットは StoreID 列、Subcategory 列、Quantity 列で構成され、4 店舗のサブカテゴリごとの販売済み商品数量を示す 11 行のデータが表示されます。
[次へ] をクリックします。
2. テーブルまたはマトリックス ウィザードでデータを整理し、レイアウトとスタイルを選択する
ウィザードを使用して、データを表示する最初のデザインを作成します。ウィザードのプレビュー ペインでは、テーブルやマトリックスのデザインを完了する前にデータのグループ化の結果を表示できます。
データをグループにまとめるには
[フィールドの配置] ページで、Subcategory を [行グループ] にドラッグします。
StoreID を [列グループ] にドラッグします。
Quantity を [値] にドラッグします。
販売数量の値をサブカテゴリごとにグループ化された行に整理しました。店舗ごとに 1 列のデータが存在します。
[次へ] をクリックします。
[レイアウトの選択] ページの [オプション] で、[小計と総計を表示] が選択されていることを確認します。
レポートを実行すると、最後の列にはすべての店舗のサブカテゴリごとの合計数量が表示され、最後の行には店舗ごとのすべてのサブカテゴリの合計数量が表示されます。
[次へ] をクリックします。
[スタイルの選択] ページのスタイル ペインで、スタイルを選択します。
[完了] をクリックします。
マトリックスがデザイン画面に追加されます。マトリックスは 3 行× 3 列で表示されます。先頭行のセルの内容は、Subcategory、[StoreID]、および Total です。2 番目の行のセルの内容は、サブカテゴリ、店舗ごとの販売品目の数量、および、すべての店舗のサブカテゴリごとの合計数量を表す式です。最後の行のセルには、店舗ごとの総計が表示されます。
マトリックス内をクリックし、最初の列の端にカーソルを合わせてハンドルをドラッグして、列の幅を拡張します。
[実行] をクリックして、レポートをプレビューします。
レポート サーバーでレポートが実行され、タイトルとレポートの処理時刻がレポートに表示されます。
このシナリオでは、列見出しに店舗 ID は表示されますが店舗名は表示されません。後ほど、店舗 ID と店舗名のペアが格納されているデータセットで店舗名を参照する式を追加します。
3. クエリ パラメーターを追加してレポート パラメーターを作成する
クエリ パラメーターをクエリに対して追加すると、名前、プロンプト、およびデータ型に既定のプロパティを持つ単一値のレポート パラメーターがレポート ビルダーによって自動的に作成されます。
クエリ パラメーターを追加するには
デザイン ビューに切り替えます。
レポート データ ペインで、[データセット] フォルダーを展開して DataSet1 を右クリックし、[クエリ] をクリックします。
クエリの最後の行に、次の Transact-SQLWHERE 句を追加します。
WHERE StoreID = (@StoreID)
この WHERE 句によって、取得されるデータが、クエリ パラメーター @StoreID で指定された店舗 ID に限定されます。
クエリ デザイナーのツール バーで、[実行] (!) をクリックします。[クエリ パラメーターの定義] ダイアログ ボックスが開き、クエリ パラメーター @StoreID の値を入力するように求められます。
[パラメーター値] に「200」と入力します。
[OK] をクリックします。
結果セットには、店舗 ID 200 について、Accessories、Camcorders、および Digital SLR Cameras の販売数量が表示されます。
[OK] をクリックします。
レポート データ ペインで [パラメーター] フォルダーを展開します。
@StoreID というレポート パラメーターが存在することがわかります。パラメーターの既定のデータ型は [テキスト] です。店舗 ID は整数なので、次の手順でデータ型を [整数] に変更します。
4. レポート パラメーターの既定のデータ型とその他のプロパティを変更する
プロパティの既定値は、レポート パラメーターの作成後に調整することができます。
レポート パラメーターの既定のデータ型を変更するには
レポート データ ペインの [パラメーター] ノードで、@StoreID を右クリックし、[パラメーターのプロパティ] をクリックします。
[プロンプト] に「Store identifier?」と入力します。レポートを実行すると、レポート ビューアーのツール バーにこのテキストが表示されます。
[データ型] のドロップダウン リストから [整数] を選択します。
このダイアログ ボックスのそれ以外の設定は、既定値のままにします。
[OK] をクリックします。
レポートをプレビューします。レポート ビューアーに @StoreID のプロンプトが表示されます。
レポート ビューアー ツール バーで、店舗 ID の横に「200」と入力し、[レポートの表示] をクリックします。
4a. 使用可能な値と表示名を提供するデータセットを追加する
ユーザーがパラメーターの有効な値しか入力できないようにするには、選択可能な値のドロップダウン リストを作成します。値は、データセットまたは指定した一覧から取得できます。使用可能な値は、パラメーターへの参照を含まないクエリが格納されているデータセットから指定する必要があります。
パラメーターの有効な値のデータセットを作成するには
デザイン ビューに切り替えます。
レポート データ ペインで、[データセット] フォルダーを右クリックし、[データセットの追加] をクリックします。
[名前] に、「Stores」と入力します。
[レポートに埋め込まれたデータセットを使用します。] オプションを選択します。
[データ ソース] のドロップダウン リストから、最初の手順で作成したデータ ソースを選択します。
[クエリの種類] で [テキスト] が選択されていることを確認します。
[クエリ] に、次のテキストを貼り付けます。
SELECT 200 AS StoreID, 'Contoso Catalog Store' as StoreName UNION SELECT 199 AS StoreID, 'Contoso North America Online Store' as StoreName UNION SELECT 307 AS StoreID, 'Contoso Asia Online Store' as StoreName UNION SELECT 306 AS StoreID, 'Contoso Europe Online Store' as StoreName
[OK] をクリックします。
レポート データ ペインの Stores データセット ノードに、StoreID フィールドと StoreName フィールドが表示されます。
4b. 使用可能な値を指定して値のドロップダウン リストを作成する
使用できる値のソースとなるデータセットを作成したら、レポートのプロパティで、レポート ビューアー ツール バーの有効な値のドロップダウン リストに値を設定するために使用するデータセットとフィールドを指定する必要があります。
パラメーターに使用できる値をデータセットから提供するには
レポート データ ペインでパラメーター @StoreID を右クリックし、[パラメーターのプロパティ] をクリックします。
[使用できる値] をクリックし、[クエリから値を取得] をクリックします。
[データセット] ボックスの一覧で Stores をクリックします。
[値フィールド] ボックスの一覧で [StoreID] をクリックします。
[ラベル フィールド] ボックスの一覧で [StoreName] をクリックします。ラベル フィールドによって値の表示名が指定されます。
[全般] をクリックします。
[プロンプト] に「Store name?」と入力します。
これで、店舗 ID ではなく、店舗名の一覧からの選択ができるようになりました。ただし、パラメーターは店舗名ではなく店舗 ID に基づいているので、パラメーターのデータ型は [整数] のままです。
[OK] をクリックします。
レポートをプレビューします。
レポート ビューアー ツール バーのパラメーター テキスト ボックスがドロップダウン リストに変わり、"<Select a Value>" と表示されるようになりました。
ドロップダウン リストから Contoso Catalog Store を選択し、[レポートの表示] をクリックします。
レポートには、店舗 ID 200 について、Accessories、Camcorders、および Digital SLR Cameras の販売数量が表示されます。
4c. 既定値を指定してレポートが自動的に実行されるようにする
各パラメーターの既定値を指定して、レポートが自動的に実行されるようにすることができます。
データセットから既定値を指定するには
デザイン ビューに切り替えます。
レポート データ ペインで @StoreID を右クリックし、[パラメーターのプロパティ] をクリックします。
[既定値] をクリックし、[クエリから値を取得] をクリックします。
[データセット] ボックスの一覧で Stores をクリックします。
[値フィールド] ボックスの一覧で [StoreID] をクリックします。
[OK] をクリックします。
レポートをプレビューします。
レポート ビューアーに、"Contoso North America Online Store" が @StoreID の値として表示されます。これは、データセット Stores の結果セットの最初の値です。レポートには、店舗 ID 199 について、Digital Cameras の販売数量が表示されます。
カスタムの既定値を指定するには
デザイン ビューに切り替えます。
レポート データ ペインで @StoreID を右クリックし、[パラメーターのプロパティ] をクリックします。
[既定値] をクリックし、[値の指定] をクリックして、[追加] をクリックします。新しい値の行が追加されます。
[値] に「200」と入力します。
[OK] をクリックします。
レポートをプレビューします。
レポート ビューアーに、"Contoso Catalog Store" が @StoreID の値として表示されます。これは、店舗 ID 200 の表示名です。レポートには、店舗 ID 200 について、Accessories、Camcorders、および Digital SLR Cameras の販売数量が表示されます。
4d. 名前と値のペアを持つデータセットから値を参照する
データセットには、ID と対応する名前フィールドの両方が含まれている場合があります。ID しかない場合は、名前と値のペアが格納されている作成済みのデータセットで対応する名前を参照できます。
データセットから値を参照するには
デザイン ビューに切り替えます。
デザイン画面のマトリックスの先頭行の列見出しで、[StoreID] を右クリックし、[式] をクリックします。
式ペインで、先頭の equals (=) を除くすべてのテキストを削除します。
[カテゴリ] で、[共通の関数] を展開して [その他] をクリックします。アイテム ペインに関数セットが表示されます。
[アイテム] で、[参照] をダブルクリックします。式ペインに "=Lookup(" と表示されます。サンプル ペインに Lookup 構文の例が表示されます。
式「=Lookup(Fields!StoreID.Value,Fields!StoreID.Value,Fields!StoreName.Value,"Stores")」を入力します。
Lookup 関数は、StoreID の値を受け取って Stores データセットを検索して、StoreName の値を返します。
[OK] をクリックします。
店舗の列見出しに、複合式の表示テキスト "<<Expr>>" が示されます。
レポートをプレビューします。
各ページの上部にあるテキスト ボックスに、店舗 ID ではなく店舗名が表示されます。
5. 選択されたパラメーターの値をレポートに表示する
ユーザーがレポートの詳細を確認する場合に、選択したパラメーターの値がわかるようにすることができます。レポートのパラメーターごとにユーザーが選択した値を保持できます。そのための方法の 1 つとして、ページ フッターのテキスト ボックスにパラメーターを表示する方法があります。
選択されたパラメーターの値とラベルをページ フッターに表示するには
デザイン ビューに切り替えます。
ページ フッターを右クリックし、[挿入] をポイントして、[テキスト ボッス] をクリックします。タイムスタンプを示すテキスト ボックスの横にテキスト ボックスをドラッグします。テキスト ボックスの側面にあるハンドルをクリックしてドラッグすることにより、幅を拡張します。
レポート データ ペインからテキスト ボックスに @StoreID パラメーターをドラッグします。テキスト ボックスに "[@StoreID]" と表示されます。
パラメーターのラベルを表示するには、既存の式の後ろに挿入カーソルが表示されるまでテキスト ボックスをクリックし、空白を入力した後、レポート データ ペインからテキスト ボックスにもう一度パラメーターをドラッグします。テキスト ボックスに "[@StoreID] [@StoreID]" と表示されます。
1 つ目の式を右クリックし、[式] をクリックします。[式] ダイアログ ボックスが表示されます。「Value」を「Label」に置き換えます。
[OK] をクリックします。
"[@StoreID.Label] [@StoreID]" というテキストが表示されます。
レポートをプレビューします。
6. フィルターにレポート パラメーターを使用する
フィルターを使用すると、外部データ ソースから取得されたデータのうちどのデータをレポートで使用するかを制御できます。表示するデータをユーザーが制御できるようにするには、マトリックスのフィルターにレポート パラメーターを含めます。
マトリックス フィルターにパラメーターを指定するには
デザイン ビューに切り替えます。
マトリックス上の行ヘッダーまたは列ヘッダーのハンドルを右クリックし、[Tablix のプロパティ] をクリックします。
[フィルター] をクリックして、[追加] をクリックします。新しいフィルター行が表示されます。
[式] ボックスの一覧からデータセット フィールドの StoreID を選択します。データ型に [整数] が表示されます。式の値がデータセット フィールドの場合、データ型は自動的に設定されます。
[演算子] で equals (=) が選択されていることを確認します。
[値] に「[@StoreID]」と入力します。[@StoreID] は、=Parameters!StoreID.Value を表す単純な式の構文です。
[OK] をクリックします。
レポートをプレビューします。
マトリックスに、"Contoso Catalog Store" のデータのみが表示されます。
レポート ビューアー ツール バーで、"Store name?" に対して Contoso Asia Online Store を選択し、[レポートの表示] をクリックします。
マトリックスに、選択した店舗に対応するデータが表示されます。
7. レポート パラメーターを複数値をとるように変更する
パラメーターを単一値ではなく複数値をとるように変更するには、クエリと、フィルターなどのパラメーターへの参照を含むすべての式を変更する必要があります。複数値パラメーターは値の配列です。データセット クエリでは、クエリ構文で 1 つの値が一連の値に含まれているかどうかをテストする必要があります。レポート式では、式の構文が個々の値ではなく値の配列にアクセスする必要があります。
パラメーターを単一値ではなく複数値をとるように変更するには
デザイン ビューに切り替えます。
レポート データ ペインで @StoreID を右クリックし、[パラメーターのプロパティ] をクリックします。
[複数の値を許可] を選択します。
[OK] をクリックします。
レポート データ ペインで、[データセット] フォルダーを展開して DataSet1 を右クリックし、[クエリ] をクリックします。
クエリの最後の行にある Transact-SQLWHERE 句で、equals (=) を IN に変更します。
WHERE StoreID IN (@StoreID)
IN 演算子によって、値が一連の値に含まれているかどうかがテストされます。
[OK] をクリックします。
マトリックス上の行ヘッダーまたは列ヘッダーのハンドルを右クリックし、[Tablix のプロパティ] をクリックします。
[フィルター] をクリックします。
[演算子] で [次に含まれる] を選択します。
[OK] をクリックします。
ページ フッターのパラメーターを表示するテキスト ボックスで、すべてのテキストを削除します。
テキスト ボックスを右クリックして、[式] をクリックします。式「=Join(Parameters!StoreID.Label, ", ")」を入力します。
この式は、ユーザーが選択したすべての店舗名を連結します。
[OK] をクリックします。
作成した式の前にあるテキスト ボックス内をクリックして、「Parameter Values Selected:」と入力します。
レポートをプレビューします。
"Store Name?" の横にあるドロップダウン リストをクリックします。
有効な各値がチェック ボックスの横に表示されます。
[すべて選択] をクリックして、[レポートの表示] をクリックします。
レポートに、全店舗のすべてのサブカテゴリの販売数量が表示されます。
ドロップダウン リストで [すべて選択] をクリックして一覧を消去し、"Contoso Catalog Store" と "Contoso Asia Online Store" をクリックして [レポートの表示] をクリックします。
8. 条件付き表示のためにブール型パラメーターを追加する
ブール型パラメーターを追加するには
デザイン画面のレポート データ ペインで [パラメーター] を右クリックし、[パラメーターの追加] をクリックします。
[名前] に「ShowSelections」と入力します。
[プロンプト] に「Show selections?」と入力します。
[データ型] のドロップダウン リストで [ブール] をクリックします。
[既定値] をクリックします。
[値の指定] をクリックして、[追加] をクリックします。
[値] に「False」と入力します。
[OK] をクリックします。
ブール型パラメーターに基づいて表示を設定するには
デザイン画面で、ページ フッターのパラメーター値を表示するテキスト ボックスを右クリックし、[テキスト ボックスのプロパティ] をクリックします。
[表示] をクリックします。
[式を基に表示/非表示を切り替える] オプションを選択し、式ボタン ([Fx]) をクリックします。
式「=Not Parameters!ShowSelections.Value」を入力します。
テキスト ボックスの [表示] オプションは、[非表示] プロパティによって制御されます。Not 演算子を適用すると、パラメーターが選択されたときに、[非表示] プロパティが false になり、テキスト ボックスが表示されます。
[OK] をクリックします。
[OK] をクリックします。
レポートをプレビューします。
パラメーターの選択肢を表示するテキスト ボックスが表示されません。
レポート ビューアー ツール バーで、"Show selections" の横の [True] をクリックします。
レポートをプレビューします。
ページ フッターのテキスト ボックスに、選択したすべての店舗名が表示されます。
9. レポート タイトルを追加する
レポート タイトルを追加するには
デザイン画面で、[クリックしてタイトルを追加] をクリックします。
「Parameterized Product Sales」と入力し、テキスト ボックスの外側をクリックします。
10. レポートを保存する
レポート サーバーにレポートを保存するには
レポート ビルダーのボタンの [名前を付けて保存] をクリックします。
[最近使ったサイトとサーバー] をクリックします。
レポートを保存する権限があるレポート サーバーの名前を入力するか選択します。
"レポート サーバーに接続しています" というメッセージが表示されます。接続が完了すると、レポート サーバー管理者がレポートの既定の場所として指定したレポート フォルダーのコンテンツが表示されます。
[名前] に表示されている既定の名前を「Parameterized Sales Report」に変更します。
[保存] をクリックします。
レポートがレポート サーバーに保存されます。接続しているレポート サーバーがウィンドウ下部のステータス バーに表示されます。