Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Locate im Zusammenhang mit ab- und aufsteigender Sortierung (https://www.delphipraxis.net/91978-locate-im-zusammenhang-mit-ab-und-aufsteigender-sortierung.html)

Crowbar 12. Mai 2007 18:37

Datenbank: dBase • Zugriff über: TDBF

Locate im Zusammenhang mit ab- und aufsteigender Sortierung
 
Hallo,
ich lade eine DBase-Tabelle in einem DBGrid. Wenn der Anwender mit der Maus auf die Titelleiste klickt, soll es entweder aufsteigend oder absteigend sortiert werden. Nun, dies funktioniert soweit prima.
Zusätzlich gibt es eine Edit-Feld, worin der Benutzer die Anfangsbuchstaben z.B. eines zu suchenden Namen eingeben kann.

Ist der Index aufsteigend sortiert, klappt es prima, d.h. z.B. Eingabe von "m" und das DBGrid springt zum ersten Namen, der mit "m" beginnt.
Sobald jedoch der Index absteigend sortiert ist, wird erst zum richtigen Datensatz gesprungen, wenn der zu suchende Name komplett in das Edit-Feld eingegeben wurde.
z.B. Name = "mustermann" => erst bei vollständiger Eingabe von "mustermann" wird auf den Datensatz gesprungen (natürlich vorausgesetzt, dass der Name in der Datenbank existiert)

Wieso ist das so? Gibt es dafür eine Lösung?

Hiermit wird entweder ab- oder aufsteigend sortiert:
Delphi-Quellcode:
...
with KundenDbf do
 ...
  if absteigend then AddIndex('IDXNAME','NAME',[ixDescending]) { Sortierreihenfolge absteigend }
  else
   AddIndex('IDXNAME','NAME',[]); { Sortierreihenfolge aufsteigend }
 ...
 end;
...
Das steht in meiner "OnChange" - Routine vom Edit-Feld:
Delphi-Quellcode:
...
MainForm.KundenDbf.Locate('NAME',NameSuchEdit.Text,[loCaseInsensitive,loPartialKey]);
...
Gruß
Crowbar


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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