Multilookup 関数 (レポート ビルダーおよび SSRS)
名前と値のペアを含むデータセットから、指定された名前のセットに最初に一致した値のセットを返します。
Note
SQL Server データ ツールのレポート ビルダーまたはレポート デザイナーを使用して、レポート定義 (.rdl) を作成および変更できます。 これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。 詳細については、「レポート デザイナーおよびReport Builderでのレポートのデザイン (SSRS)」 (microsoft.com) を参照してください。
構文
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 関数 (レポート ビルダーおよび SSRS) を呼び出して、返される配列に結果を追加します。
結果セットが返されます。
指定した名前に対応する、名前と値のペアを含むデータセットに 1 対 1 のリレーションシップが存在する場合、このデータセットから 1 つの値を取得するには、Lookup 関数 (レポート ビルダーおよび SSRS) を使用します。 ある名前に対応する、名前と値のペアを含むデータセットに 1 対多のリレーションシップが存在する場合、このデータセットから複数の値を取得するには、LookupSet 関数 (レポート ビルダーおよび SSRS) を使用します。
次の制限事項が適用されます。
Multilookup
は、すべてのフィルター式が適用された後で評価されます。1 レベルの参照のみがサポートされます。 変換元、変換先、または結果の式に、Lookup 関数への参照を含めることはできません。
変換元および変換先の式は、同じデータ型として評価される必要があります。
変換元、変換先、結果の式には、レポート変数またはグループ変数への参照を含めることができません。
Multilookup
は、次のレポート アイテムを求める式として使用することはできません。データ ソースの動的な接続文字列。
データセット内の計算フィールド。
データセット内のクエリ パラメーター。
データセット内のフィルター。
レポート パラメーター。
Report.Language プロパティ。
詳細については、「集計関数リファレンス (レポート ビルダーおよび SSRS)」および「合計、集計、および組み込みコレクションの式のスコープ (レポート ビルダーおよび SSRS)」を参照してください。
例
"Category" というデータセットに、CategoryList フィールドが含まれているとします。このフィールドには、コンマ区切りのカテゴリの識別子のリスト ("2, 4, 2, 1" など) が含まれています。
CategoryNames データセットには、次の表に示すように、カテゴリ識別子とカテゴリ名が格納されています。
id | 名前 |
---|---|
1 | Accessories |
2 | Bikes |
3 | Clothing |
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 | Color |
---|---|
1 | [赤] |
2 | 青 |
3 | [緑] |
複数値パラメーターである MyColors が、使用可能な値について、データセットにバインドされていないとします。 このパラメーターの既定値は、2 および 3 に設定されています。 次の式をテーブル内のテキスト ボックスに置いた場合、パラメーターの複数選択された値がコンマ区切りの一覧として連結され、"Blue, Green" と表示されます。
=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")
参照
レポートでの式の使用 (レポート ビルダーおよび SSRS)
式の例 (レポート ビルダーおよび SSRS)
式で使用されるデータ型 (レポート ビルダーおよび SSRS)
合計、集計、および組み込みコレクションの式のスコープ (レポート ビルダーおよび SSRS)