[ epehlic @ 03.03.2008. 18:29 ] @

molim pomoc,
pokusavam napraviti program za rad s bazom podataka, pojavila mi se potreba da nakon sto bazu filtriram
po jednom upitu, da tako dobivene rezultate filtriram po nekom drugom upititu.

npr. iz comboboxa izaberem i filtriram prvo po prezimenu, a da nakon toga izaberem iz drugog comboboxa
i ranije dobiven rezultat filtriram po imenu ili necem drugom.

evo ako kod mene to izgleda:

procedure TPretragaFrm.Edit1Change(Sender: TObject);
begin
table1.Filtered:= true;
if combobox1.ItemIndex = 1 then
Table1.Filter := 'JMBG ='''+Edit1.text+'*''';
if combobox1.ItemIndex = 2 then
Table1.Filter:='Ime='''+Edit1.text+'*''';
if combobox1.ItemIndex = 3 then
Table1.Filter := 'Prezime ='''+Edit1.text+'*''';
end

ja kad idem drugi put s filter opcijom, filtrira mi cijelu bazu, a ne ranije dobiven rezultat.
[ savkic @ 03.03.2008. 23:24 ] @
>
> if combobox1.ItemIndex = 1 then
> Table1.Filter := 'JMBG ='''+Edit1.text+'*''';
> if combobox1.ItemIndex = 2 then
> Table1.Filter:='Ime='''+Edit1.text+'*''';
> ja kad idem drugi put s filter opcijom, filtrira mi cijelu bazu, a ne ranije dobive

To je ono što si napisao, ovako potpuno menjaš filter. Filtriranje u okviru dobijenih filtriranih rezultata nećeš moći tako da dobiješ, ovako će morati da se ponovo prođe kroz sve slogove u tabeli. Potrebno je da navedeš sve uslove zajedno, npr. Ime = 'PERA' and Prezime = 'Zika'; Inače, upotreba filter propertija nije previše efikasno rešenje, bolje je koristiti OnFilterRecord a najbolje koristiti odgovarajući SQL upit.