dbgrid ve para formatı sorunu?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

arkadaşlar dbgridde sayılar 25 şeklinde gözüküyor son sıfırları 25,00 almıyor ben hepsinin gözükmesini istiyorum ne yapmalıyım
sql veri tabanım var decimal türde rakamları edit ten giriyorum selamlar
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Battosai »

:ara :ara :ara
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

aradım aşşağıdakini buldum hata veriyor kodda eksiklik oldu galiba
datasource onchange'ine

Kod: Tümünü seç

Kod: Tümünü seç
   Formatcurr('0.00,##YTL',alanadı.Ascurrency);

Kod: Tümünü seç

procedure TForm4.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Formatcurr('0.00,## YTL',ZQuery1.Ascurrency);
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

yapamadım biri anlatırsa memnun olurum
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Lost Soul »

tasarım anında dbgrid yerine tablonuzdaki olmasını istediğiniz alana gelin ve
valuemask a da mask benzeri özelliğine olmasını istediğiniz biçimi verin

veya

yine tasarım anında gridinizin ilgili column'a gelin ve DataField'indeki valuemask ya da mask (neyse artık hatırlamıyorum şu an :))
özelliğine istediğin biçimi atayın.


veya

çalışma anında sql ile sorgu yapıyorsanız tablonuzun ilgili fieldine istediğinizi maskı verin.

veya


en başta bu alana float, doouble yerine currency tipi vermiş olsaydınız program otomatikmen TL so eki ile birlikte iki tane sıfır atardı.
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

yaa Allah razı olsun ancak ben zqurey kullandığım için fields add yapamıyorum query was empty hatası veriyor
kodlarla nasıl yapılıyor onu bulamadım
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

en başta bu alana float, doouble yerine currency tipi vermiş olsaydınız program otomatikmen TL so eki ile birlikte iki tane sıfır atardı.
mysql ile değiştirebiliyoruz ya türünü baktım currency tip yok seçeneklerde yok biri geliyor float yap diyo biri çıkıyor decimal yap diyo anlamadım gitti :lol:
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Lost Soul »

pelitt yazdı:
en başta bu alana float, doouble yerine currency tipi vermiş olsaydınız program otomatikmen TL so eki ile birlikte iki tane sıfır atardı.
mysql ile değiştirebiliyoruz ya türünü baktım currency tip yok seçeneklerde yok biri geliyor float yap diyo biri çıkıyor decimal yap diyo anlamadım gitti :lol:
bazı veritabanlarında money tipi olarak geçer.
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

valla baktım enum vs. var m ile başlayan sadece mediumint var
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Lost Soul »

TFloatField(MyQuery.fieldByName('MyField').DisplayFormat := '0.00'

TFloatField o kaydın float tipi olduğuna ikna için :P
MyQuery : Sizin tablonuz
MyField : Biçimlemek istediğiniz alan
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

olmadı :(

Kod: Tümünü seç

procedure TForm4.FormCreate(Sender: TObject);
begin

dbgrid2.Visible:=false;
zQuery1.Close;

  zQuery1.SQL.Add('Select UYE.ADI,UYE.BLOK,HESAP.AIDAT,HESAP.AODEME,HESAP.YAKIT,HESAP.YODEME,HESAP.AY,HESAP.YIL,HESAP.NOTC,HESAP.ID From UYE,HESAP Where UYE.ID=HESAP.KIM' );
  zQuery1.Open;
  TFloatField(zQuery1.fieldByName('aidat').DisplayFormat:='0.00';
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

TFloatField(zQuery1.fieldByName('aidat'). buraya kadar kod doğru fakat DisplayFormat kod hatırlatıcıda gözükmüyor Displayname Displaytext var
beyuslu
Üye
Mesajlar: 46
Kayıt: 20 Nis 2009 11:08

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen beyuslu »

ascurrency ile falan ugrasma...

formatfloat('##,##,## TL, Sayı');

Kolay Gelsin..
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

beyuslu yazdı:ascurrency ile falan ugrasma...

formatfloat('##,##,## TL, Sayı');

Kolay Gelsin..
selamlar dediğinizi yapıyorum ancak nafile hata veriyor kullanma şeklim

xaidat=formatfloat('##,##,## TL, edit1.text');
olmadı

ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil) values'+'('+idm+','+formatfloat('##,##,## TL, xaidat');+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+')';
bunu denedim buda olmadı

birde amacım dbgridde 20,00 şeklinde göstermek yani kaydı elimle sql yapıyom yinede 20 ye dönüyor niye böyle oluyor anlamadım
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Battosai »

MySQL de parasal alan yoktur. Kullandığınız veritabanın özelliklerini bileceksiniz. Parasal veri için decimal kullanılır decimal(11,2) yapabilirsin...2 ondalık kısmı ifade eder...
Ayrıca MySQL veri grişi sırasında (,) virgül kabul etmez ondalık ayracı (.) noktadır...
zqurey kullandığım için fields add yapamıyorum query was empty hatası veriyor kodlarla nasıl yapılıyor onu bulamadım
Yani sanki biliyormuş gibi cevap vermişsin...Acaba query was empty hatasını neden veriyor biliyormusun...ya hiç bir yerden Database uygulamaları hakkında bilgi edinmeden neden program yapmaya çalışılır anlamam...Öyle olsaydı Her Query bileşeninin SQL diye bir property si olduğunu bilirdin....İlk önce tablonun SQL string'ini belirlersin sonra Query üzerine çift tıklayıp seçilen alanlara ulaşabilirsin...
Cevapla