Decimalni deo i DBgrid

1

Decimalni deo i DBgrid

offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

Imam tabelu sa numerickim poljima u decimalnom obliku, problem mi predstavlja da prikazem u grid-u decimalni deo sa 0 (na pr. 2.30) jer mi u gridu prikazuje samo 2.3; druge vrednosti razlicite od 0 pokazuje normalno. Da napomenem da u tabeli je upisano pravilno 2.30 i u DB exploreru prikazuje normalno.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24130
  • Gde živiš: Wien

Pricam sada malo napamet posto nikada nisam koristio DBGrid...
Ako ti nije bas toliko bitno da se taj broj i dalje vodi kao integer, onda ga prevedi u string pre nego sto ga ubacis u tabelu.
Ili, probaj Format pre ubacivanja u tabelu. Imas ovde lep primer za Format:
http://www.delphibasics.co.uk/RTL.asp?Name=Format&ExpandCode2=Yes

Mozda jos korisnije - naredba FloatToStrF:
http://www.delphibasics.co.uk/RTL.asp?Name=FloatToStrF



offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

Bitno je da ostane float ali nisi me razumeo. ja vec dobijam gotovu tabelu i samo citam vrednosti, ali kad ih prikazem u DBGrid-u nule u decimalnom delu su odsecene. Bitno je oda ostane float i da ima i nule u decimalnom delu zbog integracije u drugi program koji radi obradu podataka.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Moram da pitam... kakve veze ima integracija sa drugim programom i prikaz podataka u DBGrid-u? Smile

Da odredis nacin na koji ce se podatak prikazivati u data-aware kontrolama koristi DisplayFormat property TField (ili neke druge klase koje je nasledjuje) objekta koji predstavlja zeljeno polje. Za izgled kontrole kada se podatak edituje koristi EditFormat property. Imas detaljno upuststvo za koriscenje u Delphi Help-u.

offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

Zaglavih sa ovim nocas..nisam uspeo Sad

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Pardon... moja greska u prethodnom postu... nema TField klasa te propertye, nego TNumericField.
DBGrid uzima podatke iz neke tabele, querya ili neceg slicnog. Te klase obicno imaju Fields property. Dovoljno je da uradis sledece:
TNumericField(ADOTable1.Fields[0]).DisplayFormat := '#.00';

Prvo polje ce se uvek prikazivati na 2 decimale (ako je broj npr. 1 prikazace se kao 1,00).

Ako ti je lakse da poljima pristupas preko imena mozes da napises:
TNumericField(ADOTable1.FieldByName('Kolicina')).DisplayFormat := '#.00';

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 1819
  • Gde živiš: Beograd

A u data source kojim izvlacis podatke iz tabele, kako si definisao...

Evo zbog tebe sam otvorila neki svoj stari kod, i pogledala kako sam ja to radila i koliko mogu da vidim bitno je da kod datasource-a lepo definises polja

offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

E..zato meni ispadose oci nocas Smile Nema veze..mislim da ce ovo raditi posao. Tnx

@Jelena: Polja su vec ranije definisana, ali pogledacu sutra opet.

Dopuna: 08 Feb 2006 12:50

Ovaj nacin sa TNumericField radi ali me zanima jos nesto.
Ima li neki nacin da mi prikaze sva float polja sa dve decimale, da ne kucam za svako polje posebno kako ce da ga prikazuje?

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Mislim da nema... jedini nacin bi bio da kopiras Delphi unit u kojem je definisan TNumericField u folder gde se nalazi tvoj program i da promenis constructor tako da DisplayFormat po defaultu bude #.00

Mada, ne vidim zasto bi bilo tesko napraviti jednu proceduru koja bi za sve TNumericField postavila format kakav zelis... cela procedura bi bila ovakva:
procedure SetDisplayFormat(aField: TFields; aFormat: String); var   I: Integer; begin   for I := 0 to aField.Count - 1 do     if aField[I] is TNumericField then       TNumericField(aField[I]).DisplayFormat := aFormat; end;
Pozivas je ovako:
SetDisplayFormat(Tabel1.Fields, '#.00');
Ti uradi kako zelis.

P.S.
Pisao sam iz glave pa je moguce da u kodu ima neka greska, ali sustina je jasna.

offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

Radi uz malo izmene, aF definisano 2x. Glupo izgleda sto svim brojevima dodaje .00 ali sta da se radi.

Pozz

Ko je trenutno na forumu
 

Ukupno su 459 korisnika na forumu :: 35 registrovanih, 4 sakrivenih i 420 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1798 - dana 19 Sep 2019 18:42

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aljosa7, bieffe, caesar, CIBORG, CUCLA70, d.arsenal321, dane007, darkangel, Georgius2, goxin, husky, i.jovanovich, ivan979, JOntra, kozi, krkalon, Kubovac, ljuba sd, LUDI, madza2, Mihajlo2, milos.cbr, NoOneEver Dreams, novator, Raptor12, RJ, royst33, StepskiVuk2, Toni, virked, VJ, vlvl, Wisdomseeker, yufighter