レポート ビルダー関数 - ページ分割されたレポートの Multilookup 関数 (レポート ビルダー)
適用対象: Microsoft レポート ビルダー (SSRS) Power BI Report Builder SQL Server Data Tools のレポート デザイナー
名前と値のペアを含むデータセットから、指定された名前のセットに最初に一致した値のセットをページ分割されたレポートで返します。
注意
ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。
構文
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)」を参照してください。
例
A. MultiLookup 関数を使用する
"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")),
", ")
B. 複数値パラメーターで MultiLookup を使用する
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"),", ")