SSRS’DE BİR TABLO için ÇOKLU DATASET KULLANMA

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

Bu yazı SQL SERVER kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>