Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Microsoft Report Builder (SSRS)
Power BI Report Builder
Projektant raportów w narzędziu SQL Server Data Tools
Zwraca zestaw pasujących wartości dla określonej nazwy 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
LookupSet(source_expression, destination_expression, result_expression, dataset)
Parametry
source_expression
(Wariant) Wyrażenie, które jest oceniane w bieżącym zakresie i określa nazwę lub klucz do wyszukania. Na przykład =Fields!ID.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!CustomerID.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!PhoneNumber.Value.
dataset
Stała określająca nazwę zestawu danych w raporcie. Na przykład "ContactInformation".
Zwrot
Zwraca argument VariantArray lub Nic , jeśli nie ma dopasowania.
Uwagi
Użyj funkcji LookupSet , aby pobrać zestaw wartości z określonego zestawu danych dla pary nazwa/wartość, w której istnieje relacja od 1 do wielu. Na przykład w przypadku identyfikatora klienta w tabeli można użyć funkcji LookupSet , aby pobrać wszystkie skojarzone numery telefonów dla tego klienta z zestawu danych, który nie jest powiązany z regionem danych.
Funkcja LookupSet wykonuje następujące czynności:
Oblicza wyrażenie źródłowe w bieżącym zakresie.
Oblicza wyrażenie docelowe dla każdego wiersza określonego zestawu danych po zastosowaniu filtrów na podstawie sortowania określonego zestawu danych.
Dla każdego dopasowania wyrażenia źródłowego i wyrażenia docelowego oblicza wyrażenie wyniku dla tego wiersza w zestawie danych.
Zwraca zestaw wartości wyrażeń wyników.
Aby pobrać pojedynczą wartość z zestawu danych z parami nazwa/wartość dla określonej nazwy, w której istnieje relacja od 1 do 1, użyj funkcji Lookup (Report Builder i SSRS). Aby wywołać funkcję Lookup dla zestawu wartości, użyj funkcji Multilookup (Report Builder i SSRS).
Obowiązują następujące ograniczenia:
Funkcja LookupSet jest oceniana 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.
Nie można użyć elementu LookupSet jako wyrażenia 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
W poniższych przykładach załóżmy, że tabela jest powiązana z zestawem danych zawierającym identyfikator terytorium sprzedaży TerritoryGroupID. Oddzielny zestaw danych o nazwie "Stores" zawiera listę wszystkich magazynów na terytorium i zawiera identyfikator terytorium oraz nazwę sklepu StoreName.
A. Korzystanie z elementu LookupSet
W następującym wyrażeniu funkcja LookupSet porównuje wartość TerritoryGroupID do ID dla każdego wiersza w zestawie danych o nazwie "Stores". Dla każdego dopasowania wartość pola StoreName dla tego wiersza jest dodawana do zestawu wyników.
=LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores")
B. Tworzenie listy wyników za pomocą funkcji Join
Ponieważ funkcja LookupSet zwraca kolekcję obiektów, nie można wyświetlić wyrażenia wyniku bezpośrednio w polu tekstowym. Możesz połączyć wartość każdego obiektu w kolekcji jako ciąg.
Użyj funkcji Visual Basic Join , aby utworzyć rozdzielany ciąg z zestawu obiektów. Użyj przecinka jako separatora, aby połączyć obiekty w jednym wierszu. W niektórych programach renderujących możesz użyć kanału informacyjnego języka Visual Basic (vbCrLF) jako separatora, aby wyświetlić listę każdej wartości w nowym wierszu.
Poniższe wyrażenie, gdy jest używane jako właściwość Value dla pola tekstowego, używa funkcji Join do utworzenia listy.
=Join(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"),",")
C. Dodawanie kodu w celu wygenerowania kodu HTML
W przypadku pól tekstowych renderowanych tylko kilka razy możesz dodać niestandardowy kod do wygenerowania kodu HTML w celu wyświetlenia wartości w polu tekstowym. Kod HTML w polu tekstowym wymaga dodatkowego przetwarzania, więc nie byłoby to dobrym wyborem dla pola tekstowego renderowanego tysiące razy.
Skopiuj następujące funkcje języka Visual Basic do bloku Code w definicji raportu. Funkcja MakeList pobiera tablicę obiektów zwracaną w result_expression i tworzy nieurządkowaną listę przy użyciu tagów HTML. Długość zwraca liczbę elementów w tablicy obiektów.
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. Wywołaj funkcję
Aby wygenerować kod HTML, należy wywołać funkcję . Wklej następujące wyrażenie we właściwości 'Wartość' pola tekstu i ustaw typ formatowania dla tekstu na 'HTML'. Aby uzyskać więcej informacji, zobacz Dodawanie kodu HTML do raportu (Report Builder i SSRS).
=Code.MakeList(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"))