Etiketler ‘bad date format string’

Bad Date Format String Cyrstal Report Bir Uğur Çullukçu klasiği -3

Cuma, Nisan 4th, 2008

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..

Bad Date Format String Cyrstal Report Durum Analizi -2

Cuma, Nisan 4th, 2008

Merhaba arkadaşlar önceki yazımda sizlere Cyrstal Report programında dizayn ettiğim bir raporun formülünde takıldım kaldım. Şuan sizlere daha önceki kodlarda birkaç hata yaptığımı ve BAD DATE FORMAT hatasını neden aldığımı anlatmak istiyorum.

Benim database içerisinde önceki yazıda belirttiğim msip_tarih stununda boş olan kayıtlar var.. Yani stun içerisinde data olamayan hücreleri formül okumaya kalktığında bu hatayı veriyor.

Rapor alırken BAD DATE FORMAT STRING hatasını aldım.Bu soruna sebep olarak 2 etken var demiştim bunlardan 1. yani msip_tarih stunundaki boş kayıtları doldurdum ve sonunda gördüm ki bu hata ortadan kalktı..

Peki ne yapabiliriz ? Hiç boş kayıt olmamalı mı ? Ya unutursak ne olacak ?

Problem :

1. Eğer günün tarihi database> sip_tarih stununda yazılı olan tarihten küçükse KALIN font olarak rapora yazacak.

2. Eğer günün tarihi database> sip_tarih stununda yazılı olan tarihten büyükse NORMAL font olarak rapora yazacak.

3. Eğer günün tarihi database> sip_tarih stununda yazılı olan tarihe eşit ise NORMAL font olarak rapora yazacak.

4. Eğer database > sip_tarih stununda hiçbirşey yazmıyorsa o zaman NORMAL font olarak rapora yazacak.

Sorun 4. maddeden dolayı ortaya çıkıyordu. Bunu önceki yazımda yazmamıştım çünkü öküzlemesine gitmiştim problemi tam analiz edemediğimden ortaya çıktı.
Çözüm :

cyrstal2.jpgİlk denediğim çözüm tam bir öküzlemesine kod yazmaktı doğal olarak Formül editörü beni uyardı… Şimdi ise boş kayıtlar için yani database>siptarih stunundaki boş kayıtlar için bir formül girmem gerekiyor.

FORMÜL bölümüne “oltar” adında bir değişken tanımladım ve sağ taraftaki resimde de gördüğünüz gibi bu değişkene aşağıdaki formülü girdim.

if {xsiparis_masterRECORD.msip_tarih}<>"" then cdate({xsiparis_masterRECORD.msip_tarih})
else cdate (0,0,0)

bu formül sayesinde Bad Format String hatasından kurtulacağız. Çünkü program rapor çıkartırken dataları okuyor ve bizim formülümüzle ilişkilendiriyor. Bizim formül içerisinde boş kayıtlar için bir şartlandırma yani işlem verilmediğinden dolayı tarih bulamayınca yani kayıt boş gelince karşımıza BAD FORMAT STRING hatasını vermekteydi.

cyrstal1.jpg Şimdi formülümüzü ise sağ taraftaki resimde de gördüğünüz gibi yazdığımız bölüme giriyoruz yani yazının raporda yazılacağı yeri sağ tıklatıp FORMAT FIELD sekmesine geliyoruz. Buradan da FONT bölümüne gelip X2 formül kısmımızı açıyoruz.

Aşağıdaki değerleri girince formülümüz çalışacaktır.

// crRegular
// crBold
// crItalic
// crBoldItalic
if {@oltar} > CurrentDate then crRegular else
if {@oltar} < CurrentDate then crBold else
if {@oltar} = CurrentDate then crRegular else
if {@oltar} <> CurrentDate then crRegular else crblack

// Eğer ölçü tarihi Günün tarihinden önce ise SEMT stunu otomatik olarak KALIN Oluyor..
// Düzenleme by TEAkolik.com Otomatik ölçü alındı bilgisi 03.04.08 13:10

Sonuç :

Artık bad format date string hatası almıyoruz. Çünkü ” oltar ” değişkenimiz içerisine yazdığımız

if {xsiparis_masterRECORD.msip_tarih}<>"" then cdate({xsiparis_masterRECORD.msip_tarih})
else cdate (0,0,0)

Bu kodda eğer msip_tarih srununda <>”" yani boş kayıt var ise onları 0,0,0 olarak tanımladık. Yani orada değer varmış gibi davranmaya başladı.

Güzel harika rapor çalıştı ….

Yanız bir sıkıntı var…

Rapor tarihinden önceki kayıtlar KALIN yazılıyor.
Rapor tarihinden sonraki kayıtlar İNCE yazılıyor.
Rapor tarihi ile aynı kayıtlar İNCE yazılıyor.
m_sip tarih olmayan kayıtlarında İNCE yazmıyor malesef….. KALINLA yazıyor…

Demekki bir hata daha buldum :) Şimdi sorun ise tarih olmayan kayıtlarıda ince yazmak ama kalın yazıyor nedendir ?
Çözünce sizlerle bunuda paylaşacağım…

Sanırım en iyisi bir uzmana danışmak…

Uğur Abi Uğur Çullukçu bu işin uzmanıdır diyebilirim. Bir danışayım bakayım nasıl bir çözüm önerecek….

Uğur abi help me pls… takıldım valla uyuz oldum bad format tamam şimdi de istediğim gibi rapor vermiyor…. Hırrrrrrr

Bad Date Format String Cyrstal Report Uyuz oldum bu hataya…

Perşembe, Nisan 3rd, 2008

Merhabalar arkadaşalar. Bir süredir site üzerinde pek yazamadım kusura kalmayın N.Ş.A da hergün bir yazı yazarım fakat şu Cyrstal Report ‘u elime aldım alalı tüm vaktimi bu programa ayırıyorum diyebilirim.

Cyrstal Report ‘da bir rapor ekranı dizayn ediyorum ve “BAD DATE FORMAT STRING” hatası ile karşılaştım. Kullandığım kodlar ise…

if cDate ({xsiparis_masterRECORD.msip_tarih}) < CurrentDate then crBold else
if cDate ({xsiparis_masterRECORD.msip_tarih}) > CurrentDate then crRegular else
if cDate ({xsiparis_masterRECORD.msip_tarih}) = CurrentDate then crRegular else crblack

Fakat karşıma BAD DATE FORMAT hatasını getirince takıldım kaldım. Sizlere kodu biraz açıklayayım..

1. Eğer günün tarihi database> sip_tarih stununda yazılı olan tarihten küçükse KALIN font olarak rapora yazacak.

2. Eğer günün tarihi database> sip_tarih stununda yazılı olan tarihten büyükse NORMAL font olarak rapora yazacak.

3. Eğer günün tarihi database> sip_tarih stununda yazılı olan tarihe eşit ise NORMAL font olarak rapora yazacak.

Fakat malesef rapor alırken BAD DATE FORMAT STRING hatasını aldım.

Bu soruna sebep olarak 2 etken var…

1. msip_tarih stunu boş olan kayıtlar yapabilir.

2. Database tarih formatı GG/AA/YYYY iken bizim gün tarihi AA/GG/YYYY olması sebep olabilir.

Yani aslında kodlar arasında şunu yazabilirsem sanırım sorunum çözülecek..

” Eğer tarih yanlış yazılmış ise ince font olarak yaz” demesi kolay da bunu bir türlü yazamadım :) Neyse bir yerde hata yapıyorum ama bulunca sizlere yazarım.

Theme : N.Design Studio Türkçe : TEAkolik V.2.7 Altyapı : Wordpress
RSS Yorumlar RSS Giriş


RSS Abonesi olabilirsiniz.