Home » » Vb.Net Crystal Report Özel Alan Kullanımı

Vb.Net Crystal Report Özel Alan Kullanımı

Diyelimki bir program yaptık ve bu programda bir çok kişinin kişisel bilgileri mevcut ve bu bilgileri bir kağıda listeye dökmek istiyoruz.Bu listede bilgilerin sıralaması Ad-Soyad-Tc Kimlik No-Borç Durumu-Adres-Tel şeklinde olabilir.Ama bazen bu sıralamayı değiştirmek gerekebilir veya bunların yerine başka bilgilerin görüntülenmesini isteyebiliriz.Yani tamamen bizim isteğimizle esnek bir raporlama ve listeleme nasıl yapabiliriz ?



Öncelikle bir rapor dosyası açalım.Daha sonra "Parameter Fields" kısmından rapor başlığı ve listede kaç tane kolon istiyorsak o sayıda parametreyi raporun "PageHeader" kısmına ekleyelim.Ben 5 adet parametre ekledim.Bunlar çıkartacağımız listenin kolon başlıkları olacak.Yani Ad-Soyad-TCKimlik No diye kolonumuzun başlığı olacak.Ama bunların dediğim gibi sıralaması şu an belli değil.



Programımızdan hangi kolona hangi verinin geleceğini seçiyoruz.Bu seçime dayalı olarak programımızdan ilgili parametreye o veriyi gönderiyoruz.Mesela programımızdan diyelimki birinci sıralanacak kolonun "AD-SOYAD" olmasını istedik.O zaman programdan "Parametre1" e "AD-SOYAD" diye bir veri yollayacağız.Bu aynı zamanda bizim kolonumuzun başlığı olacak.Rapor içindeki parametrelere nasıl veri yollayacağını bilmiyorsanız kısaca anlatayım çünkü çok basit.

cryRpt.ParameterFields(i).CurrentValues.AddValue("Gönderilecek Bilgi")

Programımızdan parametreye bilgi göndermek için kullanacağımız kod işte bu. Burda "crypt" değişkeni rapor dosyasını atadığımız değişkendir.Bu konuda biraz daha bilgi almak isterseniz daha önce açmış olduğum şu konuya göz atabilirsiniz.Vb.Net 2010 Crystal Report Kullanımı
"ParameterFields" ise hangi parametreye bilgi gönderecğimizi söylediğimiz kısımdır.Burda "i" =2 olursa rapor dosyasında oluşturduğunuz 3. parametreye bilgi gönderirsiniz.



Şimdi asıl konumuza geldik."Formula Field" kısmından 5 adet özel alan ekliyoruz ben isimleri "Custom Field" diye yazdım siz istediğinizi yazabilirsiniz.Bunlar bizim verilerimizin çağrılacağı alanlar olacak.Bunları raporun "ayrıntılar" kısmına ekleyelim.



Daha sonra oluşturduğumuz bu "Formula Field" ın üzerine sağ tıklayıp "Edit" diyelim ve kod kısmına geçelim.Şimdi burası önemli.Biz programımızdan "Parametre1" e "AD-SOYAD" diye bir veri yollamıştık.Bu kolonumuzun başlığıydı.Burayı unutmayın.Şimdi burda yazacağımız kod ilede bu başlığın altında Ad-Soyad verilerini veritabanından çağrılmasını sağlayacağız.İşte oluşturduğumuz "Formula Field" kod kısmına yukarıdaki formülü girerek "Parametre1= AD-SOYAD" ise "Kutuk.Ad" (Kutuk= Tablo Adı)(Ad=Alan Adı) ve "Kutuk Soyad" verilerinin birleştirilerek veritabanından çağırmış oluyoruz.
Tüm Ad ve Soyad lar veritabanımızdan çağrılıp listelenmiş olacak.Böylelikle "Parametre1" e gelen veri neyse ona göre de altında listelenecek olan alanımızda hangi veri olacağını belirlemiş oluyoruz.Yukarıdaki "Crystal Report" formülü programdan gelebilecek her türlü veriye karşılık olarak hangi verinin veritabanımızdan çağrılması gerektiği tespit edilmiş.Diğer "Formula Field" lerde bu şekilde doldurulacak.

Her şey bittikten sonra raporlama sırasında basit ama çözümü bir o kadar da zor bir sorun daha karşımıza çıkacaktır.Buda alanların uzunlukları.Bilirsiniz her veri aynı uzunlukta değildir.Mesela bir Doğum Tarihi verisi kısadır ama Ad-Soyad verisi uzun olmalıdır.Burada sıralamanın nasıl olacağı belli olmadığı için oluşturduğumuz alanlara sabit bir uzunluk veremeyiz.Bu sebeple seçimimize göre bu alanların uzunluklarını ayarlamamız gerekiyor.
Bu yüzden programımızdan kullanacağımız kodları şu şekilde kısaca anlatayım.

cryRpt.ReportDefinition.ReportObjects.Item("Nesne Adı").Width = 1495
cryRpt.ReportDefinition.ReportObjects.Item("Nesne Adı").Left = 1400
cryRpt.ReportDefinition.ReportObjects.Item("Nesne Adı").ObjectFormat.HorizontalAlignment = Alignment.LeftAlign


Bu kod bizim rapor içindeki her nesneye ulaşabilmemizi sağlamaktadır."Nesne Adı" kısmına rapor dosyası içindeki nesnenin ismini girmemiz yeterli.Hatırlarsanız "Paramaetre1" ve "CustomField1" gibi isimler vermiştik.Bu isimleri kullanarak o nesnenin uzunlukları rapor üzerindeki koordinatları hatta sağa dayalı ortala gibi her türlü ayarlamayı yapabiliriz.



Yukarıdaki bir programın kesiti olan örnek resimde parametrelerin ve alanların uzunluklarının bir algoritma ile daha kolay nasıl yapıldığı görünmekte.
 
Support : Vaganzi
Copyright © 2013. Visual Studio Kod Bankası - All Rights Reserved
Powered By Vaganzi