次の方法で共有


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

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

レポート定義 (.rdl) は、レポート ビルダーと SQL Server Data Tools のレポート デザイナーで作成および変更できます。 作成環境ごとに、レポートと関連アイテムを作成、開く、保存するさまざまな方法が用意されています。 詳細については、Web 上の microsoft.com にある レポート デザイナーおよびレポート ビルダー (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 のようにします。

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

帰る

VariantArrayを返します。一致しない場合はNothingを返します。

注釈

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

Multilookup は次の処理を行います。

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

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

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

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

次の制限が適用されます。

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

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

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

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

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

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

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

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

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

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

    • Report.Language プロパティ。

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

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

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

身分証明書 名前
1 アクセサリ
2 バイク
3 衣類
4 コンポーネント

識別子の一覧に対応する名前を検索するには、 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 緑色

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

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

こちらもご覧ください

レポートでの式の使用 (レポート ビルダーおよび SSRS)
式の例 (レポート ビルダーおよび SSRS)
式で使用されるデータ型 (レポート ビルダーおよび SSRS)
合計、集計、および組み込みコレクションの式のスコープ (レポート ビルダーおよび SSRS)