Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Client Data Set suchen nach Stichwörter/Einzelnen Buchstaben

  Alt 30. Mär 2014, 18:38
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;
fork me on Github

Geändert von sx2008 (30. Mär 2014 um 18:41 Uhr)
  Mit Zitat antworten Zitat