AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Client Data Set suchen nach Stichwörter/Einzelnen Buchstaben
Thema durchsuchen
Ansicht
Themen-Optionen

Client Data Set suchen nach Stichwörter/Einzelnen Buchstaben

Ein Thema von Luki206 · begonnen am 29. Mär 2014 · letzter Beitrag vom 31. Mär 2014
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

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

  Alt 30. Mär 2014, 16:34
Filtern
Es werden nur Datensätze angezeigt die dem Suchmuster entsprechen. Dazu wird das Event OnFilterRecord verwendet.
Mit Verlaub, aber das ist nicht richtig. Auszug aus der Delphi-Referenz:

TClientDataSet.OnFilterRecord
Wird jedes Mal ausgelöst, wenn ein anderer Datensatz in der Datenmenge aktiviert und ein Filter verwendet wird.

TClientDataSet.Filter
Gibt den Text des aktuellen Filters einer Datenmenge an.

TClientDataSet.Filtered
Gibt an, ob für die Datenmenge ein Filter aktiv ist.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

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

  Alt 30. Mär 2014, 18:23
Wenn eine DataSet gefiltert werden soll, dann muss Delphi-Referenz durchsuchenTDataSet.Filtered auf True und entweder man schreibt etwas in Delphi-Referenz durchsuchenTDataSet.Filter und/oder benutzt den Event

Delphi-Referenz durchsuchenTDataSet.OnFilterRecord:

Wenn der Datensatz die Kriterien erfüllt, dann setzt man einfach Accept auf true und der Datensatz wird in der gefilterten Menge mit angezeigt. Ansonsten einfach auf False und der Datensatz gehört nicht mehr zur gefilterten Menge.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Mär 2014 um 18:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

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
Luki206
(Gast)

n/a Beiträge
 
#4

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

  Alt 31. Mär 2014, 15:28
Ok Danke für die Rückmeldungen @Perlsau: ich hatte Daddy H's Rat befolgt. Nur habe ich nicht in der Online-Hilfe gesucht sondern in Delphi-Treff bei dem MyBase Tutorial aber was ich dort gefunden habe reicht eigentlich, aber eure Lösungen/Denkanregungen werde ich im Hinterkopf behalten
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

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

  Alt 31. Mär 2014, 18:27
In Perlsaus 2. Link (Rest nicht danach überprüft) ist ja auch mein % aufgeführt. Das % nicht einfach so vergessen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz