パラメータを使用したレポート データの制御
新規 : 2006 年 7 月 17 日
レポート処理時にデータ ソースからどのデータを取得するかは、パラメータを使用して制御できます。また、パラメータを使用して、取得後のデータをフィルタ処理することもできます。データ ソースから取得するデータは、レポートに必要なデータのみに限定することをお勧めします。ただし、ストアド プロシージャを使用してデータを取得する場合は、クエリからどのようなデータが取得されるかを制御できません。したがって、取得後にレポート データをフィルタ処理する必要があります。
データ ソースでのデータのフィルタ処理
クエリ パラメータを使用すると、データ ソースから取得するデータを正確に指定できます。つまり、レポートに送信する前に、サーバーでデータをフィルタ処理できます。
変数が含まれているクエリを使用してデータセットを定義すると、Reporting Services のクエリ デザイナ コンポーネントによって、変数ごとにクエリ パラメータが作成されます。対応するレポート パラメータはクエリ パラメータごとに生成されるので、ユーザーやレポート作成者はレポート パラメータの値を選択し、クエリの中でこれらの値をデータ ソースに渡すことができます。
クエリ パラメータ
クエリ パラメータは、データセットのクエリ定義の一部として定義されます。レポート データセットごとに 1 つのクエリが定義されるので、クエリ パラメータはデータセットのプロパティとして定義されます。
データセットを定義する場合は、Microsoft SQL Server など、データ ソースの具体的な種類を指定します。そのデータ ソースを処理するように設計されたクエリ デザイナ、またはどのようなデータ ソースでも処理できる汎用クエリ デザイナが、レポート デザイナによって起動されます。このデータ ソースのクエリを定義する場合、クエリ デザイナはクエリ コマンド テキスト内の変数を識別し、各変数のクエリ パラメータを作成します。データ ソースで要求されるクエリ構文の詳細については、「特定のデータ ソースでのクエリ パラメータの使用」を参照してください。
SQL Server データ ソースのクエリでは、通常、Transact-SQL ステートメントの WHERE 句に変数を含めて、クエリ実行時に返されるデータの範囲を制限します。同様に Analysis Services データ ソースのクエリでは、通常、Filter 句で使用する MDX 変数を含めます。またクエリには、入力情報としてストアド プロシージャやユーザー定義関数へ渡される変数を含めることもできます。
データセットのクエリを変更するたびに、クエリは再処理されます。変数を削除したり変数名を変更したりしてクエリを修正すると、クエリ パラメータにこれらの変更が反映されます。クエリ コマンド テキストに含まれている変数だけが、データセット クエリ定義のクエリ パラメータになります。
各クエリ パラメータの既定値は、対応するレポート パラメータとして評価される式に設定されます。このパラメータ バインドは、データセット プロパティの [パラメータ] タブで定義されています。たとえば、SQL Server データ ソースの場合、クエリ パラメータが @MyParameter であれば、レポート パラメータは MyParameter となり、@MyParameter の値は式 =Parameters!MyParameter.Value
に設定されます。詳細については、「[データセット] ([パラメータ] タブ、レポート デザイナ)」を参照してください。クエリ パラメータを手動で編集し、その既定値を設定することができます。詳細については、「クエリ パラメータをレポート パラメータに関連付ける方法 (レポート デザイナ)」を参照してください。
メモ : |
---|
クエリ パラメータの名前を削除または変更しても、対応するレポート パラメータが自動的に削除されたり変更されたりすることはありません。 |
レポート パラメータ
レポート デザイナでは、変数が含まれているデータセット クエリを定義する際、レポート パラメータが自動的に生成されます。レポート ビルダでは、Filter 句でプロンプトを設定すると、レポート パラメータが自動的に生成されます。クエリ パラメータにバインドされていないレポート パラメータは、[レポートのパラメータ] ダイアログ ボックスで手動で作成することもできます。
- レポート パラメータのデータ型とその他のレポート パラメータ プロパティは、レポート ツール バー上のパラメータの表示に影響を与えます。つまり、パラメータのデータ型に応じて、ラジオ ボタン、テキスト ボックス、ドロップダウン リスト、カレンダー コントロール、または複数のチェック ボックスを使用してレポート パラメータ プロパティを設定できます。
- レポート パラメータには、単一値または複数値を指定できます。複数値パラメータの場合、ユーザーはパラメータに対して複数の値を選択できます。
- レポート パラメータは、別のレポート パラメータに依存できます。レポート パラメータの順序は重要です。たとえば、パラメータ一覧の後のほうにあるパラメータを、一覧の前のほうにあるパラメータに依存させると、カスケード型パラメータと呼ばれるパラメータのセットを定義できます。カスケード型パラメータでは、パラメータの値の一覧は、別のパラメータで選択された値に応じて異なるものとなります。
- レポート パラメータは式で使用できます。パラメータが含まれている式は、式を使用できる場所であればどこでも使用できます。レポートを実行すると、各パラメータの値が式に代入されます。このように、パラメータの選択によって、行や列の非表示、データの並べ替えとフィルタ処理、NULL データの処理といった、レポートの外観や内容を条件付きで制御できます。
レポート パラメータは、レポートを作成するときにレポート定義の一部として指定しますが、レポートのパブリッシュ後に単独で管理することができます。たとえば、レポート デザイナのデータ ビューやレイアウト ビューで、レポートに対して定義されているパラメータを編集できます。詳細については、「レポート パラメータを追加、編集、または削除する方法 (レポート デザイナ)」を参照してください。レポート定義のパブリッシュ後は、レポート マネージャを使用してパラメータ プロパティを変更できます。詳細については、「パブリッシュ済みレポートのパラメータ プロパティの設定」を参照してください。
急速に変化するパラメータの有効値
急速に変化する値を有効値として指定した場合、レポートの実行前に値が古くなってしまう可能性があります。このため、値を送信してレポートを実行する時点で既に無効となっている一覧から、ユーザーが値を選択しなければならない可能性があります。これを防ぐには、値の選択とレポートの実行で通常必要となる時間内に変化しない有効値の一覧を、データセットとして返すようなクエリを記述します。
また、急速に変化する非クエリ型の値も使用しないようにします。たとえば、使用できる値として現在の日付を返す場合は、DateTime.Now プロパティではなく、DateTime.Today プロパティを使用する式を記述します。これにより、急速に変化する時間単位の値が返されないようになります。
レポート データのフィルタ処理
パラメータ参照を含んでいるデータセットに対してフィルタ式を定義すると、データ ソースからのデータの取得後にデータをフィルタ処理できます。この場合、レポート閲覧者がパラメータの値を選択すると、レポートを処理するときに、フィルタを適用したデータのみがレポートに表示されます。
参照
処理手順
クエリ パラメータをレポート パラメータに関連付ける方法 (レポート デザイナ)
概念
その他の技術情報
チュートリアル : 基本的な表形式レポートへのパラメータの追加
チュートリアル : パラメータを使用した高度な機能
レポート データ ソースの定義
[データ] ビュー (レポート デザイナ)