Šta je novo?

delphi pitanje?

ToxiC

Čuven
Učlanjen(a)
12.12.2002
Poruke
2,560
Poena
679
imam u tabeli neke vrednosti u jednoj koloni (naravno brojevi)
sa cime da izracunam njihovu ukupnu sumu i upisem u neko polje van tabele na formi? :wall:
p.s.
pocetnik u Delphi-ju!
 
ToxiC je napisao(la):
imam u tabeli neke vrednosti u jednoj koloni (naravno brojevi)
sa cime da izracunam njihovu ukupnu sumu i upisem u neko polje van tabele na formi? :wall:
p.s.
pocetnik u Delphi-ju!

Ako se do sada nisi bavio programiranjem (99%) prva stvar je upoznavanje sa sintaksom i pravilima datog jezika (u tvom slucaju Object Pascal, od skora zvanicno Delphi), znaci neka knjiga itd. Ako si se bavio programiranjem a ne znas ovo...... pa....... opet knjiga, ako ti treba savet za knjige posalji pm .... ;)
 
Ako koristiš ClientDataSet, lako je:
- kreiraš new field za željeni cds.
- kao field type postavi da je Aggregate.
- u ObjectInspectoru za kreirano Aggregated polje upiši za svojstvo Expression: sum(naziv kolone za koju računaš sumu) i svojstvo Active postavi na True.
- za cds postavi svojstvo AggregatesActive na True.
- postavi kontrolu npr. DBEdit na formu i podesi DataSource/DataField na cds/aggregated polje.
- thats it.
 
Poslednja izmena:
Nekako imam osecaj da je u pitanju TStringGrid, a ne db-aware kontrola za TDataSet.
 
Procedure recimo klik na taster
var Suma:real;
n:integer;
begin
Suma:=0;
Table1.First;
For n:=1 to Table1.recordcount do
begin
Suma:=Suma+Table1.FieldByName('imekolone koju sabiras').AsFloat;
Table1.Next;
end;
// ovo ti je upis Sume kolone u Edit ili sta ti odaberes;
Edit1.Text:=FloatToStr(suma);
end;


Valjda ce ti ovo pomoci ako razumes....
 
Poslednja izmena:
Kako bi ovaj kod izgledao ako bi bio u Unit2 ?
(U Unit1 jedan je dodato
uses ....,Unit2; )
 
Cartman je napisao(la):
Kako bi ovaj kod izgledao ako bi bio u Unit2 ?
(U Unit1 jedan je dodato
uses ....,Unit2; )


U unitu2 dodas proceduru recimo Total// ime procedure
iznad private napises: procedure Total;

negde dole u uniti posle neke procedure napises

Procedure TUnit2.Total;// Umesto Unit2 treba ime forme kojoj pripada unit2
var Suma:real;
n:integer;
begin
ne znam kako si uradio formu ali umesto Unit1 treba ime forme
recimo
if Forma1=nil then exit; // znaci ako nije kreirana forma ne radi proceduru
Suma:=0;
Table1.First;
For n:=1 to Table1.recordcount do
begin
Suma:=Suma+Table1.FieldByName('imekolone koju sabiras').AsFloat;
Table1.Next;
end;
// ovo ti je upis Sume kolone u Edit ili sta ti odaberes;
Forma1.Edit1.Text:=FloatToStr(suma);
end;

ili
if Forma1.visible=true then
begin
Suma:=0;
Table1.First;
For n:=1 to Table1.recordcount do
begin
Suma:=Suma+Table1.FieldByName('imekolone koju sabiras').AsFloat;
Table1.Next;
end;
// ovo ti je upis Sume kolone u Edit ili sta ti odaberes;
Forma1.Edit1.Text:=FloatToStr(suma);
end
else exit;
end;

Ako ti nije jasno ili mozda ja nisam shvatio sta hoces ti mi objasni
malo bolje na [email protected] i daj svoj Email da ti uradim kod.
 
Poslednja izmena:
A kad bi koristili Query za računanje te sume? Jednostavnije je, a nema ni petlji, dodatnih promenljivih...
Kod:
select sum(ime kolone koju sabiras) as Suma
from NazivTabele

onda je:
Kod:
Edit1.Text:=Query1Suma.AsString;
 
Poslednja izmena:
@dogriz
uspeo mi je onaj kod od ketty-ja
posto sam krenuo sa tabelama da radim, gde konkretno ispiujem taj kod sa query-jem:
select sum....
 
Koju bazu koristiš i koje kontrole za rad sa bazom?
Paradox, BDE, DBExpress, Interbase...
 
Poslednja izmena:
@ToxiC: evo ti jedan primer korišćenja Query-a u attach-u.

@ketty: Šta to Query zeza pod XP-om?
 

Prilozi

  • Primer.zip
    1.6 KB · Pregleda: 54
dogriz je napisao(la):
@ToxiC: evo ti jedan primer korišćenja Query-a u attach-u.

@ketty: Šta to Query zeza pod XP-om?



Recimo ako je baza velika i racunanje traje malo duze a ti za to vreme pokusas da RADIS NESTO U NEKOM DRUGOM PROGRAMU ILI jednostavno kliknes misem na formu dodje do pucanja programa jer u queryu ne mozes da napises aplication.procesmessage posto nema table da joj zadas next vec
query radi direktno u bazi.
 
ketyy je napisao(la):
Recimo ako je baza velika i racunanje traje malo duze a ti za to vreme pokusas da RADIS NESTO U NEKOM DRUGOM PROGRAMU ILI jednostavno kliknes misem na formu dodje do pucanja programa jer u queryu ne mozes da napises aplication.procesmessage posto nema table da joj zadas next vec query radi direktno u bazi.

Vidiš, to nisam probao. Paradox i BDE više ne koristim, a i kad sam ga koristio baze nisu bile velike. Sad su tu DBExpress i Interbase...
 
Nazad
Vrh Dno