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"),", ")