Udostępnij za pośrednictwem


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