Fungsi Report Builder - Fungsi LookupSet dalam laporan yang dipaginasi (Report Builder)

Berlaku untuk: Microsoft Report Builder (SSRS) Power BI Report Builder Perancang Laporan di SQL Server Data Tools

Mengembalikan kumpulan nilai yang cocok untuk nama yang ditentukan dari himpunan data yang berisi pasangan nama/nilai dalam laporan yang dipaginasi.

Catatan

Anda dapat membuat dan mengubah file definisi laporan yang dipaginasi (.rdl) di Microsoft Report Builder, Power BI Report Builder, dan di Perancang Laporan di SQL Server Data Tools.

Sintaks

  
LookupSet(source_expression, destination_expression, result_expression, dataset)  

Parameter

source_expression
(Varian) Ekspresi yang dievaluasi dalam cakupan saat ini dan yang menentukan nama atau kunci untuk dicari. Contohnya,=Fields!ID.Value.

destination_expression
(Varian) Ekspresi yang dievaluasi untuk setiap baris dalam himpunan data dan yang menentukan nama atau kunci untuk dicocokkan. Contohnya,=Fields!CustomerID.Value.

result_expression
(Varian) Ekspresi yang dievaluasi untuk baris dalam himpunan data di mana source_expression = destination_expression, dan yang menentukan nilai yang akan diambil. Contohnya,=Fields!PhoneNumber.Value.

Dataset
Konstanta yang menentukan nama himpunan data dalam laporan. Misalnya, "ContactInformation".

Kembali

Mengembalikan VariantArray, atau Tidak ada jika tidak ada kecocokan.

Keterangan

Gunakan LookupSet untuk mengambil sekumpulan nilai dari himpunan data yang ditentukan untuk pasangan nama/nilai di mana ada hubungan 1-ke-banyak. Misalnya, untuk pengidentifikasi pelanggan dalam tabel, Anda dapat menggunakan LookupSet untuk mengambil semua nomor telepon terkait untuk pelanggan tersebut dari himpunan data yang tidak terikat ke wilayah data.

LookupSet melakukan hal berikut:

  • Mengevaluasi ekspresi sumber dalam cakupan saat ini.

  • Mengevaluasi ekspresi tujuan untuk setiap baris himpunan data yang ditentukan setelah filter diterapkan, berdasarkan kolase himpunan data yang ditentukan.

  • Untuk setiap kecocokan ekspresi sumber dan ekspresi tujuan, mengevaluasi ekspresi hasil untuk baris tersebut dalam himpunan data.

  • Mengembalikan kumpulan nilai ekspresi hasil.

Untuk mengambil nilai tunggal dari himpunan data dengan pasangan nama/nilai untuk nama tertentu di mana ada hubungan 1-ke-1, gunakan Fungsi Pencarian (Pembangun Laporan dan SSRS). Untuk memanggil Pencarian untuk sekumpulan nilai, gunakan Fungsi Multilookup (Report Builder dan SSRS).

Pembatasan berikut berlaku:

  • LookupSet dievaluasi setelah semua ekspresi filter diterapkan.

  • Hanya satu tingkat pencarian yang didukung. Ekspresi sumber, tujuan, atau hasil tidak dapat menyertakan referensi ke fungsi pencarian.

  • Ekspresi sumber dan tujuan harus mengevaluasi ke jenis data yang sama.

  • Ekspresi sumber, tujuan, dan hasil tidak dapat menyertakan referensi untuk melaporkan atau mengelompokkan variabel.

  • LookupSet tidak dapat digunakan sebagai ekspresi untuk item laporan berikut:

    • String koneksi dinamis untuk sumber data.

    • Bidang terhitung dalam himpunan data.

    • Parameter kueri dalam himpunan data.

    • Filter dalam himpunan data.

    • Parameter laporan.

    • Properti Report.Language.

Untuk informasi selengkapnya, lihat Referensi Fungsi Agregat (Penyusun Laporan dan SSRS) dan Cakupan Ekspresi untuk Total, Agregat, dan Koleksi Bawaan (Pembuat Laporan dan SSRS).

Contoh

Dalam contoh berikut, asumsikan tabel terikat ke himpunan data yang menyertakan pengidentifikasi wilayah penjualan TerritoryGroupID. Himpunan data terpisah yang disebut "Toko" berisi daftar semua penyimpanan di wilayah dan menyertakan ID pengidentifikasi wilayah dan nama store StoreName.

J. Gunakan LookupSet

Dalam ekspresi berikut, LookupSet membandingkan nilai TerritoryGroupID dengan ID untuk setiap baris dalam himpunan data yang disebut "Stores". Untuk setiap kecocokan, nilai bidang StoreName untuk baris tersebut ditambahkan ke kumpulan hasil.

=LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores")  

B. Gunakan Gabung untuk membuat daftar hasil

Karena LookupSet mengembalikan kumpulan objek, Anda tidak dapat menampilkan ekspresi hasil secara langsung dalam kotak teks. Anda dapat menggabungkan nilai setiap objek dalam koleksi sebagai string.

Gunakan fungsi Visual Basic Gabung membuat string yang dibatasi dari sekumpulan objek. Gunakan koma sebagai pemisah untuk menggabungkan objek dalam satu baris. Di beberapa perender, Anda mungkin menggunakan umpan baris Visual Basic (vbCrLF) sebagai pemisah untuk mencantumkan setiap nilai pada baris baru.

Ekspresi berikut, saat digunakan sebagai properti Nilai untuk kotak teks, menggunakan Gabung untuk membuat daftar.

=Join(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"),",")  

C. Menambahkan kode untuk menghasilkan HTML

Untuk kotak teks yang hanya dirender beberapa kali, Anda dapat memilih untuk menambahkan kode kustom untuk menghasilkan HTML untuk menampilkan nilai dalam kotak teks. HTML dalam kotak teks memerlukan pemrosesan ekstra, jadi ini tidak akan menjadi pilihan yang baik untuk kotak teks yang dirender ribuan kali.

Salin fungsi Visual Basic berikut ke blok Kode dalam definisi laporan. MakeList mengambil array objek yang dikembalikan dalam result_expression dan menyusun daftar yang tidak berurut dengan menggunakan tag HTML. Panjang mengembalikan jumlah item dalam array objek.

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. Memanggil fungsi

Untuk menghasilkan HTML, Anda harus memanggil fungsi . Tempelkan ekspresi berikut ini di properti Nilai untuk kotak teks dan atur jenis markup untuk teks ke HTML. Untuk informasi selengkapnya, lihat Menambahkan HTML ke dalam Laporan (Penyusun Laporan dan SSRS).

=Code.MakeList(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"))  

Lihat juga

Penggunaan Ekspresi dalam Laporan (Penyusun Laporan dan SSRS)
Contoh Ekspresi (Penyusun Laporan dan SSRS)
Jenis Data dalam Ekspresi (Penyusun Laporan dan SSRS)
Cakupan Ekspresi untuk Total, Agregat, dan Koleksi Bawaan (Report Builder dan SSRS)