Delphi - Adatbázis egyedi feltételrendszer szerinti szűrése

forráskód letöltése
Egy adatbázist, ha egy bonyolultabb feltételrendszer szerint szeretnénk szűrni, akkor nem igazán használható jól, ha a TTable Filter property-t használjuk fel. Persze erre a problémára is van egyszerű megoldás. Egy adatbázist, ha egy bonyolultabb feltételrendszer szerint szeretnénk szűrni, akkor nem igazán használható jól, ha a TTable Filter property-t használjuk fel. Persze erre a problémára is van egyszerű megoldás.

Mellékelt példában a szűrést az alábbi feltétel szerint végezzük el. Az a rekord kerül be az eredmény listába, melynél a C mező értéke igaz és a B mező valamint az E mező szorzatának eredménye nagyobb száznál.

Természetesen ennél jóval bonyolultabb összefüggéseket is megadhatunk, ahol a mezőkkel tetszőleges műveleteket végezhetünk, mielőtt eldöntjük, hogy a szűrt adatbázisba az adott rekord megfelel-e vagy sem.

Ehhez a TTable OnFilterRecord eseményét kell felhasználnunk. Ez az esemény létrejön az összes rekordra, így egyesével eldönthetjük, hogy melyikre van szükségük és melyikre nem. Az eseménynél kapunk egy Accept logikai típusú paramétert, melynek ha igaz értéket adunk, akkor az aktuális rekord bekerül az eredménybe, hamis esetén pedig kimarad abból.

Ha ezzel megvagyunk, akkor már csak a Filtered property-t kell igazra vagy hamisra állítanunk ahhoz, hogy a szűrést be, vagy ki kapcsoljuk.