Filtern
Es werden nur Datensätze angezeigt die dem Suchmuster entsprechen. Dazu wird das Event OnFilterRecord
verwendet.
Mit Verlaub, aber das ist nicht richtig. ...
Ich bin davon ausgegangen dass ein
Volltextfilter für alle Felder des Datasets durchgeführt werden soll.
Die eingebauten Fähigkeiten des Datasets sind dafür aber nicht ausreichend weshalb auf jeden Fall Sourcecode nötig wird um eine gute und allgemeingültige Lösung zu finden.
Dazu das Kochrezept:
Delphi-Quellcode:
Accept := False;
for i := 0
to Dataset.Fields.Count-1
do
begin
f := Dataset.Fields[i];
if not f.IsNull
and f.Visible
then
begin
// Ggf. müssen bestimmte Feldtypen ausgeschlossen werden (Felder mit binärem Inhalt, TBlobField)
s := f.Text;
// die WildCompare Funktion liefert True wenn ein String auf das Suchmuster, das ? und * enthalten darf, passt
// passende Funktionen findet man hier in der DP
// Wer mag kann dafür auch reguläre Ausdrücke einsetzen (könnte aber den Benutzer damit überfordern)
if WildCompare(s, suchpattern)
then
begin
Accept := True;
break;
end;
end;
end;