Freigeben über


Multilookup-Funktion

Gibt den Satz der ersten übereinstimmende Werte für den angegebenen Satz von Namen aus einem Dataset mit Name-Wert-Paaren zurück.

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 Dataset ausgewertet wird und der den Namen oder den Schlüssel für die Übereinstimmung angibt. Beispiel: =Fields!ID.Value.

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

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

Rückgabewert

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

Hinweise

Rufen Sie mithilfe von Multilookup einen Satz von Werten aus einem Dataset mit Name-Wert-Paaren ab, bei denen für jedes Paar eine 1:1-Beziehung besteht. MultiLookup entspricht dem Aufruf von Lookup für einen Satz von Namen oder Schlüsseln. 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.

Mit Multilookup wird Folgendes ausgeführt:

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

  • Für jedes Objekt im Array wird die Suchfunktion aufgerufen und dem Rückgabearray das Ergebnis hinzugefügt.

  • Der Satz von Ergebnissen wird zurückgegeben.

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 Suchfunktion. Um mehrere Werte aus einem Dataset mit Name-Wert-Paaren für einen Namen abzurufen, wenn eine 1:n-Beziehung besteht, verwenden Sie LookupSet-Funktion.

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 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 Report.Language-Eigenschaft.

Beispiel

Angenommen, ein Dataset mit dem Namen "Category" enthält das Feld "CategoryList", das eine durch Trennzeichen 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

Accessories

2

Bikes

3

Clothing

4

Components

Um die Namen nachzuschlagen, die der Liste der Bezeichner entsprechen, verwenden Sie 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 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")),
   ", ")

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

ColorID

Color

1

Red

2

Blue

3

Green

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

Verweis

Beispiele für Ausdrücke (Reporting Services)

Dataseteigenschaften (Dialogfeld), Optionen

Konzepte

Arbeiten mit Datentypen in Ausdrücken (Reporting Services)

Berechnen von Gesamtwerten und anderen Aggregaten (Reporting Services)

Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services)

Verwenden von ein- und mehrwertigen Parametern