[ matory @ 20.01.2005. 19:38 ] @
MBTabla1 je uradjena u paradox-u.

Zelim da kada filtriram tablu po nekom osnovu, posle toga saberem jednu kolonu.

MBTable1.Filtered:=true;
MBTAble2.filter:='naziv neke kolone='+quotedStr('uslov')+ 'AND naziv neke kolone >'+quotedStr itd itd....

Pa posle ovog da dobijem rezultat za jednu kolonu u toj tabeli npr. MBTable.fields[6].AsCurrency??

Probao sam sa While MBTAble.eof do... next petljom ali ona posmatra sve racorde u tabeli, a ja zelim samo filtrirane.

Unapred hvala za odgovore.
[ _v!rus_ @ 21.01.2005. 03:24 ] @
Kao prvo, ako koristis sledecu strukturu...
Code:

Tabela.Filter := 'Neko polje = ' + QuotedStr('Neka Vrednost) + ' AND '; //...
Tabela.Filtered := True;
Tabela.Active := True;
Ukupno := 0;
Tabela.First;
while not Tabela.Eof do
begin
  Ukupno := Ukupno + TabelaVrednost.AsFloat;
  Tabela.Next;
end;
//...

...NEMA SANSE da sabira recorde koji su izfiltrirani (nepozeljni), PROVERENO!!!

Kao drugo, mozes da koristis fkCalculated polja tako sto ces za tabelu staviti AutoCalc na True, pomocu [desni-klik-na-FieldEditor-tabele] izabrati New Field..., upisati naziv polja i za FieldKind staviti Calculated; Zatim dodas tabeli event OnCalcFields pomocu Obj. Ispectora i u njega upises nesto kao...
Code:

  TabelaVrednost.AsFloat := TabelaCena.AsFloat * TabelaKolicina.AsFloat;
  //Bez Edit i Post!

...naravno, podrazumevam da je polje Vrednost tipa fkCalculated, tj. polje koje si napravio na gorepomenuti nacin.

Ovo drugo se koristi kada treba kolone SVAKOG recorda ponaosob na neki nacin sumirati u novu kolonu TOG ISTOG recorda (Vrednost svakog artikla je njegova cena x njegova kolicina).
Ono prvo se koristi kada treba odredjena polja CELE TABELE sumirati (ili nesto drugo), ako je tabela filtrirana izfiltrirani recordi se PRESKACU dok se ne ukloni filter. Naveo sam ti oba nacina posto nisam bas razumeo sta ti konkretno treba...
Generalno, ako se postavi filter za odredjene vrednosti polja tabele, ta izfiltrirana polja kao da fakticki ne postoje u tabeli dok se ne ukloni filter, ne moze ih naci ni Locate a ni Prior, Next, itd...
[ broker @ 21.01.2005. 08:30 ] @
Probaj da umesto Filtera na TTAble koristis TQuery pa sam podesi filter u WHERE uslovu.
Ovo je i inace bolji nacin za filtriranje. Neces imati problema sa filtriranim slogovima a ako su ti potrebna calculated polja mozes ih napraviti vec u samom upitu.
[ matory @ 21.01.2005. 22:28 ] @
OK hvala, sve to radi.
Ja sam slicno uradio samo sam zaboravio
Table.Active:= true;

Sto se tice Querija pa znam da moze ali program je pisao neko drugi, a ja sam morao samo da ga doradim posle par godina koriscenja. Bilo bi mi suvise komplikovano da sve kvarim.

Jos jedno pitanje. Kada sam radio neke izvestaje u QReportu koristio sam AGGRE ili vec nesto slicno da saberem kolonu jedne table, a to je radilo i sa filterima.

Pa pitam cemu sluze recimo sledece naredbe:

Table.AggFields
Table.ApplyRange
Table.CancelRange
Table.SetRange
Table.SetRangeStart
Table.SetRangeEnd i td.