Raporlarda kullanılabilecek dinamik rapor nesnelerinin neler olduğu, anvantajları ve kullanımları hakkında genel bilgiler
Bu yazıda sizlere raporun görsel kısmını oluşturmadan önce eklenebilecek rapor nesnelerinin neler olduğundan ve ekleyebileceğiniz rapor nesnelerini nasıl kullanabileceğinizden, rapor nesnelerinin avantajları dezavantajları ve hangi durumlarda hangi nesneyi seçmenin daha doğru olacağından bahsedeceğim. Geçen yazımda Visual Studio .Net 2003’u rapor hazırlarken nasıl Report Designer olarak kullanabileceğinizden bahsederken toolbox menüsünde dinamik ve statik rapor nesneleri seçip kullanabileceğinizden bahsetmiştim.
Raporumuza statik rapor nesnesi olarak :
Raporlara eklenebilecek statik nesnelerin yanı sıra dinamik nesneler de eklenebilir. Bunları ayrıntılarıyla ele alacağız.
TABLO NESNESI
Veriyi satır satır gösteren veri bölgesidir. Sütunları statiktir raporun görüntülenme aşamasında ise veritabanından çektiğimiz tüm kayıtların görüntülenebileceği kadar yeni satırlar eklenir. Her bir kayıt yeni bir satır olarak görüntülenir.
Tablo kullanarak verileri satırsal olarak gruplandırabilirsiniz.
Tablo’yu raponuza ilk eklediğinizde header, detail, footer alanları ile üç adet sütün görüntülenmektedir. Aşağıdaki şekilde, layout görünümünde, eklediğimiz tablo ve bu tablodaki alanların örnek olarak nasıl doldurulabileceği gösterilmektedir.

Header: satırına tablonuzda kullandığınız sütunların isimlerini girebilirsiniz. O sütunda gösterilen veri neyi ifade ediyorsa başlık olarak header kısmına bu değeri girebilirsiniz. Header satırı sürekli tekrar etmeyen sadece raporun başında görüntülenen bir alandır. Raporun başlığının sadece ilk sayfada mı yer alacağını yoksa her sayfanın başında mı yer alacağını raporun header satırını seçtikten sonra (Header satırını seçmek için satırın başındaki gri alanı tıklamanız gerekmektedir) properties alanında RepeatOnNewPage alanının değerini True veya False yaparak belirleyebilirsiniz. Header satirini raporunuzda görüntülenmemesi için solda yer alan header, detail ya da footer menülerinden herhangi birine sağ tıklayıp açılan menüden table header seçeneğini tıklamanız yeterli olacaktır. Kaldırdığınız header alanını tekrar eklemek isterseniz ise yine aynı işlemi yapmanız gerekmektedir. Ayrıca properties kısmında bu satıra yazılacak bilgilerin arka alan rengi, yazı stili, boyutu, çerçevenin rengi, tipi gibi ayarlamaları da properties penceresinden yapılabilmektedir.
Detail: satırı verilerin yer aldığı asıl raporunuzun oluştuğu alandır. Buraya görüntülenmesini istediğiniz verilerinizi daha önceden oluşturduğunuz veri kümenizden ilgili alanı sürükle bırak mantığıyla ilgili sütuna yerleştirmenizle raporda veritabanınızdaki değerlerin yer alması sağlanmış olacaktır. Veritabanınızdaki bütün veriler için detail satırı uzayacak ve raporu görüntüleyeceğiniz zaman verilerinizin miktarına göre tablonun genişliği artacak ya da azalacaktır. Daha önceden asp ile rapor hazırlayanların hatırlarsanız öncelikle bir recordset oluşturulur daha sonra recordset’in sonuna varılana kadar çalışacak bir döngü oluşturulur ve oluşturulan bu döngünün içinde html kodları kullanılarak öncelikle yeni bir satir ve gerekli olan sütunlar oluşturulup her sütunun içine değerler recordset’ten yazdırılır ve recordset bir sonraki kayda ulaşabilmesi için ilerletilirdi. Artık bu işlemlerle sizin uğraşmanıza gerek yok. Rapor nesnesi olarak tabloyu koyduktan sonra tablonun detail kısmına görüntülenmesini istediğiniz verileri solda yer alan veri kümenizden sürükle bırak mantığı ile ilgili alana bırakarak yukarıda saydığımız asp için gerekli olan tüm işlemleri gerçekleştirmiş oluyorsunuz. Bütün detail satırının görsel ayarlamasını yapabileceğiniz gibi isterseniz sadece bir alan seçip o alanında properties özelliklerini ayarlayabilirsiniz.
Footer: satırında ise raporun sonunda görüntülenmesini istediğimiz bilgiler yazılmaktadır. Footer alanın en büyük özelliği ve kullanım avantajı veri kümenizden buraya eklediğiniz bir alanın toplamını size vermesindir. Dinamik bir değer koyduğunuzda size veritabanındaki o alanın değerleri toplamını otomatik olarak vermektedir. İsterseniz footer alanına statik bir değerde yazabilirsiniz.
Bu alaninda her sayfa sonunda görüntülenmesini ya da sadece son sayfada görüntülenmesini header alaninda oldugu gibi properties'in RepeatOnNewPage seçeneginden ayarlayabilirsiniz. Ayrica yine header alaninda oldugu gibi raporda tablo footer'in görmek istemiyorsaniz bu alani kaldirabilir ya da kaldirmissaniz tekrar ekleyebilirsiniz. Properties alanini kullanarak görsel düzenlemelerde yapabilirsiniz.
Bir örnekle açıklarsak; veritabanınızda müşteriler adında bir tablonuz olsun ve bu tabloda muşteri alan kodu, müşteri kodu, müşteri adı ve satış miktarını tutuyorsunuz. Raporunuzda da hangi müşterinize ne kadarlık satış yaptığınız ve toplam satış miktarınızı görüntülemek istiyorsunuz. Bunun için gerekli data source'u oluşturup data görünümünde data set için gerekli SQL'i yazıp çalıştırdıktan sonra Layout görünümüne geçtiğinizde veri kümenizde yer alan alanların çalışma sayfanızın solunda listelendiğini göreceksiniz.
Header alanındaki sütunlara sırasıyla Müşteri No, Müşteri Adı, Miktar yazdıktan sonra detail satırına veri kümenizdeki ilgili başlıklara karşılık gelen alanları ilgili sütunlara yerleştirdikten sonra footer alanında Müşteri adına karşılık gelen sütuna toplam: yazıp Miktar alanına karşılık gelen sütuna da aynı detail alanına eklediğiniz gibi veri kümenizdeki miktarı karşılık gelen alanı sürükle bırak ile toplam satışınızı raporun sonunda görüntüleyebilirsiniz.
Yukarıda layout görünümünde gördüğümüz tablonun preview görünümüne geçersek veri tabanımızdaki kayıtlara ve değerlere göre aşağıdaki gibi bir görünüm elde ederiz.

Eğer üç sütün size yeterli değil ve yeni sütunlar eklemek istiyorsanız yada mevcut bir sütünü silmek istiyorsanız bir sütunu seçtikten sonra o sütunun sağına veya soluna yeni sütün ekleyebilir ya da seçili sütunu silebilirsiniz. Bunun için sütünü seçtikten sonra sağ tıklayıp açılan menüden gerekli seçeneği seçmeniz yeterli olacaktır. Sütunların boyutlarını ayarlamayabilmek için sütunu seçip properties den width özelliğini istediğiniz ebatta belirleyebilirsiniz.
Raporunuzdaki verileri belirli bir kategoriye göre gruplamak isterseniz satırlardan herhangi biri seçili iken sağ tıklayıp insert group diyerek önce grubu eklemeniz gerekir. Grup ekledikten sonra tablonuzda artık header, detail, footer alanları dışında group header ve group footer alanları da yer alacaktır.
Yukarıda verdiğimiz örnekte alıcıları bölgelere göre 1,2,3,4 olmak üzere veritabanımızda gruplandırmış olalım ve kayıtları görmek istediğimizde verileri gruplara göre listeleyelim. Grupların ana toplamını alalım. Bunun için yapmamız gereken işlem de:
Grup eklemek için detail satırını seçip sağ tıklayıp insert group seçeneğini seçtikten sonra açılan pencereden general sekmesindeki expression alanına bu gruplandırmanın neye göre yapılacağını belirtip bu gruplandırma için bir isim verebilirsiniz. Ayrıca en alttaki checkbox‘ardan grubunuz ile ilgili her grup yeni bir sayfada yer alsın ya da grup başlıkları hep tekrar etsin gibi ayarlamaları da yapabilirsiniz.
Yukarıdaki örneğe göre müşteri alan koduna göre bir gruplandırma yapmak istersek, veritabanındaki kod alanını expression alanında seçiyoruz ve OK’ i tıklıyoruz. Artık grubumuz eklendi bu grup için neye göre gruplandırdığı belirtmek için grubun header alanının ilk hücresine Müşteri Alanı yazıp onun yanındaki hücreye de veri kümesindeki kod alanını sürükleyip bırakıyoruz.
Her grup içinde ne kadarlık satış yaptığımı belirtmek içinde group footer alanında satışların yer aldığı hücreye veri kümesinden satış alanını sürükleyip bırakıyoruz ve ondan bir önceki hücreye de Alan toplamı yazıyoruz. Artık her alan için ara toplam değerini rapor oluşturulurken kendisi hesaplayacak. Bu haliyle düzenlediğimiz raporum preview görünümünde aşağıdaki gibi görüntülenecektir.

İsterseniz aynı raporun header ve footer’inde olduğu gibi oluşturduğunuz grubun footer ve header’inin görünüp görünmemesini ya da propertiesinde görsellikle ilgili ayarlarını yapabilirsiniz.
Tablolarda birden fazla gruplandırma yaparak iç içe gruplandırma yapabilirsiniz ama tablolar sadece satırsal gruplandırmalara izin vermektedir.
İsterseniz raporunuzun ilk açıldığında sadece grupların ve bu grubun ara değer toplamının gözükmesini grubun detay bilgilerinin isteğe bağlı olarak grubunuzun başında yer alan artı işaretine tıklayınca açılmasını ya da açıksa da kapanmasını sağlayabilirsiniz böylelikle ilk bakışta sadece ana değerlerin görünüp sonra detayların görünmesi sağlanabilir. Bunun için yapmanız gerek ise layout görünümünde iken detail satırını seçip properties deki Visibility özelliğinin altındaki hidden alanını True yapıp ToggleItem alanını ise açılan listeden yaptığınız gruplandırmayı seçmeniz gerekmektedir böylelikle öncelikle veriler gruplu halde gözükecek gruba tıklananınca grubun içindeki detay bilgileri de görüntülenecektir.

MATRIS NESNESI
Verinin gruplarıyla yinelenen dinamik sütun ve satırlardan oluşmaktadır. Tablonun daha gelişmiş halidir.
Tablolarda sadece satırsal gruplama yapılabilirken matrislerde hem satırsal hem de sütunsal gruplandırma yapılabilmektedir.
Rapora Matris eklemek için toolboxdan matrisi seçip raporda görüntülenmesini istediğimiz alana tıklamanız yeterli olacaktır. Rapora Matris eklediğinizde ilk başta iki satır ve iki sütunluk bir alan görüntülenmektedir.

Rows veriler satırsal olarak gruplandırılacağında kullanılır. Veri tabanından aldığı değerlere göre görünüm sırasında asagiya dogru yeni satirlar ekleyerek genişleyen bir alandır.
Columns alanı sütunsal olarak veriler gruplandırılacağında kullanılır. Bu alana koyduğumuz nesne eğer veri kümemizdeki bir alan ise nasil Rows alanı tüm verileri gösterebilmek için asağiya dogru yeni satirlar ekleyerek tabloyu genisletiyorsa burada da yeni sütunlar ekleyerek yana dogru veritabanınızdaki kayitlar kadar tablonuz genişleyecektir.
Data alanina konulan nesne ise satir ve sütunsal olark yapmış olduğunuz gruplandırmanin kesişim noktasındaki değeri göstermektedir.
Yeni satır eklemek isterseniz Data alanına sağ tıklayıp add row, sütun eklemek içinde add column seçeneğini seçebilirsiniz. Bu işlem göstereceğiniz veriler için satir ve sütun eklemek içindir, eğer siz satırsal olarak yeni bir grup satır veya sütunun üzerindeki gri alana sağ tıkladıktan sonra add row group, sütunsal grup eklemek içinde add column group seçeneğini seçmeniz gerekecektir.
Matriste en az bir satırsal ve sütunsal gruplandırmanın olması gerekmektedir. Rows ve Columns alanlarına dinamik veritabanı alanları koymak zorunda değilsiniz statik bir başlıkta verebilirsiniz.
Tablo nesnesi ile Matris nesnesini bağdaştırmak isterseniz. Columns ve Rows alanlarını tablodaki header alanı, data alanını ise tablodaki Detail alanı gibi düşünebilirsiniz. Buradaki en önemli fark Header alanını statik iken yani sadece bir değer alabilirken buradaki satir ve sütunlar için verdiğimiz başlıklar duruma göre birden çok değer alabilmekte genişleyebilmektedir.
Satırlara sütunlara veya data bilgisine ToggleItem tanımlayarak isteğe bağlı detaylı görünmesini ya da görünmemesini sağlayabilirsiniz. Bunun için ToggleItem atamak istediğiniz hücreyi satiri veya sütunu seçtikten sonra aynı tabloda nesnesinde yaptığınız gibi Properties'den Visibility ile ilgili alanlara Hidden ve ToggleItem alanlarına gerekli değerleri vermeniz gerekmektedir.
LISTE NESNESI
Serbest formda veri bölgesidir. Tablo ve Matris'in aksine sadece satırsal ya da sütunsal değil hücre bazlıda işlem yapılabilir. Liste içinde textbox resim ve diğer veri bölgeleri ile form yapmada rapor nesnelerinden yararlanılabilir.
Liste nesnesini raporunuza eklediğinizde birden fazla rapor nesnesini veya veri kümesini bu alanın içine yerleştirebilirsiniz fakat yerleştirdiğiniz. Alanları gruplandırmanız tablo ve matrise göre daha zordur. Bu noktada eğer Liste nesnesi eklemek yerine madem kendim istediğim gibi yerleştireceğim ve gruplandırması daha zor o zaman direk raporumun body kısmına veri kümemdeki alanları ekleyeyim diye düşünce aklınıza gelmiş olabilir. Eğer böyle düşünüyorsanız yanılıyorsunuz çünkü liste nesnesini raporunuza eklemeden direk veri kümenizdeki bir alanı raporunuza eklerseniz sadece tek bir kayıt görüntülenecektir.
DİKKAT:
Veritabanında yer alan bütün verilerin raporunuzda görüntülenebilmesi için, dahil ettiğiniz alanların mutlaka dinamik rapor nesnelerinin içerisinde olması gerekmektedir.
Liste nesnesinin içine statik alanlarda ekleyebilirsiniz fakat bu konuda dikkat etmeniz gereken nokta dinamik veriler tekrar ettikçe statik verilerde ekranda görüntülenecektir. Aşağıdaki ilk resimde hem sat atik hem de dinamik alanlar layout görünümünde listenin içinde yer almaktadır bu durumda raporunuzun nasıl görüntüleneceği hemen altında gösterilmiştir.


Aşağıdaki resimde ise bu sefer dinamik alanlarla birlikte statik alanlar da liste nesnesi kullanılmadan doğrudan formun body alanına eklenmiş ve bu durumda nasıl bir görüntü elde edildiği yine hemen altında belirtilmiştir.


Son olarak statik alan liste nesnesinin dışında dinamik alan ise liste nesnesinin içinde yer almaktadır. Sanırım bir rapor için en doğru görünüm aşağıdaki görünümdür.


Statik alanları illa liste nesnesinin dışında kullanacaksınız demekte yanlış olur çünkü bazı durumlarda statik alanında tekrar etmesi gerekebilmektedir.
GRAFIK NESNESI
Veriyi grafiksel gösteren veri bölgesidir. Verilerinizi her zaman sayısal değerlerle sunmak istemeyebilirsiniz bazen de karşılaştırmalı olarak görsel bir şekilde grafiklerle verilerinizi sunmak isteyebilir bu gibi durumlarda kullanabileceğiniz bir rapor nesnesidir. Yatay Çubuk, Dikey Çubuk, Pasta Dilimi, Doğru, Nokta gösterimi gibi değişik grafik seçenekleri mevcuttur. Toolbox’dan grafik nesnesini seçip raporunuzda görüntülemek istediğiniz alana tıkladıktan sonra ilk olarak bar şeklinde boş bir grafik eklemektedir.
Grafikte görüntülenmesini istediğiniz verileri grafiğin üstündeki drop data fields here yazan alana veri kümenizdeki ilgili alanı sürükleyip bırakarak ekleyebilirsiniz.
Grafikteki verilerin neye göre kategorize edileceğini belirlemek içinde veri kümenizdeki ilgili alanı grafiğin altındaki drop categories here yazan alana sürükleyip bırakmanız gerekmektedir.
Grafikte görüntülenen veri serilerini belirlemek içinde seri alanlarını drop series here yazan raporun sağındaki alana bırakmanız yeterli olacaktır.
Yukarıda kullandığımız örneklerden devam edersek Müşteri alanına göre gruplandırdığımız müşteri satışlarını bar şeklinde bir grafikte görüntüleyebilmek için layout görünümündeki şeklimizin aşağıdaki gibi olması gerekmektedir.

Yukarıdaki gibi hazırladığımız rapor görüntülenmek istediğinde aşağıdaki görüntü elde edilecektir.

Grafiğin tipini değiştirmek isterseniz grafik seçili iken sağ tıklayıp açılan menüden properties’i seçmeniz gerekmektedir.
Açılan pencere daha önce Excel’de grafik hazırlayanlar için hiçte yabancı olmadıkları bir penceredir. General, Data, X Axis, Y Axis, Legend, 3-D Effect, Filters sekmelerinden oluşmaktadır.
General sekmesinde grafik tipini belirleyebilir, grafiğinize isim verebilir, grafikte kullanabileceğiniz renk tipini belirleyebilirsiniz.
Data sekmesinde ise grafikte kullandığınız veri kümesinin ismi, değerler, kategoriler ve seriler yer almaktadır. İlk raporu oluşturduğunuzda sürükle bırak ile yerleştirdiğiniz alanlar burada görüntülenmektedir isterseniz siz bu alanları silebilir, değiştirebilir, sürükle bırak ile oluşturacağınıza bu alanlara gerekli değerleri yazarak ta oluşturabilirsiniz.
X Axis sekmesinde grafiğinizin X ekseni ile ilgili; başlıklar ortalı mı olsun etiket görünsün mü, başlık ne olsun, ölçeklendirme gibi ayarlamamaları yapabilirisiniz.
Y Axis sekmesinde Grafiğinizin Y ekseni ile ilgili; başlıklar ortalı mı olsun etiket görünsün mü, başlık ne olsun, ölçeklendirme gibi ayarlamamaları yapabilirisiniz.
Legend sekmesinde ise serilerinizin ne anlama geldiğini gösteren etiketinizin nerede ve nasıl görüntüleneceği ile ilgili ayarlamaları yapabilirisiniz.
3-D Effect sekmesinde iki boyutlu görünen grafiğinize perspektif verebilir, yatay ve dikey olarak belirteceğiniz açıdan görünmesini sağlayarak üç boyutlu bir grafik elde edebilmeniz için gerekli ayarlamaları yapabilirsiniz.
Filters sekmesinde ise grafiğinize eğer bir filtreye göre görüntülemek isterseniz kullanabilirsiniz. Size parametre ve filtre kullanımını daha sonraki yazılarımda anlatacağım.
Grafik nesnesini kullanırken dikkat etmeniz gereken bir nokta layout görünümünde grafiğin boyutunu nasıl belirlerseniz raporun görüntülenme aşamasındaki boyutunun da aynı olacağıdır. Liste, tablo, ya da matristeki gibi herhangi bir şekilde verinin durumuna göre genişlemesi söz konusu değildir.
SONUÇ
Bir raporda sadece bir veri kümesi kullanmak zorunda değilsiniz birden fazla veri kümesi oluşturup aynı anda birden fazla veri kümesinden aldığınız verileri tek bir rapor içinde kullanabileceğiniz gibi bir raporda birden fazla rapor nesnesi de kullanabilirsiniz.
Bu yazımda size statik ve dinamik rapor nesnelerini raporlarınıza nasıl ekleyebileceğinizden ve dinamik rapor nesneleri ile oluşturmuş olduğunuz veri kümesini nasıl ilişkilendirebileceğinizi anlattım kısaca hangi durumlarda hangi rapor nesnelerini kullanmanızın daha doğru olacağından bahsetmek gerekirse;
Raporumuza statik rapor nesnesi olarak :
- metin alanı,
- resim,
- dikdörtgen
- ve çizgi ekleyebiliriz.
Raporlara eklenebilecek statik nesnelerin yanı sıra dinamik nesneler de eklenebilir. Bunları ayrıntılarıyla ele alacağız.
TABLO NESNESI
Veriyi satır satır gösteren veri bölgesidir. Sütunları statiktir raporun görüntülenme aşamasında ise veritabanından çektiğimiz tüm kayıtların görüntülenebileceği kadar yeni satırlar eklenir. Her bir kayıt yeni bir satır olarak görüntülenir.
Tablo kullanarak verileri satırsal olarak gruplandırabilirsiniz.
Tablo’yu raponuza ilk eklediğinizde header, detail, footer alanları ile üç adet sütün görüntülenmektedir. Aşağıdaki şekilde, layout görünümünde, eklediğimiz tablo ve bu tablodaki alanların örnek olarak nasıl doldurulabileceği gösterilmektedir.

Header: satırına tablonuzda kullandığınız sütunların isimlerini girebilirsiniz. O sütunda gösterilen veri neyi ifade ediyorsa başlık olarak header kısmına bu değeri girebilirsiniz. Header satırı sürekli tekrar etmeyen sadece raporun başında görüntülenen bir alandır. Raporun başlığının sadece ilk sayfada mı yer alacağını yoksa her sayfanın başında mı yer alacağını raporun header satırını seçtikten sonra (Header satırını seçmek için satırın başındaki gri alanı tıklamanız gerekmektedir) properties alanında RepeatOnNewPage alanının değerini True veya False yaparak belirleyebilirsiniz. Header satirini raporunuzda görüntülenmemesi için solda yer alan header, detail ya da footer menülerinden herhangi birine sağ tıklayıp açılan menüden table header seçeneğini tıklamanız yeterli olacaktır. Kaldırdığınız header alanını tekrar eklemek isterseniz ise yine aynı işlemi yapmanız gerekmektedir. Ayrıca properties kısmında bu satıra yazılacak bilgilerin arka alan rengi, yazı stili, boyutu, çerçevenin rengi, tipi gibi ayarlamaları da properties penceresinden yapılabilmektedir.
Detail: satırı verilerin yer aldığı asıl raporunuzun oluştuğu alandır. Buraya görüntülenmesini istediğiniz verilerinizi daha önceden oluşturduğunuz veri kümenizden ilgili alanı sürükle bırak mantığıyla ilgili sütuna yerleştirmenizle raporda veritabanınızdaki değerlerin yer alması sağlanmış olacaktır. Veritabanınızdaki bütün veriler için detail satırı uzayacak ve raporu görüntüleyeceğiniz zaman verilerinizin miktarına göre tablonun genişliği artacak ya da azalacaktır. Daha önceden asp ile rapor hazırlayanların hatırlarsanız öncelikle bir recordset oluşturulur daha sonra recordset’in sonuna varılana kadar çalışacak bir döngü oluşturulur ve oluşturulan bu döngünün içinde html kodları kullanılarak öncelikle yeni bir satir ve gerekli olan sütunlar oluşturulup her sütunun içine değerler recordset’ten yazdırılır ve recordset bir sonraki kayda ulaşabilmesi için ilerletilirdi. Artık bu işlemlerle sizin uğraşmanıza gerek yok. Rapor nesnesi olarak tabloyu koyduktan sonra tablonun detail kısmına görüntülenmesini istediğiniz verileri solda yer alan veri kümenizden sürükle bırak mantığı ile ilgili alana bırakarak yukarıda saydığımız asp için gerekli olan tüm işlemleri gerçekleştirmiş oluyorsunuz. Bütün detail satırının görsel ayarlamasını yapabileceğiniz gibi isterseniz sadece bir alan seçip o alanında properties özelliklerini ayarlayabilirsiniz.
Footer: satırında ise raporun sonunda görüntülenmesini istediğimiz bilgiler yazılmaktadır. Footer alanın en büyük özelliği ve kullanım avantajı veri kümenizden buraya eklediğiniz bir alanın toplamını size vermesindir. Dinamik bir değer koyduğunuzda size veritabanındaki o alanın değerleri toplamını otomatik olarak vermektedir. İsterseniz footer alanına statik bir değerde yazabilirsiniz.
Bu alaninda her sayfa sonunda görüntülenmesini ya da sadece son sayfada görüntülenmesini header alaninda oldugu gibi properties'in RepeatOnNewPage seçeneginden ayarlayabilirsiniz. Ayrica yine header alaninda oldugu gibi raporda tablo footer'in görmek istemiyorsaniz bu alani kaldirabilir ya da kaldirmissaniz tekrar ekleyebilirsiniz. Properties alanini kullanarak görsel düzenlemelerde yapabilirsiniz.
Bir örnekle açıklarsak; veritabanınızda müşteriler adında bir tablonuz olsun ve bu tabloda muşteri alan kodu, müşteri kodu, müşteri adı ve satış miktarını tutuyorsunuz. Raporunuzda da hangi müşterinize ne kadarlık satış yaptığınız ve toplam satış miktarınızı görüntülemek istiyorsunuz. Bunun için gerekli data source'u oluşturup data görünümünde data set için gerekli SQL'i yazıp çalıştırdıktan sonra Layout görünümüne geçtiğinizde veri kümenizde yer alan alanların çalışma sayfanızın solunda listelendiğini göreceksiniz.
Header alanındaki sütunlara sırasıyla Müşteri No, Müşteri Adı, Miktar yazdıktan sonra detail satırına veri kümenizdeki ilgili başlıklara karşılık gelen alanları ilgili sütunlara yerleştirdikten sonra footer alanında Müşteri adına karşılık gelen sütuna toplam: yazıp Miktar alanına karşılık gelen sütuna da aynı detail alanına eklediğiniz gibi veri kümenizdeki miktarı karşılık gelen alanı sürükle bırak ile toplam satışınızı raporun sonunda görüntüleyebilirsiniz.
Yukarıda layout görünümünde gördüğümüz tablonun preview görünümüne geçersek veri tabanımızdaki kayıtlara ve değerlere göre aşağıdaki gibi bir görünüm elde ederiz.

Eğer üç sütün size yeterli değil ve yeni sütunlar eklemek istiyorsanız yada mevcut bir sütünü silmek istiyorsanız bir sütunu seçtikten sonra o sütunun sağına veya soluna yeni sütün ekleyebilir ya da seçili sütunu silebilirsiniz. Bunun için sütünü seçtikten sonra sağ tıklayıp açılan menüden gerekli seçeneği seçmeniz yeterli olacaktır. Sütunların boyutlarını ayarlamayabilmek için sütunu seçip properties den width özelliğini istediğiniz ebatta belirleyebilirsiniz.
Raporunuzdaki verileri belirli bir kategoriye göre gruplamak isterseniz satırlardan herhangi biri seçili iken sağ tıklayıp insert group diyerek önce grubu eklemeniz gerekir. Grup ekledikten sonra tablonuzda artık header, detail, footer alanları dışında group header ve group footer alanları da yer alacaktır.
Yukarıda verdiğimiz örnekte alıcıları bölgelere göre 1,2,3,4 olmak üzere veritabanımızda gruplandırmış olalım ve kayıtları görmek istediğimizde verileri gruplara göre listeleyelim. Grupların ana toplamını alalım. Bunun için yapmamız gereken işlem de:
Grup eklemek için detail satırını seçip sağ tıklayıp insert group seçeneğini seçtikten sonra açılan pencereden general sekmesindeki expression alanına bu gruplandırmanın neye göre yapılacağını belirtip bu gruplandırma için bir isim verebilirsiniz. Ayrıca en alttaki checkbox‘ardan grubunuz ile ilgili her grup yeni bir sayfada yer alsın ya da grup başlıkları hep tekrar etsin gibi ayarlamaları da yapabilirsiniz.
Yukarıdaki örneğe göre müşteri alan koduna göre bir gruplandırma yapmak istersek, veritabanındaki kod alanını expression alanında seçiyoruz ve OK’ i tıklıyoruz. Artık grubumuz eklendi bu grup için neye göre gruplandırdığı belirtmek için grubun header alanının ilk hücresine Müşteri Alanı yazıp onun yanındaki hücreye de veri kümesindeki kod alanını sürükleyip bırakıyoruz.
Her grup içinde ne kadarlık satış yaptığımı belirtmek içinde group footer alanında satışların yer aldığı hücreye veri kümesinden satış alanını sürükleyip bırakıyoruz ve ondan bir önceki hücreye de Alan toplamı yazıyoruz. Artık her alan için ara toplam değerini rapor oluşturulurken kendisi hesaplayacak. Bu haliyle düzenlediğimiz raporum preview görünümünde aşağıdaki gibi görüntülenecektir.

İsterseniz aynı raporun header ve footer’inde olduğu gibi oluşturduğunuz grubun footer ve header’inin görünüp görünmemesini ya da propertiesinde görsellikle ilgili ayarlarını yapabilirsiniz.
Tablolarda birden fazla gruplandırma yaparak iç içe gruplandırma yapabilirsiniz ama tablolar sadece satırsal gruplandırmalara izin vermektedir.
İsterseniz raporunuzun ilk açıldığında sadece grupların ve bu grubun ara değer toplamının gözükmesini grubun detay bilgilerinin isteğe bağlı olarak grubunuzun başında yer alan artı işaretine tıklayınca açılmasını ya da açıksa da kapanmasını sağlayabilirsiniz böylelikle ilk bakışta sadece ana değerlerin görünüp sonra detayların görünmesi sağlanabilir. Bunun için yapmanız gerek ise layout görünümünde iken detail satırını seçip properties deki Visibility özelliğinin altındaki hidden alanını True yapıp ToggleItem alanını ise açılan listeden yaptığınız gruplandırmayı seçmeniz gerekmektedir böylelikle öncelikle veriler gruplu halde gözükecek gruba tıklananınca grubun içindeki detay bilgileri de görüntülenecektir.

MATRIS NESNESI
Verinin gruplarıyla yinelenen dinamik sütun ve satırlardan oluşmaktadır. Tablonun daha gelişmiş halidir.
Tablolarda sadece satırsal gruplama yapılabilirken matrislerde hem satırsal hem de sütunsal gruplandırma yapılabilmektedir.
Rapora Matris eklemek için toolboxdan matrisi seçip raporda görüntülenmesini istediğimiz alana tıklamanız yeterli olacaktır. Rapora Matris eklediğinizde ilk başta iki satır ve iki sütunluk bir alan görüntülenmektedir.

Rows veriler satırsal olarak gruplandırılacağında kullanılır. Veri tabanından aldığı değerlere göre görünüm sırasında asagiya dogru yeni satirlar ekleyerek genişleyen bir alandır.
Columns alanı sütunsal olarak veriler gruplandırılacağında kullanılır. Bu alana koyduğumuz nesne eğer veri kümemizdeki bir alan ise nasil Rows alanı tüm verileri gösterebilmek için asağiya dogru yeni satirlar ekleyerek tabloyu genisletiyorsa burada da yeni sütunlar ekleyerek yana dogru veritabanınızdaki kayitlar kadar tablonuz genişleyecektir.
Data alanina konulan nesne ise satir ve sütunsal olark yapmış olduğunuz gruplandırmanin kesişim noktasındaki değeri göstermektedir.
Yeni satır eklemek isterseniz Data alanına sağ tıklayıp add row, sütun eklemek içinde add column seçeneğini seçebilirsiniz. Bu işlem göstereceğiniz veriler için satir ve sütun eklemek içindir, eğer siz satırsal olarak yeni bir grup satır veya sütunun üzerindeki gri alana sağ tıkladıktan sonra add row group, sütunsal grup eklemek içinde add column group seçeneğini seçmeniz gerekecektir.
Matriste en az bir satırsal ve sütunsal gruplandırmanın olması gerekmektedir. Rows ve Columns alanlarına dinamik veritabanı alanları koymak zorunda değilsiniz statik bir başlıkta verebilirsiniz.
Tablo nesnesi ile Matris nesnesini bağdaştırmak isterseniz. Columns ve Rows alanlarını tablodaki header alanı, data alanını ise tablodaki Detail alanı gibi düşünebilirsiniz. Buradaki en önemli fark Header alanını statik iken yani sadece bir değer alabilirken buradaki satir ve sütunlar için verdiğimiz başlıklar duruma göre birden çok değer alabilmekte genişleyebilmektedir.
Satırlara sütunlara veya data bilgisine ToggleItem tanımlayarak isteğe bağlı detaylı görünmesini ya da görünmemesini sağlayabilirsiniz. Bunun için ToggleItem atamak istediğiniz hücreyi satiri veya sütunu seçtikten sonra aynı tabloda nesnesinde yaptığınız gibi Properties'den Visibility ile ilgili alanlara Hidden ve ToggleItem alanlarına gerekli değerleri vermeniz gerekmektedir.
LISTE NESNESI
Serbest formda veri bölgesidir. Tablo ve Matris'in aksine sadece satırsal ya da sütunsal değil hücre bazlıda işlem yapılabilir. Liste içinde textbox resim ve diğer veri bölgeleri ile form yapmada rapor nesnelerinden yararlanılabilir.
Liste nesnesini raporunuza eklediğinizde birden fazla rapor nesnesini veya veri kümesini bu alanın içine yerleştirebilirsiniz fakat yerleştirdiğiniz. Alanları gruplandırmanız tablo ve matrise göre daha zordur. Bu noktada eğer Liste nesnesi eklemek yerine madem kendim istediğim gibi yerleştireceğim ve gruplandırması daha zor o zaman direk raporumun body kısmına veri kümemdeki alanları ekleyeyim diye düşünce aklınıza gelmiş olabilir. Eğer böyle düşünüyorsanız yanılıyorsunuz çünkü liste nesnesini raporunuza eklemeden direk veri kümenizdeki bir alanı raporunuza eklerseniz sadece tek bir kayıt görüntülenecektir.
DİKKAT:Veritabanında yer alan bütün verilerin raporunuzda görüntülenebilmesi için, dahil ettiğiniz alanların mutlaka dinamik rapor nesnelerinin içerisinde olması gerekmektedir.
Liste nesnesinin içine statik alanlarda ekleyebilirsiniz fakat bu konuda dikkat etmeniz gereken nokta dinamik veriler tekrar ettikçe statik verilerde ekranda görüntülenecektir. Aşağıdaki ilk resimde hem sat atik hem de dinamik alanlar layout görünümünde listenin içinde yer almaktadır bu durumda raporunuzun nasıl görüntüleneceği hemen altında gösterilmiştir.


Aşağıdaki resimde ise bu sefer dinamik alanlarla birlikte statik alanlar da liste nesnesi kullanılmadan doğrudan formun body alanına eklenmiş ve bu durumda nasıl bir görüntü elde edildiği yine hemen altında belirtilmiştir.


Son olarak statik alan liste nesnesinin dışında dinamik alan ise liste nesnesinin içinde yer almaktadır. Sanırım bir rapor için en doğru görünüm aşağıdaki görünümdür.


Statik alanları illa liste nesnesinin dışında kullanacaksınız demekte yanlış olur çünkü bazı durumlarda statik alanında tekrar etmesi gerekebilmektedir.
GRAFIK NESNESI
Veriyi grafiksel gösteren veri bölgesidir. Verilerinizi her zaman sayısal değerlerle sunmak istemeyebilirsiniz bazen de karşılaştırmalı olarak görsel bir şekilde grafiklerle verilerinizi sunmak isteyebilir bu gibi durumlarda kullanabileceğiniz bir rapor nesnesidir. Yatay Çubuk, Dikey Çubuk, Pasta Dilimi, Doğru, Nokta gösterimi gibi değişik grafik seçenekleri mevcuttur. Toolbox’dan grafik nesnesini seçip raporunuzda görüntülemek istediğiniz alana tıkladıktan sonra ilk olarak bar şeklinde boş bir grafik eklemektedir.
Grafikte görüntülenmesini istediğiniz verileri grafiğin üstündeki drop data fields here yazan alana veri kümenizdeki ilgili alanı sürükleyip bırakarak ekleyebilirsiniz.
Grafikteki verilerin neye göre kategorize edileceğini belirlemek içinde veri kümenizdeki ilgili alanı grafiğin altındaki drop categories here yazan alana sürükleyip bırakmanız gerekmektedir.
Grafikte görüntülenen veri serilerini belirlemek içinde seri alanlarını drop series here yazan raporun sağındaki alana bırakmanız yeterli olacaktır.
Yukarıda kullandığımız örneklerden devam edersek Müşteri alanına göre gruplandırdığımız müşteri satışlarını bar şeklinde bir grafikte görüntüleyebilmek için layout görünümündeki şeklimizin aşağıdaki gibi olması gerekmektedir.

Yukarıdaki gibi hazırladığımız rapor görüntülenmek istediğinde aşağıdaki görüntü elde edilecektir.

Grafiğin tipini değiştirmek isterseniz grafik seçili iken sağ tıklayıp açılan menüden properties’i seçmeniz gerekmektedir.
Açılan pencere daha önce Excel’de grafik hazırlayanlar için hiçte yabancı olmadıkları bir penceredir. General, Data, X Axis, Y Axis, Legend, 3-D Effect, Filters sekmelerinden oluşmaktadır.
General sekmesinde grafik tipini belirleyebilir, grafiğinize isim verebilir, grafikte kullanabileceğiniz renk tipini belirleyebilirsiniz.
Data sekmesinde ise grafikte kullandığınız veri kümesinin ismi, değerler, kategoriler ve seriler yer almaktadır. İlk raporu oluşturduğunuzda sürükle bırak ile yerleştirdiğiniz alanlar burada görüntülenmektedir isterseniz siz bu alanları silebilir, değiştirebilir, sürükle bırak ile oluşturacağınıza bu alanlara gerekli değerleri yazarak ta oluşturabilirsiniz.
X Axis sekmesinde grafiğinizin X ekseni ile ilgili; başlıklar ortalı mı olsun etiket görünsün mü, başlık ne olsun, ölçeklendirme gibi ayarlamamaları yapabilirisiniz.
Y Axis sekmesinde Grafiğinizin Y ekseni ile ilgili; başlıklar ortalı mı olsun etiket görünsün mü, başlık ne olsun, ölçeklendirme gibi ayarlamamaları yapabilirisiniz.
Legend sekmesinde ise serilerinizin ne anlama geldiğini gösteren etiketinizin nerede ve nasıl görüntüleneceği ile ilgili ayarlamaları yapabilirisiniz.
3-D Effect sekmesinde iki boyutlu görünen grafiğinize perspektif verebilir, yatay ve dikey olarak belirteceğiniz açıdan görünmesini sağlayarak üç boyutlu bir grafik elde edebilmeniz için gerekli ayarlamaları yapabilirsiniz.
Filters sekmesinde ise grafiğinize eğer bir filtreye göre görüntülemek isterseniz kullanabilirsiniz. Size parametre ve filtre kullanımını daha sonraki yazılarımda anlatacağım.
Grafik nesnesini kullanırken dikkat etmeniz gereken bir nokta layout görünümünde grafiğin boyutunu nasıl belirlerseniz raporun görüntülenme aşamasındaki boyutunun da aynı olacağıdır. Liste, tablo, ya da matristeki gibi herhangi bir şekilde verinin durumuna göre genişlemesi söz konusu değildir.
SONUÇ
Bir raporda sadece bir veri kümesi kullanmak zorunda değilsiniz birden fazla veri kümesi oluşturup aynı anda birden fazla veri kümesinden aldığınız verileri tek bir rapor içinde kullanabileceğiniz gibi bir raporda birden fazla rapor nesnesi de kullanabilirsiniz.
Bu yazımda size statik ve dinamik rapor nesnelerini raporlarınıza nasıl ekleyebileceğinizden ve dinamik rapor nesneleri ile oluşturmuş olduğunuz veri kümesini nasıl ilişkilendirebileceğinizi anlattım kısaca hangi durumlarda hangi rapor nesnelerini kullanmanızın daha doğru olacağından bahsetmek gerekirse;
- Eğer verilerinizi sadece satırsal olarak gruplandıracak sütun alanlarınız sabit olacaksa tabloyu kullanmanız işinizi daha da kolaylaştıracaktır.
- Eğer hem satırsal hem de sütunsal gruplandırmalara ihtiyacınız varsa ve sütunlarınızın da satırlarınız gibi dinamik olması gerekiyorsa o zaman matris kullanmanız gerekmektedir.
- Matriste de Tabloda da işlemlerinizi satır ve sütun bazında yapabiliyorsunuz ve her bir hücreye sadece bir nesne ekleyebiliyorsunuz fakat sizin hücresel bazda gruplamaya ya da bir alana birden fazla nesne koymaya ihtiyacınız varsa o zamanda listeyi seçmeniz gerekmektedir.
- Eğer verilerinizi görsel olarak şekillerle ifade etmek istiyorsanız da grafik nesnesini seçmeniz gerekmektedir.
- Tablo, Matris ve Liste arasında seçim yaparken eğer önceliği tablo kullanarak çözmeye verin eğer tablo ile çözemiyorsanız o zaman matris ile çözmeyi deneyin oda ihtiyacınızı karşılamadıysa o zaman liste kullanın. Böylelikle verilerinizi gruplandırabilmeniz ve görsel tasarıma da hakim olmanız daha kolay olacaktır.
