Freigeben über


Multilookup-Funktion (Berichts-Generator und SSRS)

Gibt die Menge der Ersttrefferwerte für den angegebenen Satz von Namen aus einem Datensatz zurück, der Name/Wert-Paare enthält.

Hinweis

Sie können Berichtsdefinitionen (RDL) im Berichts-Generator und im Berichts-Designer in SQL Server-Datentools erstellen und ändern. Jede Erstellungsumgebung bietet verschiedene Möglichkeiten zum Erstellen, Öffnen und Speichern von Berichten und verwandten Elementen. Weitere Informationen finden Sie unter Entwerfen von Berichten im Berichts-Designer und Berichts-Generator (SSRS) im Web unter microsoft.com.

Syntax

  
Multilookup(source_expression, destination_expression, result_expression, dataset)  

Die Parameter

source_expression
(VariantArray) Ein Ausdruck, der im aktuellen Bereich ausgewertet wird und die Menge an Namen oder Schlüsseln angibt, die gesucht werden sollen. Beispiel für einen mehrwertigen Parameter: =Parameters!IDs.value.

destination_expression
(Variant) Ein Ausdruck, der für jede Zeile in einem Dataset ausgewertet wird und den Namen oder Schlüssel angibt, mit dem eine Übereinstimmung erzielt werden soll. Beispiel: =Fields!ID.Value.

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

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

Rückkehr

Gibt ein VariantArray, oder Nothing wenn keine Übereinstimmung vorhanden ist.

Bemerkungen

Verwenden Sie Multilookup, um eine Gruppe von Werten aus einem Dataset für Name-Wert-Paare abzurufen, bei denen jedes Paar eine 1:1-Beziehung hat. MultiLookup entspricht dem Aufrufen von Lookup für eine Reihe von Namen oder Schlüsseln. Beispielsweise können Sie für einen Mehrwertparameter, der auf Primärschlüsselbezeichnern basiert, in einem Ausdruck in einem Textfeld in einer Tabelle verwenden Multilookup , um zugeordnete Werte aus einem Dataset abzurufen, das nicht an den Parameter oder an die Tabelle gebunden ist.

Multilookup führt die folgenden Aktionen aus:

  • Der Quellausdruck wird im aktuellen Bereich ausgewertet, und ein Array von Variant-Objekten wird generiert.

  • 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 Dataset mit Name-Wert-Paaren für einen Namen abzurufen, wenn eine 1:n-Beziehung besteht.

Es gelten die folgenden 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 den gleichen Datentyp ergeben.

  • 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).

Beispiel

Angenommen, ein Dataset mit dem Namen "Kategorie" enthält das Feld "CategoryList", bei dem es sich um ein Feld handelt, das eine durch Trennzeichen getrennte Liste von Kategorieidentifern enthält, z. B. "2, 4, 2, 1".

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

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

Um die Namen nachzuschlagen, die der Liste der Bezeichner entsprechen, verwenden Sie Multilookup. Sie müssen die Liste zuerst in ein Zeichenfolgenarray aufteilen, Multilookup aufrufen, um die Kategorienamen abzurufen und die Ergebnisse in eine Zeichenfolge zu verketten.

Wenn der folgende Ausdruck in ein Textfeld in einem Datenbereich platziert wird, der 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")),  
   ", ")  

Beispiel

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"),", ")  

Siehe auch

Ausdrucksverwendungen in Berichten (Berichts-Generator und SSRS)
Beispiele für Ausdrücke (Berichts-Generator und SSRS)
Datentypen in Ausdrücken (Berichts-Generator und SSRS)
Ausdrucksbereich für Gesamtwerte, Aggregate und integrierte Auflistungen (Berichts-Generator und SSRS)