Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie ein TClientDataSet.Filter definieren ? (https://www.delphipraxis.net/67867-wie-ein-tclientdataset-filter-definieren.html)

madina 21. Apr 2006 08:10


Wie ein TClientDataSet.Filter definieren ?
 
Hallo,

Fragen:

1. Wie konnte ich einen TClientDataSet.Filter definieren, daß er mir z.B. das Wort 'Klaus' mit allen möglichen Variationen groß/Kleinschreibung 'KLAUS' od. 'klaus' od. 'Main Klaus ist da' filtert.

2. Wie kann ich nachdem ich mit 1.TClientDataSet.Locate('sName', TEdit1.Text, [loCaseInsensitive, loPartialKey]) irgend ein Name gefunden habe, ein weiteren Namen suchen, daß er ab nächsten DS sucht (dh im 1.DS gefunden, er sucht dann ab 2.DS weiter)?

mfg

alzaimar 21. Apr 2006 08:41

Re: Wie ein TClientDataSet.Filter definieren ?
 
Normalerweise sollte man nur eine Frage pro Thread stellen....
1.Frage: Ich würde es über ein 'OnFilterRecord'-Event probieren.
2.Frage: Ich würde statt Locate ein Filter setzen, dann hat man sofort alle Datensätze, die dem Filterkriterium entsprechen.

madina 25. Apr 2006 08:17

Re: Wie ein TClientDataSet.Filter definieren ?
 
Hallo,

ich habe 2 Fragen zusammengestellt, weil die zusammenhängen.

zur Sache:

meine Frage ist, wie ich einen Filter definiere (Plus TClientDataSet.FilterOptions), damit er mir alle Variationen eines Wortes Groß/Klein Teilstring (*Klaus*) usw filtert.

mfg

alzaimar 25. Apr 2006 08:30

Re: Wie ein TClientDataSet.Filter definieren ?
 
Na ja, foCaseInsensitive sollte schonmal in den FilterOptions enthalten sein, und dann probieren. Sollte klappen. Ach ja, Filtered := True setzen (vergess ich immer).

Im Zweifelsfall ist ein OnFilterRecord aber flexibler.

madina 25. Apr 2006 09:13

Re: Wie ein TClientDataSet.Filter definieren ?
 
Hallo,

ich habe ausprobiert aber er filtert Groß/Kleinschreibung aber nicht Teilstring.

Weiterer Versuch brach mir Filter:= 'klaus*' nur Variationen, die nach Klaus Wörter stehen haben, aber nicht alle Strings, die vor Klaus andere Wörter enthalten z.B 'Hallo Klaus aus Berlin'.

Warum so ??

mfg

alzaimar 25. Apr 2006 20:46

Re: Wie ein TClientDataSet.Filter definieren ?
 
Ach so, Cursor auf FilterOptions, F1 drücken und dann ...
Zitat:

Zitat von Die Online-Hilfe von D6 Enterprise
When a string in a filter ends with an asterisk (*), it can be used to match partial strings. To disable matching of partial strings and to treat the asterisk as a literal character in string comparisons, set FilterOptions to include foNoPartialCompare.


marabu 26. Apr 2006 06:21

Re: Wie ein TClientDataSet.Filter definieren ?
 
Guten Morgen.

Der ADO Filter Value muss (und darf glücklicherweise) auch einen Stern am Beginn haben:

Delphi-Quellcode:
with ADOQuery do
  Filter := Format('YourStringField LIKE %s', [QuotedStr('*klaus*')]);
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz