Neyse diyelim ki veritabanınız hazır field'lerden biri date olsun. Bunu istediğiniz formatta örneğin 'dd mmmm yyyy' gibi yazdırmak istiyorsunuz. Önceki sürümlerde ne uğraşırdık (Delphi 3 ten başlamış biri olarak. XE3 değil sadece 3). Şimdi Livebindings designer var.
Benim veritabanında Tarih ve Teklif adlı alanlardaki dataları lTarih ve Memo1 nesnelerine aktarım için livebindings designer şemasını görmektesiniz. BindsourceDB2'deki Tarih'e tıklayıp sürükleyerek lTarih'in Text'ine bağlıyoruz. Yani Veritabanımızdaki Tarih adlı alandaki veri lTarih adlı objemizin Text özelliğine aktarılacak.
Programı çalıştırıp da baktığımızda lTarih (TLabel) objesinin Text özelliğine 03.02.2016 gibi yazıldığını farkedeceksiniz. (ya da benzeri). İstediğim formatta bu nasıl aktarılacak peki?
BindSourceDB2 ile lTarih arasındaki bağlantı okuna tıklarsanız, object inspector'de göreceğiniz aşağıdakine benzer birşey olacaktır. CustomFormat özelliği boş olmak üzere tabiiki.
CustomFormat özelliğine şekildeki gibi istediğimiz formatta tarih yazdırabilmek için şunu yazıyoruz:
FormatDateTime('dd mmmm yyyy', (StrToDateTime(%s))
%s bizim normal basılan tarih text'timiz olmakta. Bunu ilk etapta datetime'a çevirip sonra formatdatettime fonksiyonunu çağırıyoruz. Bu metodlar nerede sadece bu formatdatetime ve strToDateTime mı var diyebilirsiniz. tabiiki hayır.
Bu linkte: http://docwiki.embarcadero.com/RADStudio/XE6/en/Default_LiveBindings_Methods
Sonuç resim aşağıda kod yazmadan livebindings designer ile işi kolay yoldan hallettik :)
Hiç yorum yok:
Yorum Gönder