Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Microsoft Report Builder (SSRS)
Power BI Report Builder
Návrhář sestav v nástrojích SQL Server Data Tools
Vrátí sadu shodných hodnot pro zadaný název z datové sady, která obsahuje páry název/hodnota ve stránkované sestavě.
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
LookupSet(source_expression, destination_expression, result_expression, dataset)
Parametry
source_expression
(Varianta) Výraz, který se vyhodnocuje v aktuálním oboru a který určuje název nebo klíč, který se má vyhledat. Například: =Fields!ID.Value.
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!CustomerID.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!PhoneNumber.Value.
dataset
Konstanta, která určuje název datové sady v sestavě. Například ContactInformation.
Vratka
Vrátí VariantArray nebo Nothing, pokud neexistuje žádná shoda.
Poznámky
Použijte LookupSet k načtení sady hodnot ze zadané datové sady pro dvojici název/hodnota, ve které je relace 1:N. Například pro identifikátor zákazníka v tabulce můžete pomocí lookupSet načíst všechna přidružená telefonní čísla pro daného zákazníka z datové sady, která není svázaná s datovou oblastí.
LookupSet provede následující:
Vyhodnotí zdrojový výraz v aktuálním oboru.
Vyhodnotí cílový výraz pro každý řádek zadané datové sady po použití filtrů na základě kolace zadané datové sady.
Pro každou shodu zdrojového a cílového výrazu vyhodnotí výsledný výraz pro daný řádek v datové sadě.
Vrátí sadu hodnot výsledného výrazu.
Pokud chcete načíst jednu hodnotu z datové sady s dvojicemi name/value pro zadaný název, kde existuje relace 1:1, použijte funkci Lookup (Tvůrce sestav a SSRS). K volání vyhledávání pro sadu hodnot použijte funkci Multilookup (Tvůrce sestav a SSRS).
Platí následující omezení:
LookupSet se vyhodnotí 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.
LookupSet 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
V následujících příkladech předpokládejte, že tabulka je navázána na datovou sadu, která obsahuje identifikátor prodejního území TerritoryGroupID. Samostatná datová sada s názvem "Stores" obsahuje seznam všech obchodů na území a obsahuje ID identifikátoru oblasti a název store StoreName.
A. Použít LookupSet
V následujícím výrazu funkce LookupSet porovnává hodnotu TerritoryGroupID s ID pro každý řádek v datové sadě s názvem Stores. Pro každou zhodu se hodnota pole StoreName pro daný řádek přidá do sady výsledků.
=LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores")
B. Vytvoření seznamu výsledků pomocí funkce Join
Vzhledem k tomu, že Funkce LookupSet vrací kolekci objektů, nelze zobrazit výsledný výraz přímo v textovém poli. Hodnotu každého objektu v kolekci můžete zřetězit do jednoho řetězce.
Pomocí funkce Visual Basic Join vytvořte řetězec s oddělovači ze sady objektů. Pomocí čárky jako oddělovače zkombinujte objekty v jednom řádku. V některých zpracovatelích můžete jako oddělovač použít odřádkování jazyka Visual Basic (vbCrLF) k výpisu každé hodnoty na novém řádku.
Následující výraz, pokud se používá jako vlastnost Hodnota textového pole, používá Join k vytvoření seznamu.
=Join(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"),",")
C. Přidání kódu pro vygenerování kódu HTML
U textových polí, která se vykreslují jenom několikrát, můžete přidat vlastní kód, který vygeneruje kód HTML pro zobrazení hodnot v textovém poli. HTML v textovém poli vyžaduje dodatečné zpracování, takže by to nebylo dobrou volbou pro textové pole, které se vykresluje tisíckrát.
Zkopírujte následující funkce jazyka Visual Basic do bloku kódu v definici sestavy. MakeList přebírá pole objektů vrácené v result_expression a vytvoří neseřazený seznam pomocí značek HTML. Délka vrátí počet položek v poli objektů.
Function MakeList(ByVal items As Object()) As String
If items Is Nothing Then
Return Nothing
End If
Dim builder As System.Text.StringBuilder =
New System.Text.StringBuilder()
builder.Append("<ul>")
For Each item As Object In items
builder.Append("<li>")
builder.Append(item)
Next
builder.Append("</ul>")
Return builder.ToString()
End Function
Function Length(ByVal items as Object()) as Integer
If items is Nothing Then
Return 0
End If
Return items.Length
End Function
D. Zavolej funkci
Chcete-li vygenerovat kód HTML, musíte funkci volat. Do vlastnosti Value pro textové pole vložte následující výraz a nastavte typ značky pro text na HTML. Další informace najdete v tématu Přidání KÓDU HTML do sestavy (Tvůrce sestav a SSRS).
=Code.MakeList(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"))