次の方法で共有


Multilookup 関数 (レポート ビルダー 3.0 および SSRS)

名前と値のペアを含むデータセットから、指定された名前のセットに最初に一致した値のセットを返します。

注意

レポート定義 (.rdl) は、Business Intelligence Development Studio のレポート ビルダー 3.0 およびレポート デザイナーで作成および変更できます。これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。詳細については、microsoft.com Web サイトの「レポート デザイナーとレポート ビルダー 3.0 でのレポートのデザイン (SSRS)」を参照してください。

構文

Multilookup(source_expression, destination_expression, result_expression, dataset)

パラメーター

  • source_expression
    (VariantArray) 現在のスコープ内で評価される式。検索する名前またはキーのセットを指定します。たとえば、複数値パラメーターの場合、=Parameters!IDs.value のように指定します。

  • destination_expression
    (Variant) データセット内の各行に対して評価される式。照合する名前またはキーを指定します。たとえば、=Fields!ID.Value のように指定します。

  • result_expression
    (Variant) source_expression が destination_expression と同一であるデータセット内の各行に対して評価される式。取得する値を指定します。たとえば、=Fields!Name.Value のように指定します。

  • dataset
    レポート内のデータセットの名前を指定する定数。たとえば、"Colors" と指定します。

戻り値

VariantArray を返します。一致する結果がなかった場合は、Nothing を返します。

説明

名前と値の各ペアについて 1 対 1 のリレーションシップが存在するデータセットから一連の値を取得するには、Multilookup を使用します。MultiLookup は、一連の名前またはキーに対して Lookup を呼び出すことと同じです。たとえば、主キー識別子に基づく複数値パラメーターの場合、テーブルのテキスト ボックス内の式で Multilookup を使用して、パラメーターまたはテーブルにバインドされていないデータセットから、関連付けられている値を取得することができます。

Multilookup を実行すると、次の処理が行われます。

  • 現在のスコープ内でソース式が評価され、variant オブジェクトの配列が生成されます。

  • 配列内の各オブジェクトに対して Lookup 関数 (レポート ビルダー 3.0 および SSRS) が呼び出され、返される配列に結果が追加されます。

  • 結果セットが返されます。

指定した名前に対応する、名前と値のペアを含むデータセットに 1 対 1 のリレーションシップが存在する場合、このデータセットから 1 つの値を取得するには、Lookup 関数 (レポート ビルダー 3.0 および SSRS) を使用します。指定した名前に対応する、名前と値のペアを含むデータセットに 1 対多のリレーションシップが存在する場合、このデータセットから複数の値を取得するには、LookupSet 関数 (レポート ビルダー 3.0 および SSRS) を使用します。

次の制限があります。

  • Multilookup は、すべてのフィルター式が適用された後で評価されます。

  • 1 レベルの参照のみがサポートされます。変換元、変換先、結果の式には、Lookup 関数への参照を含めることはできません。

  • 変換元および変換先の式は、同じデータ型として評価される必要があります。

  • 変換元、変換先、結果の式には、レポート変数またはグループ変数への参照を含めることができません。

  • Multilookup は、次のレポート アイテムを求める式として使用することはできません。

    • データ ソースの動的な接続文字列。

    • データセット内の計算フィールド。

    • データセット内のクエリ パラメーター。

    • データセット内のフィルター。

    • レポート パラメーター。

    • Report.Language プロパティ。

詳細については、「集計関数リファレンス (レポート ビルダー 3.0 および SSRS)」および「合計、集計、および組み込みコレクションの式のスコープについて (レポート ビルダー 3.0 および SSRS)」を参照してください。

使用例

"Category" というデータセットに、CategoryList というフィールドがあるとします。このフィールドには、カテゴリ識別子のコンマ区切りリスト ("2, 4, 2, 1" など) が含まれています。

CategoryNames データセットには、次の表に示すように、カテゴリ識別子とカテゴリ名が格納されています。

ID

名前

1

Accessories

2

Bikes

3

Clothing

4

Components

識別子のリストに対応する名前を参照するには、Multilookup を使用します。まず、リストを文字列の配列に分割する必要があります。次に、Multilookup を呼び出してカテゴリ名を取得し、結果を連結して文字列にします。

Category データセットにバインドされているデータ領域内のテキスト ボックスに次の式を置いた場合、"Bikes, Components, Bikes, Accessories" と表示されます。

=Join(MultiLookup(Split(Fields!CategoryList.Value,","),
   Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),
   ", ")

ProductColors データセットに、次の表に示すように色の識別子のフィールドである ColorID と、色の値のフィールドである Color が含まれているとします。

ColorID

1

2

3

Green

複数値パラメーターである MyColors が、使用可能な値について、データセットにバインドされていないとします。このパラメーターの既定値は、2 および 3 に設定されています。次の式をテーブル内のテキスト ボックスに置いた場合、パラメーターの複数選択された値がコンマ区切りの一覧として連結され、"Blue, Green" と表示されます。

=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")