Esasta pek çok okuduğunuz makalede bunun olanaksız olduğunu ve subreport kullanmanız gerektiği veya datasetleri birleştirmeniz gerektiğini okuyacaksınız
Ancak bunu yapmanın üçüncü bir yolu daha var subreport kullanmak(Tabi burda first(Fields!X.Value,’X dataset’) gibi bişeyden bahsetmiyorum çoklu kayıt taşıbilecek şekilde bir kullanımdan bahsediyorum.
Benim şöyle bir senaryom oldu.Ana bir raporum var ancak ben raporumda headerların başlıklarının gelen parametreye göre ingilizce veya Türkçe olmasını istiyorum.Ancak raporun bilgileri çektiği tabloların sorgusu ile verilen raporların başlıklarının tutulması sorgusu birbiriyle alakasız olacağı için farklı iki dataset kullanmam gerekiyor
Öncelikle aşağıdaki Kod bloğunu Raporumuzun custom code bölümüne ekliyoruz
Public ColumnNamesList As String() = {}
Public Function AddToColumnNamesList(txt as String) As string
dim L as integer = ColumnNamesList.Length
ReDim Preserve ColumnNamesList(L)
ColumnNamesList(L)=txt
return ColumnNamesList(L)
End Function
Public Function GetColumnName(i as integer) As string
return ColumnNamesList(i)
End Function
Yukarıdaki kod ne yapıyor
Birinci tablom ReportName diye bir DataSetten kolon başlıklarını okuyor
=Code.AddToColumnNamesList(Fields!displaytext.Value)
İkinci tablom ise Farklı bir datasetten kayıtlarımı okuyor
Ama ben aşağıdaki şekilde headerlarımın expressionına aşağıdaki kodu yazıyorum.Böylece verdiğim numaraya karşılık gelen Listeden başlığı okuyup ekranda gösteriyor
=Code.GetColumnName(4)
Ancak biz ilk kolon isimlerini taşıyan tablomuzun görünmesini istemiyoruz.Bunun için ssrs 2005 de tabloyu görünmez yapmamız yeterli ancak ssrs 2008 kullandığımızda bu işlem olmuyor maalesef
SSRS 2008 de ise bu mantığın çalışması için kolonun isimlerini taşıyan(ilk)tablonun hiddenın false olması gerekiyor.Böyle bir durumda ise tablonun width ve height 0 yapıyoruz ve Lokasyon olarakda ilk tablomuzdan yukarda olmayacak şekilde ikinci tabloyu yerleştiriyoruz.Eğer ikinci tablomuz birinciden daha yüksek olursa ikinci tablo birincide yazılanları algılamıyor ve hata veriyor(Saçma ama bu şekilde)
İyi Çalışmalar