Udostępnij przez


Funkcje programu Report Builder — funkcja Multilookup w raporcie podzielonym na strony (Report Builder)

Dotyczy: Microsoft Report Builder (SSRS) Power BI Report Builder Projektant raportów w narzędziu SQL Server Data Tools

Zwraca zestaw wartości pierwszego dopasowania dla określonego zestawu nazw z zestawu danych zawierającego pary nazwa/wartość w raporcie podzielonym na strony.

Uwaga / Notatka

Pliki definicji raportu podzielonego na strony (rdl) można tworzyć i modyfikować w programie Microsoft Report Builder, programie Power BI Report Builder i w projektancie raportów w narzędziach SQL Server Data Tools.

Składnia

  
Multilookup(source_expression, destination_expression, result_expression, dataset)  

Parametry

source_expression
(VariantArray) Wyrażenie, które jest ewaluowane w bieżącym zakresie i określa zestaw nazw lub kluczy do wyszukania. Na przykład dla parametru wielowartościowego . =Parameters!IDs.value

destination_expression
(Wariant) Wyrażenie, które jest oceniane dla każdego wiersza w zestawie danych i które określa nazwę lub klucz do dopasowania. Na przykład =Fields!ID.Value.

result_expression
(Wariant) Wyrażenie, które jest obliczane dla wiersza w zestawie danych, w którym source_expression = destination_expression, i które określa wartość do pobrania. Na przykład =Fields!Name.Value.

dataset
Stała określająca nazwę zestawu danych w raporcie. Na przykład "Kolory".

Zwrot

Zwraca argument VariantArray lub Nic , jeśli nie ma dopasowania.

Uwagi

Użyj funkcji Multilookup, aby pobrać zestaw wartości z danych dla pary nazwa-wartość, gdzie każda para ma relację 1 do 1. Funkcja MultiLookup jest odpowiednikiem wywoływania funkcji Lookup dla zestawu nazw lub kluczy. Na przykład w przypadku parametru wielowartościowego opartego na identyfikatorach klucza podstawowego można użyć funkcji Multilookup w wyrażeniu w polu tekstowym w tabeli, aby pobrać skojarzone wartości z zestawu danych, który nie jest powiązany z parametrem lub z tabelą.

Funkcja Multilookup wykonuje następujące czynności:

  • Oblicza wyrażenie źródłowe w bieżącym zakresie i generuje tablicę obiektów wariantowych.

  • Dla każdego obiektu w tablicy wywołuje funkcję Lookup (Report Builder i SSRS) i dodaje wynik do tablicy zwracanej.

  • Zwraca zestaw wyników.

Aby pobrać pojedynczą wartość z zestawu danych z parami name-value dla określonej nazwy, w której istnieje relacja od 1 do 1, użyj funkcji Lookup (Report Builder i SSRS). Aby pobrać wiele wartości z zestawu danych z parami name-value dla nazwy, w której istnieje relacja od 1 do wielu, użyj funkcji LookupSet (Report Builder i SSRS).

Obowiązują następujące ograniczenia:

  • Funkcja Multilookup jest obliczana po zastosowaniu wszystkich wyrażeń filtru

  • Obsługiwany jest tylko jeden poziom wyszukiwania. Wyrażenie źródłowe, docelowe lub wynikowe nie może zawierać odwołania do funkcji wyszukiwania.

  • Wyrażenia źródłowe i docelowe muszą być obliczane dla tego samego typu danych.

  • Wyrażenia źródłowe, docelowe i wynikowe nie mogą zawierać odwołań do zmiennych raportu lub grupy.

  • Funkcja Multilookup nie może być używana jako wyrażenie dla następujących elementów raportu:

    • Parametry połączenia dynamicznego dla źródła danych.

    • Pola obliczeniowe w zestawie danych.

    • Parametry zapytania w zestawie danych.

    • Filtry w zestawie danych.

    • Parametry raportu.

    • Właściwość Report.Language.

Aby uzyskać więcej informacji, zapoznaj się z Odwołanie do funkcji agregujących (Report Builder i SSRS) i Zakres wyrażeń dla sum, agregacji i wbudowanych kolekcji (Report Builder i SSRS).

Przykłady

A. Korzystanie z funkcji MultiLookup

Załóżmy, że zestaw danych o nazwie "Kategoria" zawiera pole CategoryList, które jest polem zawierającym rozdzielaną przecinkami listę identyfikatorów kategorii, na przykład "2, 4, 2, 1".

Zestaw danych CategoryNames zawiera identyfikator kategorii i nazwę kategorii, jak pokazano w poniższej tabeli.

identyfikator Name
1 Akcesoria
2 Rowery
3 Odzież
4 Components

Aby wyszukać nazwy odpowiadające liście identyfikatorów, użyj funkcji Multilookup. Najpierw należy podzielić listę na tablicę ciągów, wywołać funkcję Multilookup , aby pobrać nazwy kategorii i połączyć wyniki w ciąg.

Następujące wyrażenie po umieszczeniu w polu tekstowym w regionie danych powiązanym z zestawem danych Kategoria wyświetla "Rowery, Komponenty, Rowery, Akcesoria":

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

B. Używanie funkcji MultiLookup z parametrem multivalue

Załóżmy, że zestaw danych ProductColors zawiera pole identyfikatora koloru ColorID i pole wartości koloru, jak pokazano w poniższej tabeli.

Identyfikator koloru Kolor
1 Red
2 Blue
3 Green

Załóżmy, że parametr Wielowartościowy MyColors nie jest powiązany z zestawem danych dla dostępnych wartości. Wartości domyślne parametru są ustawione na 2 i 3. Poniższe wyrażenie po umieszczeniu w polu tekstowym w tabeli łączy wiele wybranych wartości parametru z listą rozdzielaną przecinkami i wyświetla tekst "Blue, Green".

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