Funkce Tvůrce sestav – funkce Multilookup ve stránkované sestavě (Tvůrce sestav)

Platí pro: Microsoft Report Builder (SSRS) Power BI Report Builder Návrhář sestav v nástrojích SQL Server Data Tools

Vrátí sadu hodnot odpovídajících první shodě pro zadanou sadu jmen z datové sady, která ve stránkované sestavě obsahuje páry název/hodnota.

Poznámka:

Soubory definice stránkované sestavy (.rdl) můžete vytvářet a upravovat v Microsoft Report Builderu, Tvůrci sestav Power BI a v Návrháři sestav v nástrojích SQL Server Data Tools.

Syntaxe

  
Multilookup(source_expression, destination_expression, result_expression, dataset)  

Parametry

source_expression
(VariantArray) Výraz, který je vyhodnocen v aktuálním oboru a určuje množinu názvů nebo klíčů pro vyhledání. Například pro parametr =Parameters!IDs.values více hodnotami .

destination_expression
(Varianta) Výraz, který se vyhodnocuje pro každý řádek v datové sadě a určuje název nebo klíč, který se má porovnat. Například: =Fields!ID.Value.

result_expression
(Varianta) Výraz, který se vyhodnotí pro řádek v datové sadě, kde source_expression destination_expression = , a určuje hodnotu, která se má načíst. Například: =Fields!Name.Value.

dataset
Konstanta, která určuje název datové sady v sestavě. Například "Barvy".

Vratka

Vrátí VariantArray nebo Nothing, pokud neexistuje žádná shoda.

Poznámky

Pomocí funkce Multilookup načtěte sadu hodnot z datové sady pro páry název-hodnota, ve kterých má každý pár relaci 1:1. Funkce MultiLookup je ekvivalentem volání funkce Lookup pro sadu názvů nebo klíčů. Například u parametru s více hodnotami, který je založen na identifikátorech primárního klíče, můžete použít funkci Multilookup ve výrazu v textovém poli v tabulce k načtení přidružených hodnot z datové sady, která není svázaná s parametrem nebo tabulkou.

Multilookup provede následující:

  • Vyhodnotí zdrojový výraz v aktuálním oboru a vygeneruje pole variantních objektů.

  • Pro každý objekt v matici volá vyhledávací funkci (Tvůrce sestav a SSRS) a přidá výsledek do návratového pole.

  • Vrátí sadu výsledků.

Pokud chcete načíst jednu hodnotu z datové sady s dvojicemi název-hodnota pro zadaný název, kde existuje relace 1:1, použijte funkci Vyhledávání (Tvůrce sestav a SSRS). Pokud chcete načíst více hodnot z datové sady obsahující dvojice název-hodnota pro název, kde existuje vztah 1:N, použijte funkci LookupSet (Report Builder a SSRS).

Platí následující omezení:

  • Funkce Multilookup se vyhodnocuje po použití všech výrazů filtru.

  • Podporuje se pouze jedna úroveň vyhledávání. Zdrojový, cílový nebo výsledný výraz nesmí obsahovat odkaz na vyhledávací funkci.

  • Zdrojové a cílové výrazy musí být vyhodnoceny jako stejný datový typ.

  • Zdrojové, cílové a výsledné výrazy nemohou obsahovat odkazy na proměnné v sestavách nebo skupinách.

  • Multilookup nelze použít jako výraz pro následující položky sestavy:

    • Dynamické připojovací řetězce pro zdroj dat

    • Počítaná pole v datové sadě

    • Parametry dotazu v datové sadě

    • Filtry v datové sadě

    • Parametry sestavy

    • Vlastnost Report.Language.

Další informace najdete v tématu Referenční informace o agregačních funkcích (Tvůrce sestav a SSRS) a rozsah výrazů pro součty, agregace a předdefinované kolekce (Tvůrce sestav a SSRS).

Examples

A. Použití funkce MultiLookup

Předpokládejme, že datová sada s názvem "Category" obsahuje pole CategoryList, což je pole, které obsahuje seznam identifikátorů kategorií oddělených čárkami, například "2, 4, 2, 1".

Datová sada CategoryNames obsahuje identifikátor kategorie a název kategorie, jak je znázorněno v následující tabulce.

ID Název
1 Příslušenství
2 Kola
3 Oděv
4 Components

Pokud chcete vyhledat názvy, které odpovídají seznamu identifikátorů, použijte funkci Multilookup. Nejprve je nutné seznam rozdělit na pole řetězců, zavolat Multilookup, aby se načetly názvy kategorií, a zřetězit výsledky do řetězce.

Následující výraz při umístění do textového pole v oblasti dat vázané na datovou sadu Category zobrazí "Bikes, Components, Bikes, Accessories".

=Join(MultiLookup(Split(Fields!CategoryList.Value,","),  
   Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),  
   ", ")  

B. Použití funkce MultiLookup s parametrem s více hodnotami

Předpokládejme, že sada ProductColors obsahuje pole ColorID s identifikátorem barvy a pole hodnoty barvy, jak je znázorněno v následující tabulce.

ColorID Barva
1 Red
2 Blue
3 Green

Předpokládejme, že parametr Multivalue MyColors není vázán na datovou sadu pro její dostupné hodnoty. Výchozí hodnoty parametru jsou nastaveny na 2 a 3. Následující výraz při umístění do textového pole v tabulce zřetězí více vybraných hodnot parametru do seznamu odděleného čárkami a zobrazí "Modrá, zelená".

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