Share via


Multilookup 函數 (報表產生器 3.0 和 SSRS)

從包含名稱/值組的資料集傳回第一組符合指定之名稱集合的值。

[!附註]

您可以在 Business Intelligence Development Studio 中的報表產生器 3.0 及報表設計師中建立及修改報表定義 (.rdl)。每一個撰寫環境都提供了不同的方式讓您建立、開啟,以及儲存報表和相關的項目。如需詳細資訊,請參閱在報表設計師及報表產生器 3.0 (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。

備註

使用 Multilookup 可從具有一對一關係的每一組名稱/值組的資料集內擷取一組值。MultiLookup 等於針對一組名稱或索引鍵呼叫 Lookup。例如,如果是根據主索引鍵識別碼的多值參數,您可以在資料表中的文字方塊內使用運算式中的 Multilookup,從未繫結至參數或資料表的資料集擷取關聯的值。

Multilookup 會執行下列動作:

  • 評估目前範圍中的來源運算式,並產生變數物件的陣列。

  • 如果是陣列中的每一個物件,則呼叫 Lookup 函數 (報表產生器 3.0 和 SSRS),並將結果加入至傳回陣列。

  • 傳回結果集。

若要從具有一對一關係之名稱/值組的資料集中,擷取指定之名稱的單一值,請使用 Lookup 函數 (報表產生器 3.0 和 SSRS)。若要從具有一對多關係之名稱/值組的資料集中,擷取某個名稱的多個值,請使用 LookupSet 函數 (報表產生器 3.0 和 SSRS)

系統會套用下列限制:

  • 當套用所有篩選運算式之後,便會評估 Multilookup。

  • 只支援一層的查閱。來源、目的地或結果運算式不能包含查閱函數的參考。

  • 來源和目的地運算式必須評估為相同的資料類型。

  • 來源、目的地和結果運算式無法包含報表或群組變數的參考。

  • Multilookup 不能當做下列報表項目的運算式使用:

    • 資料來源的動態連接字串。

    • 資料集中的導出欄位。

    • 資料集中的查詢參數。

    • 資料集中的篩選。

    • 報表參數。

    • Report.Language 屬性。

如需詳細資訊,請參閱<彙總函式參考 (報表產生器 3.0 和 SSRS)>和<了解總計、彙總與內建集合的運算式範圍 (報表產生器 3.0 和 SSRS)>。

範例

假設資料集 "Category" 包含 CategoryList 欄位,這個欄位是包含以逗號分隔之類別目錄識別碼的清單,例如 "2, 4, 2, 1"。

CategoryNames 資料集包含類別目錄識別碼和類別目錄名稱,如下表所示。

識別碼

名稱

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

Color

1

Red

2

Blue

3

Green

假設多值參數 MyColors 沒有繫結至其可用值的資料集。此參數的預設值為 2 和 3。當下列運算式置於資料表的文字方塊中時,會將此參數的多個選定值串連成一個以逗號分隔的清單,並顯示 "Blue, Green"。

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