DBGrid virgüllü sayi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

DBGrid virgüllü sayi

Mesaj gönderen naile »

Sayilarin DbGridde virgüllü görünmesini istiyorum. Query nesnesinde filedlarin DisplayFormati ile yapiliyor, bunu biliyorum ama benim daha degisik bir durumum soz konusu. Query nesneme sabit bir sql cümlesi yazip fieldlari ekleyemiyorum çünkü fieldlar kullanicinin istegine gore degisebiliyor. Yani bu virgulleme islemini rumtime yapmam lazim, ama nasil? DBGrid yerine Stringgrid kullanayim dedim arada baya bir hiz farki olustu. Ayni sonucu (donen sonuc sayisi arttikca aradaki fark da buyuyor) birinde 6 sn de digerinde 6 dk 20 sn de aldim. :roll:
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Runtime'da

Query1.Fieldbayneme('Alan1').DisplayFormat:='#,##'

diyerek istediginiz formati atamayi denediniz mi?
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Undeclared identifier: 'DisplayFormat'
:(
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7587
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

TNumericField(Table1.FieldByName('Species No')).DisplayFormat := '#,###';

şeklinde yazabilirsin. TNumericField yerine alan hangi tipte ise onu yazman lazım.

Kolay gelsin.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Evet yapiyor,tesekkürler. :)
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

DBGridle ilgili bir sorum daha olacak..yeni bir baslik açmayayim dedim...
StringAlignGrid adinda bir bilesen kullaniyorum onda AdjustColWidths ozelligi var. Yani kolonun width ini içinde yazili olan degerlere gore degistiriyor. DBGridde boyle birsey yapabilimiyiz? (ustteki sorumdaki olay yine geçerli yani runtime)

dbgrid1.Columns.Items[0].Width := 10;

gibi deigisiyor ama belli bir width degil, icindeki bilginin uzunluguna gore..
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Kolondaki butun degerleri sira ile gizli bir label'a atayarak maksimum boyda olan bulunup ona gore bir genisletme yapilabilir.

Fakat bu islemi butun tabloyu bastan sona tarayarak yapmak olayi biraz yavaslatabilir. Bu yuzden kayitlarin gride alinma anlarinda bu kontorl yapilabilir. mesela Ondrawdatacell eventine kod ekleyerek her sutun icin maksiumum genislik bulunabilir.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Teşekkürler verdiğiniz bilgiler için.. :)
Ben en iyisi bukadar ince şeylere dalmakdan vazgeçeyim :D Biraz mouse kullanıversinler, rapor hazırlıyorum yavaş çalışırsa busefer de niye yavaş bu rapor derler.
Saygılar..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Ek Bilgi

Mesaj gönderen Kuri_YJ »

Merhaba,

Ek bir bilgi vereyim belki biliyorsunuzdur ama yinede olsun,

Kod: Tümünü seç


  For intI := 0 To qrySorgu.FieldCount - 1 Do
  Begin
    If qrySorgu.Fields[intI].DataType = ftInteger Then 
      qrySorgu.Fields[intI].DisplayFormat = '#,##0' 
    Else If qrySorgu.Fields[intI].DataType = ftFloat Then 
      qrySorgu.Fields[intI].DisplayFormat = '#,##0.00' 
    Else If qrySorgu.Fields[intI].DataType = ftDate Then 
      qrySorgu.Fields[intI].DisplayFormat = 'dd.mm.yyyy' ;
  End ;
Gibi tüm fieldları kontrol ettirip formatlamasını runtime'da gerçekleştirebilirsin, hatta default size'larını belirleyip, örneğin integer field için size 20 olsun, string için 50 olsun gibi formatlarını da default bu döngü içersinde yaptırabilirsin.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Bazı DBGridler içinde özellikle Quantum Grid içinde AutoWith yada adjust with gibi birşey olacaktı bunlarda işini görebilir belki. Ama ben genede tecrübelerimden faydalanarak söyliyeyim müşterilere genede eksik şeyler çıkar ve beğenmezler :) o yüzden çok fazla incik boncuk la uğraşmayın.
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla