Funkcja LookupSet (program Report Builder 3.0 i usługi SSRS)
Zwraca zestaw pasujących wartości dla określonej nazwy z zestawu danych zawierającego pary nazwa/wartość.
Ostrzeżenie
Program Business Intelligence Development Studio umożliwia tworzenie i modyfikowanie definicji raportów (rdl) przy użyciu programów Report Builder 3.0 i Report Designer. Każde ze środowisk obsługuje różne sposoby tworzenia, otwierania i zapisywania raportów oraz powiązanych z nimi elementów. Aby uzyskać więcej informacji, zobacz temat Projektowanie raportów w programach Report Designer i Report Builder 3.0 (usługi SSRS) w witrynie sieci Web microsoft.com.
Składnia
LookupSet(source_expression, destination_expression, result_expression, dataset)
Parametry
source_expression
(Variant) Wyrażenie jest oceniane w bieżącym zakres , określające nazwę lub klucz wyszukiwania up.Na przykład =Fields!ID.Value.destination_expression
(Variant) Wyrażenie, które jest obliczane dla każdego wiersza w dataset i określa nazwę lub klucz do zgodne na.Na przykład =Fields!CustomerID.Value.result_expression
(Variant) Wyrażenie obliczane dla wierszy w zestawie danych gdzie source_expression = destination_expression, i która 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: „InformacjeKontaktowe”.
Zwracane wartości
Zwraca VariantArray, lub Nothing , jeśli nie ma żadnego dopasowania.
Uwagi
Użyj LookupSet , aby pobrać zestaw wartości określonego zestawu danych dla pary nazwa/wartość gdzie istnieje relacja jeden-do wielu.Na przykład dla identyfikatora klienta w tabela, można użyć LookupSet pobrać wszystkie numery telefonów dla nabywcy z zestawu danych, która nie jest związana z danymi region.
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.
W przypadku wszystkich pasujących do siebie wyrażeń źródłowych i docelowych oblicza wyrażenie wynikowe dla danego wiersza w zestawie danych.
Zwraca zestaw wartości wyrażeń wynikowych.
Aby pobrać pojedynczą wartość dataset w parach nazwa/wartość dla określonej nazwy użyć w przypadku relacji 1-do-1, Funkcja Lookup (program Report Builder 3.0 i usługi SSRS).Wywołanie Lookup dla zestaw wartości, użyj Funkcja Multilookup (program Report Builder 3.0 i usługi SSRS).
Obowiązują następujące ograniczenia:
Funkcja LookupSet jest wykonywana po zastosowaniu wszystkich wyrażeń filtru.
Obsługiwany jest tylko jeden poziom wyszukiwania.Wyrażenie źródłowe, docelowe ani wynikowe nie może zawierać odwołania do funkcji wyszukiwania.
Wartości wyrażeń źródłowego i docelowego muszą być tego samego typu.
Źródła, obiekt docelowy i wynik wyrażenia nie może zawierać odwołania do raportu lub grupy zmiennych.
LookupSet nie można używać jako wyrażenie dla następujących elementów raportu:
Dynamiczne parametry połączenia ze źródłem danych.
Pola obliczeniowe w zestawie danych.
Parametry zapytania w zestawie danych.
Filtry w zestawie danych.
Parametry raportu.
Report.Language właściwość.
Aby uzyskać więcej informacji, zobacz Kompendium funkcji agregujących (program Report Builder 3.0 i usługi SSRS) i Opis zakresu wyrażeń dla sum, wartości zagregowanych i kolekcji wbudowanych (program Report Builder 3.0 i usługi SSRS).
Przykład
W poniższym przykładzie założono DataSet, która zawiera identyfikator obszaru sprzedaży jest powiązana tabela TerritoryGroupID.Oddzielny zestaw danych o nazwie "Sklepy" zawiera listę wszystkich magazynów na terytorium i identyfikator terytorium ID i nazwa magazynu StoreName.
W następującej wyrażenie, LookupSet porównuje wartość TerritoryGroupID do ID dla każdego wiersza w zestawie danych o nazwie "Sklepy".Dla każdego dopasowanie wartości StoreName pole dla tego wiersza jest dodawane do zestaw wyników.
=LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores")
Ponieważ LookupSet zwraca kolekcja obiektów, nie można wyświetlić wynik wyrażenie bezpośrednio w polu tekstowym.Wartości wszystkich obiektów w kolekcji można jednak złączyć w ciąg.
Użyj Visual Basic funkcja Join utworzyć ciąg rozdzielany z zestaw obiektów.Jako separatora należy użyć przecinka w celu połączenia obiektów w jeden wiersz.W niektórych renderowania można użyć Visual Basic line feed (vbCrLF) jako separator listy wartości każdego nowego wiersza.
Następujące wyrażenie, gdy jest używana jako Value właściwość dla pola tekstowego używa Join do tworzenia listy.
=Join(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"),",")
W przypadku pól tekstowych, które są renderowane tylko niewielką liczbę razy, w celu wyświetlenia wartości w polu tekstowym można dodać niestandardowy kod generujący dane HTML.Dane HTML w polu tekstowym wymagają dodatkowego przetwarzania, więc nie byłby to dobry wybór w przypadku pola tekstowego renderowanego na przykład kilka tysięcy razy.
Skopiuj następujące Visual Basic funkcje do Code blok w definicja raportu.MakeList Trwa tablicy obiektu, który jest zwracany w result_expression i buduje nieuporządkowaną listę za pomocą tagów HTML.Długość zwraca liczbę elementów w tablicy obiektu.
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
Aby wygenerować dane HTML, należy wywołać tę funkcję.Wklej następujące wyrażenie w Value właściwość dla pola tekstowego i zestaw adiustacje wpisz tekst HTML.Aby uzyskać więcej informacji, zobacz Jak Dodawanie do raportu (Konstruktora raportów 3.0 i SSRS) HTML.
=Code.MakeList(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"))
Zobacz także