レポートにパラメーターを追加して、ユーザーがデータ ソースまたはレポート内のレポート データをフィルター処理できるようにします。 レポート パラメーターは、データセット クエリに含めるクエリ パラメーターごとに自動的に作成されます。 パラメーターのデータ型により、パラメーターがレポート ビューアー ツール バーに表示される方法が決まります。
学習する内容
このチュートリアルでは、次の操作を行う方法について説明します。
注
このチュートリアルでは、ウィザードに関する複数の手順を 1 つにまとめて示します。 レポート サーバーの参照、データ ソースの選択、データセットの作成の詳細な手順については、このシリーズの最初のチュートリアル「 チュートリアル: 基本的なテーブル レポートの作成 (レポート ビルダー)」を参照してください。
このチュートリアルの推定所要時間: 25 分。
要求事項
要件の詳細については、「 チュートリアルの前提条件 (レポート ビルダー)」を参照してください。
1. テーブルまたはマトリックス ウィザードからマトリックス レポートとデータセットを作成する
マトリックス レポート、データ ソース、データセットを作成します。
注
このチュートリアルのクエリにはデータ値が含まれているため、外部データ ソースを必要としません。 このため、クエリが非常に長くなっています。 ビジネス環境でクエリにデータを含めることはありません。 これは、学習に使用することのみを目的としています。
新しいマトリックス レポートを作成するには
[ スタート] をクリックし、[ プログラム] をポイントし、 Microsoft SQL Server 2014レポート ビルダーをポイントして、[ レポート ビルダー] をクリックします。
[作業の開始] ダイアログ ボックスが表示されます。
注
[ 作業の開始 ] ダイアログ ボックスが表示されない場合は、[ レポート ビルダー ] ボタンから [ 新規] をクリックします。
左側のウィンドウで、 レポート が選択されていることを確認します。
右側のウィンドウで、[ テーブル] または [マトリックス ウィザード] をクリックします。
Create をクリックしてください。
[ データセットの選択 ] ページで、[ データセットの作成] をクリックします。
[次へ] をクリックします。
[ データ ソースへの接続の選択 ] ページで、 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このクエリは、共通テーブル式内の複数の Transact-SQL SELECT ステートメントの結果を組み合わせて、Contoso サンプル データベースの簡略化されたデータに基づく値を指定します。 Contoso の売上データは、消費者向け商品の国際販売データを表します。 このチュートリアルでは、カメラの売上データを使用します。 サブカテゴリは、デジタル カメラ、デジタル一眼レフ (SLR) カメラ、ビデオカメラ、アクセサリを表します。
このクエリでは、店舗識別子、販売品目サブカテゴリ、および 3 つの店舗からの販売注文の注文数量を含む列名を指定します。 このクエリでは、ストア名は結果セットの一部ではありません。 このチュートリアルの後半では、別のデータセットのストア識別子に対応するストアの名前を検索します。
このクエリにはクエリ パラメーターは含まれません。 クエリ パラメーターは、このチュートリアルの後半で追加します。
クエリ デザイナーのツール バーで、[ 実行 ] (!) をクリックします。 結果セットには、4 つのストアのサブカテゴリごとに販売されたアイテムの数量を示す 11 行のデータが表示され、StoreID、Subcategory、Quantity の列が含まれます。
[次へ] をクリックします。
2. テーブルまたはマトリックス ウィザードでデータの整理、レイアウトの選択、およびスタイルを選択する
ウィザードを使用して、データを表示する最初のデザインを作成します。 ウィザードのプレビュー ペインでは、テーブルやマトリックスのデザインを完了する前にデータのグループ化の結果を表示できます。
データをグループに整理するには
[ フィールドの配置 ] ページで、[サブカテゴリ] を [行] グループにドラッグします。
StoreID を 列グループにドラッグします。
Quantity を [値] にドラッグします。
サブカテゴリ別にグループ化された行で、販売数量の値を整理しました。 ストアごとに 1 つの列があります。
[次へ] をクリックします。
[ レイアウトの選択 ] ページの [オプション] で、[ 小計と総計を表示 ] が選択されていることを確認します。
レポートを実行すると、最後の列にすべてのストアの各サブカテゴリの合計数量が表示され、最後の行には各ストアのすべてのサブカテゴリの合計数量が表示されます。
[次へ] をクリックします。
[ スタイルの選択 ] ページの [スタイル] ウィンドウで、スタイルを選択します。
[完了] をクリックします。
マトリックスがデザイン画面に追加されます。 マトリックスには、3 つの列と 3 つの行が表示されます。 最初の行のセルの内容は、Subcategory、[StoreID]、および Total です。 2 行目のセルの内容には、サブカテゴリ、各店舗で販売されたアイテムの数量、およびすべての店舗の各サブカテゴリの合計数量を表す式が含まれています。 最後の行のセルには、各店舗の総計が表示されます。
マトリックス内をクリックし、最初の列の端にカーソルを合わせ、ハンドルをつかみ、列の幅を展開します。
[実行] をクリックして、レポートをプレビューします。
レポートはレポート サーバー上で実行され、タイトルとレポート処理が発生した時刻が表示されます。
このシナリオでは、列見出しにはストア識別子が表示されますが、ストア名は表示されません。 後で、ストア識別子とストア名のペアを含むデータセットでストア名を検索する式を追加します。
3. クエリ パラメーターを追加してレポート パラメーターを作成する
クエリ にクエリ パラメーターを追加すると、レポート ビルダーは、名前、プロンプト、およびデータ型の既定のプロパティを持つ単一値のレポート パラメーターを自動的に作成します。
クエリ パラメーターを追加するには
デザイン ビューに切り替えます。
レポート データ ペインで、[ データセット ] フォルダーを展開し、[ DataSet1] を右クリックし、[ クエリ] をクリックします。
次の Transact-SQL
WHERE句をクエリの最後の行として追加します。WHERE StoreID = (@StoreID)WHERE句は、取得したデータを、クエリ パラメーター @StoreIDで指定されたストア識別子に制限します。クエリ デザイナーのツール バーで、[ 実行 ] (!) をクリックします。 [ クエリ パラメーターの定義 ] ダイアログ ボックスが開き、クエリ パラメーター @StoreIDの値の入力を求められます。
[ パラメーター値] に「 200」と入力します。
OK をクリックします。
結果セットには、店舗 ID 200について、Accessories、Camcorders、および Digital SLR Cameras の販売数量が表示されます。
OK をクリックします。
[レポート データ] ウィンドウで、[ パラメーター] フォルダーを展開します。
@StoreIDという名前のレポート パラメーターがあることに注意 してください。 既定では、パラメーターにはデータ型 Text があります。 ストア識別子は整数であるため、次の手順でデータ型を整数に変更します。
4. レポート パラメーターの既定のデータ型とその他のプロパティを変更する
レポート パラメーターを作成したら、プロパティの既定値を調整できます。
レポート パラメーターの既定のデータ型を変更するには
[レポート データ] ウィンドウの [ パラメーター ] ノードで、[ @StoreID] を右クリックし、[ パラメーターのプロパティ] をクリックします。
[プロンプト] に「 ストア識別子」と入力します。 このテキストは、レポートを実行するとレポート ビューアーのツール バーに表示されます。
[ データ型] で、ドロップダウン リストから [ 整数] を選択します。
ダイアログ ボックスの残りの既定値をそのまま使用します。
OK をクリックします。
レポートをプレビューします。 レポート ビューアーに、 @StoreIDのプロンプトが表示されます。
レポート ビューアーのツール バーの [ストア ID] の横に 「200」と入力し、[ レポートの表示] をクリックします。
4a。 データセットを追加して使用可能な値と表示名を指定する
ユーザーがパラメーターの有効な値のみを入力できるようにするには、選択する値のドロップダウン リストを作成できます。 値は、データセットまたは指定したリストから取得できます。 使用可能な値は、パラメーターへの参照を含まないクエリを持つデータセットから指定する必要があります。
パラメーターの有効な値のデータセットを作成するには
デザイン ビューに切り替えます。
レポート データ ペインで、[ データセット ] フォルダーを右クリックし、[ データセットの追加] をクリックします。
名前 に ストア と入力します。
[個人用レポートに埋め込まれたデータセットを使用する] オプションを選択します。
[ データ ソース] のドロップダウン リストから、最初の手順で作成したデータ ソースを選択します。
[クエリの種類] で、[テキスト] が選択されていることを確認します。
クエリで、次のテキストを貼り付けます。
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 StoreNameOK をクリックします。
レポート データ ペインには、Stores データセット ノードの下に StoreID フィールドと StoreName フィールドが 表示されます。
4b. 使用可能な値を指定して値のドロップダウン リストを作成する
使用可能な値を指定するデータセットを作成した後、レポート プロパティを変更して、レポート ビューアー ツール バーの有効な値のドロップダウン リストに入力するために使用するデータセットとフィールドを指定する必要があります。
データセットからパラメーターに使用可能な値を指定するには
レポート データ ペインで、パラメーター @StoreIDを右クリックし、[ パラメーターのプロパティ] をクリックします。
[ 使用可能な値] をクリックし、[ クエリから値を取得] をクリックします。
[データセット] のドロップダウン リストから [ストア] をクリックします。
[ 値] フィールドのドロップダウン リストから [StoreID] をクリックします。
[ ラベル] フィールドのドロップダウン リストから [StoreName] をクリックします。 ラベル フィールドによって値の表示名が指定されます。
[全般] をクリックします。
プロンプトで、「 ストア名」と入力します。
これで、ユーザーはストア識別子ではなく、ストア名の一覧から選択します。 パラメーターはストア名ではなくストア識別子に基づいているため、パラメーターのデータ型は 整数 のままであることに注意してください。
OK をクリックします。
レポートをプレビューします。
レポート ビューアーのツール バーで、パラメーター テキスト ボックスがドロップダウン リストになり、 <値の選択>が表示されるようになりました。
ドロップダウン リストから Contoso カタログ ストアを選択し、[ レポートの表示] をクリックします。
レポートには、店舗 ID 200について、Accessories、Camcorders、および Digital SLR Cameras の販売数量が表示されます。
4c. レポートが自動的に実行されるように既定値を指定する
レポートが自動的に実行されるように、各パラメーターに既定値を指定できます。
データセットの既定値を指定するには
デザイン ビューに切り替えます。
[レポート データ] ウィンドウで、[ @StoreID] を右クリックし、[ パラメーターのプロパティ] をクリックします。
[ 既定値] をクリックし、[ クエリから値を取得] をクリックします。
[データセット] のドロップダウン リストから [ストア] をクリックします。
[ 値] フィールドのドロップダウン リストから [StoreID] をクリックします。
OK をクリックします。
レポートをプレビューします。
@StoreIDの場合、レポート ビューアーには "Contoso North America Online Store" という値が表示されます。 これは、データセット ストアの結果セットの最初の値 です。 このレポートには、店舗識別子 199 のデジタル カメラの販売数量が表示されます。
カスタムの既定値を指定するには
デザイン ビューに切り替えます。
[レポート データ] ウィンドウで、[ @StoreID] を右クリックし、[ パラメーターのプロパティ] をクリックします。
[ 既定値] をクリックし、[ 値の指定] をクリックし、[ 追加] をクリックします。 新しい値の行が追加されます。
[ 値] に「 200」と入力します。
OK をクリックします。
レポートをプレビューします。
@StoreIDの場合、レポート ビューアーに "Contoso Catalog Store" という値が表示されます。 これは、ストア識別子 200 の表示名です。 レポートには、店舗 ID 200について、Accessories、Camcorders、および Digital SLR Cameras の販売数量が表示されます。
4d。 名前と値のペアを持つデータセットから値を検索する
データセットには、識別子と対応する名前フィールドの両方が含まれている場合があります。 識別子しかない場合は、名前と値のペアを含む、作成したデータセット内の対応する名前を検索できます。
データセットから値を検索するには
デザイン ビューに切り替えます。
デザイン画面のマトリックスの最初の行列ヘッダーで、
[StoreID]右クリックし、[ 式] をクリックします。式ペインで、先頭
equals(=) を除くすべてのテキストを削除します。[カテゴリ] で、[共通関数] を展開し、[その他] をクリックします。 [アイテム] ウィンドウには、一連の関数が表示されます。
[アイテム] で、[参照] をダブルクリックします。 式ペインに
=Lookup(が表示されます。 [例] ペインには、ルックアップ構文の例が表示されます。次の式を入力します。
=Lookup(Fields!StoreID.Value,Fields!StoreID.Value,Fields!StoreName.Value,"Stores")Lookup 関数は StoreID の値を受け取り、"Stores" データセットで検索し、StoreName 値を返します。
OK をクリックします。
ストア列ヘッダーには、複雑な式の表示テキストが含まれています: <<Expr>>。
レポートをプレビューします。
各ページの上部にあるテキスト ボックスには、ストア識別子ではなくストア名が表示されます。
5. 選択したパラメータ値をレポートに表示する
レポートに関する質問があるユーザーは、選択したパラメーター値を把握するのに役立ちます。 レポートのパラメーターごとにユーザーが選択した値を保持できます。 1 つの方法は、ページ フッターのテキスト ボックスにパラメーターを表示する方法です。
選択したパラメーター値とラベルをページ フッターに表示するには
デザイン ビューに切り替えます。
ページ フッターを右クリックし、[ 挿入] をポイントして、[ テキスト ボックス] をクリックします。 タイムスタンプを示すテキスト ボックスの横にテキスト ボックスをドラッグします。 テキスト ボックスのサイド ハンドルをつかみ、幅を広げる。
レポート データ ペインから、パラメーター @StoreID をテキスト ボックスにドラッグします。 テキスト ボックスに
[@StoreID]が表示されます。パラメーター ラベルを表示するには、既存の式の後にカーソルが挿入されるまでテキスト ボックス内をクリックし、スペースを入力して、[レポート データ] ペインからテキスト ボックスにパラメーターの別のコピーをドラッグします。 テキスト ボックスに
[@StoreID] [@StoreID]が表示されます。最初の式を右クリックし、[ 式] をクリックします。 [ 式 ] ダイアログ ボックスが開きます。 テキスト
ValueをLabelで置き換えます。OK をクリックします。
テキストが表示されます:
[@StoreID.Label] [@StoreID]。レポートをプレビューします。
6. フィルターでレポート パラメーターを使用する
フィルターは、外部データ ソースから取得した後にレポートで使用するデータを制御するのに役立ちます。 表示するデータをユーザーが制御できるように、マトリックスのフィルターにレポート パラメーターを含めることができます。
マトリックス フィルターでパラメーターを指定するには
デザイン ビューに切り替えます。
マトリックスの行または列ヘッダー ハンドルを右クリックし、[ Tablix プロパティ] をクリックします。
[ フィルター] をクリックし、[ 追加] をクリックします。 新しいフィルター行が表示されます。
[ 式] のドロップダウン リストから、データセット フィールド StoreID を選択します。 データ型には 整数が表示されます。 式の値がデータセット フィールドの場合、データ型は自動的に設定されます。
[演算子] で、
equals(=) が選択されていることを確認します。[ 値] に「
[@StoreID]」と入力します。[@StoreID]は、=Parameters!StoreID.Valueを表す単純な式の構文です。OK をクリックします。
レポートをプレビューします。
マトリックスには、"Contoso カタログ ストア" のデータのみが表示されます。
レポート ビューアーのツール バーの [ストア名]、[Contoso Asia Online Store] の順に選択し、[レポートの表示] をクリックします。
マトリックスに、選択した店舗に対応するデータが表示されます。
7. 複数の値を受け入れるようにレポート パラメーターを変更する
パラメーターを単一から複数値に変更するには、クエリと、パラメーターへの参照を含むすべての式 (フィルターを含む) を変更する必要があります。 複数値パラメーターは、値の配列です。 データセット クエリでは、クエリ構文で一連の値に 1 つの値が含まれるかテストする必要があります。 レポート式では、式の構文は、個々の値ではなく値の配列にアクセスする必要があります。
パラメーターを単一から複数値に変更するには
デザイン ビューに切り替えます。
[レポート データ] ウィンドウで、[ @StoreID] を右クリックし、[ パラメーターのプロパティ] をクリックします。
[ 複数の値を許可する] を選択します。
OK をクリックします。
レポート データ ペインで、[ データセット ] フォルダーを展開し、[ DataSet1] を右クリックし、[ クエリ] をクリックします。
equals(=) を、クエリの最後の行の Transact-SQLWHERE句でINに変更します。WHERE StoreID IN (@StoreID)IN演算子によって、値が一連の値に含まれているかどうかがテストされます。OK をクリックします。
マトリックスの行または列ヘッダー ハンドルを右クリックし、[ Tablix プロパティ] をクリックします。
[ フィルター] をクリックします。
[演算子]で、インを選択します。
OK をクリックします。
ページ フッターにパラメーターを表示するテキスト ボックスで、すべてのテキストを削除します。
テキスト ボックスを右クリックし、[ 式] をクリックします。 次の式を入力します。
=Join(Parameters!StoreID.Label, ", ")この式は、ユーザーが選択したすべてのストア名を連結します。
OK をクリックします。
先ほど作成した式の前にあるテキストボックスをクリックし、「Parameter Values Selected:」と入力してください。
レポートをプレビューします。
[ストア名] の横にあるドロップダウン リストをクリックします。
有効な各値は、チェック ボックスの横に表示されます。
[ すべて選択] をクリックし、[ レポートの表示] をクリックします。
レポートには、すべての店舗のすべてのサブカテゴリの販売数量が表示されます。
ドロップダウン リストから [ すべて選択 ] をクリックして一覧をクリアし、[Contoso Catalog Store] と [Contoso Asia Online Store] をクリックし、[ レポートの表示] をクリックします。
8. 条件付き可視性のブール値パラメーターを追加する
ブール値パラメーターを追加するには
デザイン画面の [レポート データ] ウィンドウで、[ パラメーター] を右クリックし、[ パラメーターの追加] をクリックします。
[名前] に「ShowSelections」と入力します。
プロンプトで、「選択内容を表示する」と入力します。
[ データ型] のドロップダウン リストで、[ ブール値] をクリックします。
[ 既定値] をクリックします。
[ 値の指定] をクリックし、[ 追加] をクリックします。
[ 値] に 「False」と入力します。
OK をクリックします。
ブール値パラメーターに基づいて可視性を設定するには
デザイン画面で、パラメーター値を表示するページ フッターのテキスト ボックスを右クリックし、[ テキスト ボックスのプロパティ] をクリックします。
表示 をクリックします。
[式に 基づいて表示または非表示] オプションを選択し、[式] ボタン [Fx] をクリックします。
次の式を入力します。
=Not Parameters!ShowSelections.Valueテキスト ボックスの [表示] オプションは、[非表示] プロパティによって制御されます。 パラメーターを選択すると、Hidden プロパティが false になり、テキスト ボックスが表示されるように、
Not演算子を適用します。OK をクリックします。
OK をクリックします。
レポートをプレビューします。
パラメーターの選択肢を表示するテキスト ボックスは表示されません。
レポート ビューアーのツール バーの [ 選択項目の表示] の横にある [
True] をクリックします。レポートをプレビューします。
ページ フッターのテキスト ボックスには、選択したすべてのストア名が表示されます。
9. レポート タイトルを追加する
レポート タイトルを追加するには
デザイン画面で、クリックしてタイトルを追加します。
「パラメーター指定された製品販売」と入力し、テキストボックスの外側をクリックします。
10. レポートを保存する
レポート サーバーにレポートを保存するには
[レポート ビルダー] ボタンで、[名前を付けて保存] をクリックします。
[ 最近使用したサイトとサーバー] をクリックします。
レポートを保存する権限があるレポート サーバーの名前を選択または入力します。
[レポート サーバーに接続しています] というメッセージが表示されます。 接続が完了すると、レポート サーバー管理者がレポートの既定の場所として指定したレポート フォルダーのコンテンツが表示されます。
[名前] で、既定の名前をパラメーター化された売上レポートに置き換えます。
[保存] をクリックします。
レポートがレポート サーバーに保存されます。 接続しているレポート サーバーが、ウィンドウの下部にあるステータス バーに表示されます。
次のステップ
これで、レポートにパラメーターを追加する方法のチュートリアルは終了です。 パラメーターの詳細については、「 レポート パラメーター (レポート ビルダーおよびレポート デザイナー)」を参照してください。