Merhaba arkadaşlar bu 3. yazım Cyrstal Report hakkında oldu. Aslında birkaç örnekle rapor dizaynlarını ileride de uzman düzeyde örneklerle sizlerle paylaşmayı düşünüyorum önceki yazılarımda 1 ve 2. bölümlerde sizlere Cyrstal Report da almak istediğim bir rapor için hata kodundan olaya daldık şimdi ise bambaşka bir yerden çıktık.
Durum Analizi -2 yazımda sizlere formun çıkışını aldığımı fakat istediğim şekilde alamadığımı belirtmiştim. Neydi önce biraz bahsedeyim.
Öncelikle raporumuzu alacağımız database stununda boş olan kayıtlar istediğimiz kayıtlar ve diğer kayıtlar vardı.
İstediğimiz : msip_tarih stununda eğer rapor tarihinden önceki tarih kayıtları varsa mevcut raporda KALIN olarak yazı tipini yazacaktı.
Sorunlar : data içerisinde boş kayıtlar, günün tarihiyle aynı kayıtlar, ileri tarihte kayıtlar ve geçmiş tarihte kayıtlar mevcut.
Şu halde ki istediğimiz sadece rapor tarihinden önceki tarihler yani bugün ayın 04.04.08 ise bu tarihten önceki bir kayıt varsa onlar KALIN yazı tipi diğerlerinin hepsi NORMAL yazı tipi ile yazılacak.
Önceki yazımda durum analizi -2 sizlere boş olan dataları NORMAL yazı tipi ile yazdıramadığım fakat diğerlerini yapabildiğimi söylemiştim. Şimdi Uğur Çullukçu abim sağolsun sistemime login oldu kodlarımı inceledi ve bana aşağıdaki şekilde kodları sistemime eklememi söyledi.
Benim yazdığım kodlarda formül bölümüne ” oltar ” değişkenini eklemiştim. Sonrada yazının raporda yazılacağı bölümü sağ tıklayıp format field kısmından Font a gelelerek şu kodları eklemiştim.
FORMULA FIELD :
oltar değişkeni için :
if {xsiparis_masterRECORD.msip_tarih}<>"" then cdate({xsiparis_masterRECORD.msip_tarih}) else
cdate (0,0,0)
Format FIELDT :
Tarih için formüller :
if {@oltar} = CurrentDate then crRegular else
if {@oltar} > CurrentDate then crRegular else
if {@oltar} < currentdate then crbold else crregular
Tabi bu formüllerle BOŞ OLAN KAYITLAR HARİÇ diğerlerini yapabildim ama boş kayıtları bir türlü İNCE yani NORMAL yazı ile yazdıramadım.
ÇÖZÜM : ( Sorunsuz çalışan komutlar )
UĞUR ÇULLUKÇU KLASİĞİ :
// crItalic
// crBoldItalic
//if {@oltar} = CurrentDate then crRegular else
//if {@oltar} > CurrentDate then crRegular else
//if {@oltar} < currentdate then crbold else crregular
//if {@oltar} < CurrentDate then crbold else
//if {@oltar} =cdate(0,0,0) then crBold else crregular
//if {@oltar} <> CurrentDate then crRegular else crblack
if {xsiparis_masterRECORD.msip_tarih}="" then crregular else
if {@oltar} < CurrentDate then crbold else crregular
// Düzenleme by Uğur Çullukçu Abi sen bu işi biliyorsun helal sana...! 04.04.08
// Eğer ölçü tarihi Günün tarihinden önce ise SEMT stunu otomatik olarak KALIN Oluyor..
İşte budur. Sorun çözüldü….
SONUÇ :
İstediğimiz gibi yani rapor tarihinden önceki kayıtlar KALIN yazı tipi ile diğer tüm kayıtlar ve boş kayıtlar NORMAL yazı tipi ile raporumuza yansıdı.
Teşekkürler Uğur Abi..