報表產生器函數 - 分頁報表中的 Multilookup 函數 (報表產生器)

適用於:Microsoft 報表產生器 (SSRS) Power BI Report Builder SQL Server Data Tools 中的報表設計師

從分頁報表中包含名稱/值配對的資料集,傳回指定名稱集合中第一個相符值的集合。

注意

您可以在 Microsoft 報表產生器、Power BI Report Builder,以及 SQL Server Data Tools 的報表設計師中,建立及修改編頁報告定義 (.rdl) 檔案。

語法

  
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)
指定報表中資料集名稱的常數。 例如,「色彩」。

退回

傳回 VariantArray或在沒有相符項目時傳回 Nothing 。

備註

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

Multilookup 會執行下列動作:

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

  • 對於陣列中的每一個物件,呼叫 Lookup 函數 (報表產生器和 SSRS),並將結果新增至傳回陣列。

  • 傳回結果集。

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

適用以下限制:

  • Multilookup 會在套用所有篩選運算式後才進行評估。

  • 僅支援單層查找。 來源、目標或結果運算式不得包含查閱函數參照。

  • 來源與目標運算式必須計算為相同的資料類型。

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

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

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

    • 資料集中的計算欄位。

    • 資料集中的查詢參數。

    • 資料集中的篩選。

    • 報表參數。

    • Report.Language 屬性。

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

範例

A. 使用 MultiLookup 函數

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

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

ID 名稱
1 配件
2 自行車
3 服裝
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 顏色
1 紅色
2 藍色
3 綠色

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

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