カスケード型パラメータをレポートに追加する方法 (Reporting Services)
カスケード型パラメータによって、大量のレポート データの管理が可能になります。パラメータの値の一覧が、別のパラメータで選択された値によって決まるように、関連するパラメータのセットを定義できます。たとえば、最初のパラメータが独立しており、製品カテゴリの一覧を表すとします。ユーザーが任意のカテゴリを選択すると、2 番目のパラメータは最初のパラメータの値によって決まります。その値は、選択したカテゴリ内のサブカテゴリの一覧で更新されます。ユーザーがレポートを表示するとき、カテゴリ パラメータとサブカテゴリ パラメータの両方の値を使用して、レポート データにフィルタが適用されます。
カスケード型パラメータを作成するには、まずデータセット クエリを定義し、必要な各カスケード型パラメータにクエリ パラメータを指定します。各カスケード型パラメータについて、使用可能な値を提供する独立したデータセットを作成する必要もあります。詳細については、「レポート パラメータの値を追加、変更、または削除する方法 (Reporting Services)」を参照してください。
一覧の後半にあるパラメータのデータセット クエリには一覧の前半にある各パラメータへの参照が含まれているため、カスケード型パラメータでは順序が重要な意味を持ちます。実行時には、レポート データ ペインのパラメータの順序によって、パラメータ クエリがレポート内で作成される順序が決まります。したがって、ユーザーが後続の各パラメータ値を選択する順序が決まります。
関連する複数のパラメータを含むクエリを使用してメイン データセットを作成するには
レポート データ ペインでデータ ソースを右クリックし、[データセットの追加] をクリックします。
[名前] ボックスに、データセットの名前を入力します。
[データ ソース] ボックスのデータ ソースの名前を選択するか、[新規] をクリックして名前を作成します。
[クエリの種類] ボックスで、選択したデータ ソースにクエリの種類を選択します。このトピックでは、クエリの種類として [テキスト] を使用します。
[クエリ] ボックスに、このレポートにデータを取得するためのクエリを入力します。クエリには次の要素が必要です。
データ ソース フィールドの一覧。たとえば Transact-SQL ステートメントでは、SELECT ステートメントは指定されたテーブルまたはビューのデータベース列名の一覧を指定します。
カスケード型パラメータごとに 1 つのクエリ パラメータ。クエリ パラメータは、クエリに含める特定の値またはクエリから除外する特定の値を指定することによって、データ ソースから取得するデータを制限します。通常、クエリ パラメータはクエリの制約句で使用されます。たとえば Transact-SQL SELECT ステートメントでは、クエリ パラメータは WHERE 句で使用されます。詳細については、「WHERE と HAVING を使ったフィルタによる行選択」を参照してください。
[実行] (!) をクリックします。クエリ パラメータを指定し、クエリを実行したら、クエリ パラメータに対応するレポート パラメータが自動的に作成されます。
注意 最初にクエリを実行したときのクエリ パラメータの順序によって、クエリ パラメータがレポート内で作成される順序が決まります。順序を変更するには、「レポート パラメータの順序を変更する方法 (Reporting Services)」を参照してください。
[OK] をクリックします。
次に、独立したパラメータの値を提供するデータセットを作成します。
独立したパラメータの値を提供するデータセットを作成するには
レポート データ ペインでデータ ソースを右クリックし、[データセットの追加] をクリックします。
[名前] ボックスに、データセットの名前を入力します。
[データ ソース] ボックスに表示された名前が、手順 1. で選択したデータ ソースの名前であることを確認します。
[クエリの種類] ボックスで、選択したデータ ソースにクエリの種類を選択します。このトピックでは、クエリの種類として [テキスト] を使用します。
[クエリ] ボックスに、このパラメータに値を取得するためのクエリを入力します。通常、独立したパラメータのクエリにはクエリ パラメータが含まれません。たとえば、すべてのカテゴリの値を提供するパラメータのクエリを作成するには、次のような Transact-SQL ステートメントを使用できます。
SELECT DISTINCT <column name> FROM <table>
SELECT DISTINCT コマンドは、指定したテーブルの指定した列から一意の各値を取得できるように、結果セットから重複する値を削除します。
[実行] (!) をクリックします。結果セットには、この最初のパラメータに使用可能な値が表示されます。
[OK] をクリックします。
次に、このデータセットを使用する最初のパラメータのプロパティを設定して、実行時に使用可能な値を入力します。
レポート パラメータに使用可能な値を設定するには
レポート データ ペインでパラメータ フォルダの最初のパラメータを右クリックし、[パラメータのプロパティ] をクリックします。
[名前] ボックスのパラメータの名前が正しいことを確認します。
[使用できる値] をクリックします。
[クエリから値を取得] をクリックします。3 つのフィールドが表示されます。
[データセット] ボックスのドロップダウン リストから、前の手順で作成したデータセットの名前をクリックします。
[値] フィールドで、パラメータ値を指定するフィールドの名前をクリックします。
[ラベル] フィールドで、パラメータのラベルを指定するフィールドの名前をクリックします。
[OK] をクリックします。
次に、従属パラメータの値を提供するデータセットを作成します。
従属パラメータの値を提供するデータセットを作成するには
レポート データ ペインでデータ ソースを右クリックし、[データセットの追加] をクリックします。
[名前] ボックスに、データセットの名前を入力します。
[データ ソース] ボックスに表示された名前が、手順 1. で選択したデータ ソースの名前であることを確認します。
[クエリの種類] ボックスで、選択したデータ ソースにクエリの種類を選択します。このトピックでは、クエリの種類として [テキスト] を使用します。
[クエリ] ボックスに、このパラメータに値を取得するためのクエリを入力します。通常、従属パラメータのクエリには、このパラメータが依存している各クエリ パラメータが含められます。たとえば、カテゴリ (独立したパラメータ) のすべてのサブカテゴリ (従属パラメータ) の値を提供するパラメータのクエリを作成するには、次のような Transact-SQL ステートメントを使用できます。
SELECT DISTINCT Subcategory FROM <table> WHERE (Category = @Category)
WHERE 句の Category は <table> のフィールドの名前であり、@Category はクエリ パラメータです。このステートメントを使用すると、@Category に指定したカテゴリのサブカテゴリの一覧が生成されます。この値は実行時に、ユーザーが同名のレポート パラメータに選択した値を使用して入力されます。
[OK] をクリックします。
次に、このデータセットを使用する 2 番目のパラメータのプロパティを設定して、実行時に使用可能な値を入力します。
レポート パラメータに使用可能な値を設定するには
レポート データ ペインでパラメータ フォルダの最初のパラメータを右クリックし、[パラメータのプロパティ] をクリックします。
[名前] ボックスのパラメータの名前が正しいことを確認します。
[使用できる値] をクリックします。
[クエリから値を取得] をクリックします。
[データセット] ボックスのドロップダウン リストから、前の手順で作成したデータセットの名前をクリックします。
[値] フィールドで、パラメータ値を指定するフィールドの名前をクリックします。
[ラベル] フィールドで、パラメータのラベルを指定するフィールドの名前をクリックします。
[OK] をクリックします。
カスケード型パラメータをテストするには
[プレビュー] をクリックします。
最初の独立したパラメータのドロップダウン リストから値を選択します。
レポート プロセッサによって、次のパラメータのデータセット クエリが実行され、最初のパラメータに選択した値が渡されます。最初のパラメータの値に基づいて、使用可能な値を使用して 2 番目のパラメータのドロップダウン リストが入力されます。
2 番目の従属パラメータのドロップダウン リストから値を選択します。
選択肢を変更できるように、最後のパラメータを選択した後、レポートは自動的に実行されません。
[レポートの表示] をクリックします。選択したパラメータに基づいて、レポートの表示が更新されます。