[ smjesko @ 15.05.2005. 10:01 ] @
Dragi moji, imam problem. Imam jednu gdb bazu, sada imam tabelu racun u toj tabeli imam cijena(ascurrency) i kolicina(float) to dvoje sam ubacio u tabelu i prikazujem u dbgrid. kako sada da napravim da mi iz svih unosa dbgrida cijenu sabire u jedno polje npr. edit
[ Djuki @ 15.05.2005. 11:00 ] @
Code:

Edit.Text = FloatToStr (Tabela.FieldByName('Cena').AsFloat * Tabela.FieldByName('Kolicina').AsFloat );


Ovo ubaciš u događaj AfterScrool Tabele, na primer.

Ali ono što sam primetio je da koristiš gdb, to jest Firebird bazu, pa bih ti stoga i preporučio delphi komponente sa kojima sam radio a koje su odlične i pružaju puno mogučnosti. U pitanju su FIB komponente, ako ih nemaš potraži na googlu ako ne pomogne mogu ja da ti ih pošaljem samo kaži.
[ smjesko @ 15.05.2005. 11:05 ] @
pa sad netreba mi u afterscroll nego na ondelete ili onchange :) nebitno, upravo sam trazio te komponente nisam ih mogao naci pa ako ti nije problem da mi ih posaljes na mail [email protected]. hvala ti unaprijed
[ smjesko @ 15.05.2005. 11:07 ] @
uhh cekaj samo malo: Edit.Text = FloatToStr (Tabela.FieldByName('Cena').AsFloat * Tabela.FieldByName('Kolicina').AsFloat );
ja sa ovim samo mnozim ta dva polja, ali meni treba da on tu vrijednost sabira npr.

cijena kolicina
1 4
2 1
1 1

sada on meni treba da u tom editu izracuna vrijednost svega tj da u editu pise 7 razumijes na sta mislim?
[ DelphiBoy @ 16.05.2005. 07:07 ] @
Najlakse ti je da sve uradis preko upita, tj. postavi komponentu IBQuery (ako koristis te komponente) i postavi upit "select sum(kolicina*cena) as ukupno where broj_racuna=...". Mozes da izvrsis taj upit na zeljene dogadjaje npr onDelete i slicno.
Preporucio bih ti da postavis index na broj_racuna zbog brzine izvrsavanja upita.
Nadam se da sam ti pomogao...
[ dogriz @ 16.05.2005. 07:12 ] @
Ako koristiš ClientDataSet, rešenje je vrlo jednostavno:

- kreiraj Calculated polje koje treba da ti prikazuje Kolicinu*Cenu na nivou jednog zapisa u tabeli i nazovi to polje npr. CenaUkupno
- u OnCalcFields za to polje unesi kod:
Code:

ClientDataSet1CenaUkupno.Value:=ClientDataSet1Kolicina.Value*ClientDataSet1Cena.Value;

- kreiraj novo polje tipa Aggregate (npr. neka se zove Svega) i u Expression mu zadaj: sum(CenaUkupno) i dobićeš ukupan iznos koji ti treba
[ Djuki @ 16.05.2005. 12:50 ] @
Smeško nije ti dobar mail ! pošalji mi na PP.
[ smjesko @ 19.05.2005. 13:30 ] @
ee tnx :) ovo radi sve :D jupi al sada mi samo jos jedno dugmence treba koje ce obrisati iz baze selektovani red u dgbridu :D kako to izvesti ja sam pokusao sa:

dbgrid1.selectedrows.delete;
i on obrise al nakon refresha ono opet isto :(