Funktionen des Berichts-Generators: Multilookup-Funktion in einem paginierten Bericht (Berichts-Generator)

Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Berichts-Designer in SQL Server Data Tools

Gibt die Gruppe der ersten übereinstimmenden Werte für die bestimmte Gruppe von Namen aus einem Dataset zurück, das Name-Wert-Paare in einem paginierten Bericht enthält.

Hinweis

Sie können paginierte Berichtsdefinitionsdateien (.rdl) im Berichts-Generator von Microsoft, im Power BI Report Builder und im Berichts-Designer in SQL Server-Datentools erstellen und ändern.

Syntax

  
Multilookup(source_expression, destination_expression, result_expression, dataset)  

Parameter

source_expression
(VariantArray) Ein Ausdruck, der im aktuellen Bereich ausgewertet wird, und der den Satz der zu suchenden Namen oder Schlüssel angibt. Beispiel für einen mehrwertigen Parameter: =Parameters!IDs.value.

destination_expression
(Variant) Ein Ausdruck, der für jede Zeile in einem Datensatz ausgewertet wird und den Namen oder Schlüssel für den Abgleich angibt. Beispiel: =Fields!ID.Value.

result_expression
(Variant) Ein Ausdruck, der für die Zeile im Dataset ausgewertet wird, für die source_expression = destination_expressiongilt, und der den abzurufenden Wert angibt. Beispiel: =Fields!Name.Value.

Datensatz
Eine Konstante, die den Namen eines Datasets im Bericht angibt. Beispiel: "Colors".

Rückgabe

Gibt einen Wert vom Typ VariantArrayzurück; gibt Nothing zurück, wenn keine Übereinstimmung vorhanden ist.

Bemerkungen

Verwenden Sie Multilookup , um eine Wertemenge aus einem Dataset für Name-Wert-Paare abzurufen, in dem jedes Paar über eine 1:1-Beziehung verfügt. MultiLookup ist mit dem Aufrufen von Lookup für eine Menge von Namen oder Schlüsseln vergleichbar. Beispiel: Für einen mehrwertigen Parameter, der auf Primärschlüsselbezeichnern basiert, können Sie Multilookup in einem Ausdruck in einem Textfeld in einer Tabelle verwenden, um zugeordnete Werte aus einem Dataset abzurufen, das nicht an den Parameter oder die Tabelle gebunden ist.

MitMultilookup wird Folgendes ausgeführt:

  • Wertet den Quellausdruck im aktuellen Gültigkeitsbereich aus und generiert ein Array von Variantenobjekten.

  • Für jedes Objekt im Array wird die Lookup-Funktion (Berichts-Generator und SSRS) aufgerufen und dem Rückgabearray das Ergebnis hinzugefügt.

  • Der Satz von Ergebnissen wird zurückgegeben.

Verwenden Sie die Lookup-Funktion (Berichts-Generator und SSRS), um einen einzelnen Wert aus einem Dataset mit Name-Wert-Paaren für einen angegebenen Namen abzurufen, wenn eine 1:1-Beziehung vorhanden ist. Verwenden Sie die LookupSet-Funktion (Berichts-Generator und SSRS), um mehrere Werte aus einem Datensatz mit Name-Wert-Paaren für einen Namen abzurufen, für den eine 1-zu-viele-Beziehung besteht.

Es gelten folgende Einschränkungen:

  • Multilookup wird ausgewertet, nachdem alle Filterausdrücke angewendet wurden.

  • Nur eine Suchebene wird unterstützt. Ein Quell-, Ziel- oder Ergebnisausdruck kann keinen Verweis auf eine Suchfunktion einschließen.

  • Quell- und Zielausdrücke müssen zu demselben Datentyp ausgewertet werden.

  • Quell-, Ziel- und Ergebnisausdrücke können keine Verweise auf Berichts- oder Gruppenvariablen einschließen.

  • Multilookup kann nicht als Ausdruck für die folgenden Berichtselemente verwendet werden:

    • Dynamische Verbindungszeichenfolgen für eine Datenquelle.

    • Berechnete Felder in einem Dataset.

    • Abfrageparameter in einem Dataset.

    • Filter in einem Dataset.

    • Berichtsparameter.

    • Die Eigenschaft „Report.Language“.

Weitere Informationen finden Sie in der Aggregatfunktionsreferenz (Berichts-Generator und SSRS) und unter Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Auflistungen (Berichts-Generator und SSRS).

Beispiele

A. Verwenden der MultiLookup-Funktion

Es wird angenommen, dass ein Dataset mit dem Namen „Category“ das Feld „CategoryList“ enthält, das eine durch Kommas getrennte Liste von Kategoriebezeichnern enthält, wie z. B. „2, 4, 2, 1“.

Das Dataset "CategoryNames" enthält den Kategoriebezeichner und den Kategorienamen, wie in der folgenden Tabelle gezeigt.

id Name
1 Zubehör
2 Fahrräder
3 Kleidung
4 Komponenten

Verwenden Sie für die Suche der Namen, die der Liste der Bezeichner entsprechen, Multilookup. Sie müssen zuerst die Liste in ein Zeichenfolgenarray aufteilen, Multilookup aufrufen, um die Kategorienamen abzurufen, und die Ergebnisse zu einer Zeichenfolge verketten.

Wenn der folgende Ausdruck in ein Textfeld innerhalb eines Datenbereichs eingefügt wird, das an das Dataset "Category" gebunden ist, wird "Bikes, Components, Bikes, Accessories" angezeigt:

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

B. Verwenden von MultiLookup mit mehrwertigen Parametern

Angenommen, ein Dataset "ProductColors" enthält ein Farbbezeichnerfeld "ColorID" und ein Farbwertfeld "Color", wie in der folgenden Tabelle gezeigt.

ColorID Farbe
1 Rot
2 Blau
3 Grün

Angenommen, der mehrwertige Parameter MyColors ist nicht an ein Dataset für seine verfügbaren Werte gebunden. Die Standardwerte für den Parameter sind auf 2 und 3 festgelegt. Wenn der folgende Ausdruck in einem Textfeld in einer Tabelle platziert wird, werden die ausgewählten Werte für den Parameter zu einer durch Trennzeichen getrennten Liste verkettet, und es wird "Blue, Green" angezeigt.

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