Aracılığıyla paylaş


Rapor Oluşturucusu işlevleri - Sayfalandırılmış raporda LookupSet işlevi (Rapor Oluşturucusu)

Şunlar için geçerlidir: SQL Server Veri Araçları'nda Microsoft Rapor Oluşturucusu (SSRS) Power BI Rapor Oluşturucusu Rapor Tasarımcısı

Sayfalandırılmış raporda ad/değer çiftleri içeren bir veri kümesinden belirtilen ad için eşleşen değerler kümesini döndürür.

Uyarı

Sayfalandırılmış rapor tanımı (.rdl) dosyalarını Microsoft Rapor Oluşturucusu'nda, Power BI Rapor Oluşturucusu'nda ve SQL Server Veri Araçları'ndaki Rapor Tasarımcısı'nda oluşturabilir ve değiştirebilirsiniz.

Sözdizimi

  
LookupSet(source_expression, destination_expression, result_expression, dataset)  

Parametreler

source_expression
(Değişken) Geçerli kapsamda değerlendirilen ve arama için adı veya anahtarı belirten bir ifade. Örneğin, =Fields!ID.Value.

destination_expression
(Değişken) Bir veri kümesindeki her satır için değerlendirilen ve eşleşmesi gereken adı veya anahtarı belirten ifade. Örneğin, =Fields!CustomerID.Value.

result_expression
(Değişken) veri kümesindeki source_expression destination_expression = satırı için değerlendirilen ve alınacak değeri belirten bir ifade. Örneğin, =Fields!PhoneNumber.Value.

dataset
Rapordaki bir veri kümesinin adını belirten sabit. Örneğin, "ContactInformation".

Return

VariantArray döndürür, ya da eşleşme yoksa Yok döndürür.

Açıklamalar

Belirtilen veri kümesinden, 1-çok ilişkisi bulunan bir ad/değer çifti için değerler kümesini almak amacıyla LookupSet kullanın. Örneğin, bir tablodaki müşteri tanımlayıcısı için LookupSet kullanarak veri bölgesine bağlı olmayan bir veri kümesinden ilgili müşterinin tüm ilişkili telefon numaralarını alabilirsiniz.

LookupSet aşağıdakileri yapar:

  • Geçerli kapsamdaki kaynak ifadeyi değerlendirir.

  • Filtreler uygulandıktan sonra belirtilen veri kümesinin her satırı için hedef ifadeyi, belirtilen veri kümesinin harmanlaması temelinde değerlendirir.

  • Kaynak ifade ve hedef ifadenin her eşleşmesi için, veri kümesindeki bu satır için sonuç ifadesini değerlendirir.

  • Sonuç ifadesi değerleri kümesini döndürür.

1-1 ilişkisi olan belirtilen bir ad için ad/değer çiftleri içeren bir veri kümesinden tek bir değer almak için Arama İşlevi 'ni (Rapor Oluşturucusu ve SSRS) kullanın. Bir değer kümesi için Arama'yı çağırmak için Multilookup İşlevi'ni (Rapor Oluşturucusu ve SSRS) kullanın.

Aşağıdaki kısıtlamalar geçerlidir:

  • LookupSet , tüm filtre ifadeleri uygulandıktan sonra değerlendirilir.

  • Yalnızca bir arama düzeyi desteklenir. Kaynak, hedef veya sonuç ifadesi arama işlevine başvuru içeremez.

  • Kaynak ve hedef ifadeler aynı veri türüne göre değerlendirilmelidir.

  • Kaynak, hedef ve sonuç ifadeleri rapor veya grup değişkenlerine başvuru içeremez.

  • LookupSet , aşağıdaki rapor öğeleri için ifade olarak kullanılamaz:

    • Veri kaynağı için dinamik bağlantı dizeleri.

    • Bir veri kümesindeki hesaplanan alanlar.

    • Veri kümesindeki sorgu parametreleri.

    • Bir veri kümesindeki filtreler.

    • Rapor parametreleri.

    • Report.Language özelliği.

Daha fazla bilgi için bkz. Toplama İşlevleri Başvurusu (Rapor Oluşturucusu ve SSRS) ve Toplamlar, Toplamalar ve Yerleşik Koleksiyonlar için İfade Kapsamı (Rapor Oluşturucusu ve SSRS).

Örnekler

Aşağıdaki örneklerde, tablonun TerritoryGroupID satış bölgesi tanımlayıcısı içeren bir veri kümesine bağlı olduğunu varsayalım. "Stores" adlı ayrı bir veri kümesi, bir bölgede yer alan tüm mağazaların listesini ve bölge tanımlayıcı kimliğini ve StoreName mağaza adını içerir.

A. LookupSet Kullanımı

Aşağıdaki ifadede LookupSet , veri kümesindeki "Stores" adlı her satır için TerritoryGroupID değerini ID ile karşılaştırır. Her eşleşme için, bu satırın StoreName alanının değeri sonuç kümesine eklenir.

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

B. Sonuç listesi oluşturmak için Join kullanma

LookupSet bir nesne koleksiyonu döndürdüğünden, sonuç ifadesini doğrudan bir metin kutusunda görüntüleyemezsiniz. Koleksiyondaki her nesnenin değerini dize olarak birleştirebilirsiniz.

Bir nesne kümesinden sınırlandırılmış bir dize oluşturmak için Visual Basic join işlevini kullanın. Nesneleri tek bir satırda birleştirmek için ayırıcı olarak virgül kullanın. Bazı işleyicilerde, her değeri yeni bir satırda listelemek için ayırıcı olarak Visual Basic satır akışı (vbCrLF) kullanabilirsiniz.

Aşağıdaki ifade, bir metin kutusu için Value özelliği olarak kullanıldığında, liste oluşturmak için Join kullanır.

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

C. HTML oluşturmak için kod ekleme

Yalnızca birkaç kez görüntülenen metin kutuları için, metin kutusunda değerleri gösterecek HTML oluşturmak amacıyla özel kod ekleyebilirsiniz. Metin kutusundaki HTML ek işleme gerektirir, bu nedenle binlerce kez işlenen bir metin kutusu için bu iyi bir seçim değildir.

Aşağıdaki Visual Basic işlevlerini rapor tanımındaki bir Kod bloğuna kopyalayın. MakeList, result_expression döndürülen nesne dizisini alır ve HTML etiketlerini kullanarak sıralanmamış bir liste oluşturur. Uzunluk , nesne dizisindeki öğe sayısını döndürür.

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. İşlevi çağır

HTML oluşturmak için işlevini çağırmanız gerekir. Metin kutusunun Value özelliğine aşağıdaki ifadeyi yapıştırın ve metnin işaretleme türünü HTML olarak ayarlayın. Daha fazla bilgi için bkz. Rapora HTML Ekleme (Rapor Oluşturucusu ve SSRS).

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