Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ClientDataSet, TFmtBCDField DisplayFormat problem

[es] :: Pascal / Delphi / Kylix :: ClientDataSet, TFmtBCDField DisplayFormat problem

[ Pregleda: 3082 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

delalt

Član broj: 68360
Poruke: 198
81.93.74.*



Profil

icon ClientDataSet, TFmtBCDField DisplayFormat problem20.12.2005. u 20:47 - pre 223 meseci
Koristeći ClientDataSet, DataSource i DBGrid za prikaz podataka,
imam sledeći problem: ako se za polje tipa TFMTBCDField u ClientDataSetu
(koje se automatski dobije kao takvo učitavajući podatke iz baze gdje je
definisano kao NUMERIC(9,4) koristeći SQLQuery komponentu i 'SELECT * FROM ...')
postavi DisplayFormat npr. '#,##0.00' onda dobijeni prikaz u gridu
zavisi od konkretnog podatka:

0,25 izgleda kao ,25
20,00 izgleda kao 20
15,55 izgleda kao 15,55
23,45 izgleda kao 23,45
3,90 izgleda kao 3,90
4,00 izgleda kao 4

Ovo je u Delphiju 2005, a u Delphiju7 je malo bolje, dodaje nulu ispred zareza.
Znači, korektno radi prikaz samo ako postoji i cijeli i decimalni dio.
I ovo je uslovno, ako se prikazuje na drugi broj decimala onda je opet drugačije
(npr. za '#,##0.0' 3,95 prikaže kao 4 a kad se unese 4 okruglo
onda ga prikaže kao 4,0)...
Goglajući našao sam da je najvjerovatnije problem samo sa TFMTBCDField, dok se kod
tipa TFloatField ovo ne pojavljuje. Izgleda da ne zavisi ni od SQL servera,
ja koristim Firebird, a drugi su isti problem imali npr sa PostgreSQL, Oracle...
Čudno je što se godinama vuče taj problem u Delphiju???
Da..., koristim XP i probao sam mijenjati postavke za regionalna podešavanja,
regiju, tastaturu, DecimalSeparator, Customize, ali u principu je isto.
Kako vi to rješavate?

[Ovu poruku je menjao delalt dana 21.12.2005. u 22:52 GMT+1]
 
Odgovor na temu

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 108
*.201.eunet.yu.

ICQ: 156892888


+1 Profil

icon Re: ClientDataSet, TFmtBCDField DisplayFormat problem21.12.2005. u 05:16 - pre 223 meseci
Probah sa
DisplayFormat=#,0.00
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.74.*



Profil

icon Re: ClientDataSet, TFmtBCDField DisplayFormat problem21.12.2005. u 21:55 - pre 223 meseci
Ne radi ni DisplayFormat := '#,0.00'

Nije problem u obliku kako je napisan DisplayFormat. Problem je izgleda greška
u FMTBcd unitu, pa uopšte ne prepoznaje dobro oblike za DisplayFormat kod ovog
tipa polja.
Na primjer funkcija:
FormatFloat('#,##0.00;(-#,##0.00);NULA', 1234.56) prikaže 1.234,56
FormatFloat('#,##0.00;(-#,##0.00);NULA', -1234.56) prikaže (-1.234,56)
FormatFloat('#,##0.00;(-#,##0.00);NULA', 0.0) prikaže NULA
kao što i treba, tj. prepoznaje format za pozitivnu, negativnu i nula vrijednost.

Kad se koristi DisplayFormat := '#,##0.00;(-#,##0.00);NULA'
onda to izgleda ovako:
1,234,560;(0000000);NULA
-1,234,560;(-0000000)
00000;(-00000);NULA
tj. ne prepoznaje i ne razdvaja posebno formate nego ih dodaje na onaj osnovni,
a izgleda da i taj osnovni ne koristi dobro.
Primjer
DisplayFormat := '#,##0.0' za 3.96 prikazuje 4 a trebalo bi 4,0

U svakom slučaju hvala na pomoći, bilo kakva ideja je dobrodošla :)
 
Odgovor na temu

marcha
Nikola Marcic
Beograd/Leskovac

Član broj: 6454
Poruke: 108
*.160.eunet.yu.

ICQ: 156892888


+1 Profil

icon Re: ClientDataSet, TFmtBCDField DisplayFormat problem22.12.2005. u 08:04 - pre 223 meseci
U pravu si. Ovo je Delphi BUG i jos uvek je otvoren.

http://qc.borland.com/wc/qcmain.aspx?d=2711
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
81.93.74.*



Profil

icon Re: ClientDataSet, TFmtBCDField DisplayFormat problem22.12.2005. u 10:51 - pre 223 meseci
Izgleda da se to godinama vuče i još nema nekog rješenja,
ili ja u osnovi nešto nisam postavio kako valja?
Postoji li nekakav zaobilazni način, onaj tip polja mi baš odgovara u bazi,
ne bih prelazio na float - ako baš ne moram.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ClientDataSet, TFmtBCDField DisplayFormat problem

[ Pregleda: 3082 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.