Hi,
ich verwende die TDBF-Komponente, um mit einer dBase-Datenbank zu arbeiten. Meine Tabelle wird in einen DB-Grid geladen.
Wenn ich dann mit der Maus auf den BDGrid-Titel (Spalte "PLZ") klicke, soll entweder ab- oder aufsteigend nach der Postleitzahl sortiert werden.
Hier mein Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| ... Procedure TMainForm.SortKundenDbf(IDXName, FeldName : String; absteigend : Boolean); begin try KundenDbf.DisableControls; with KundenDbf do begin Close; Exclusive:=true; Open; if absteigend then AddIndex(IDXName,FeldName,[ixDescending]) else AddIndex(IDXName,FeldName,[]); Exclusive:=false; First; end; finally KundenDbf.EnableControls; end; end;
Procedure TMainForm.KundenDBGridTitleClick(Column: TbsColumn); Var SortAb : Boolean; TitelCaption : String; t : TDbfIndexdef;
begin t:=MainForm.KundenDbf.IndexDefs.GetIndexByField('PLZ'); if (ixDescending in t.Options) then SortAb:=false else SortAb:=true;
TitelCaption:=Column.Title.Caption; if TitelCaption = 'PLZ' then SortKundenDbf('IDXPLZ','PLZ',SortAb); end; ... |
Das funktioniert (fast) bestens, nur muss ich ständig 2mal auf die Titel-Leiste ("PLZ") klicken, damit es ab- bzw. aufsteigend sortiert wird.
Ein "KundenDbf.IndexDefs.Update" hat auch nicht geholfen!
Ich weiß nicht wieso? Hat jemand einen Rat?
Gruß
Crowbar
Hups, bitte in die Rubrik "Datenbanken" verschieben. Danke!