![]() |
Datenbank: Access • Zugriff über: ADO
DB Grid spalten sortieren
Hallo
Ich möchte in einem DBGrid spalten sortieren. Dazu verwende ich folgenden Code:
Delphi-Quellcode:
Aber ich kann leider den Fehler nicht finden. Vielleicht könnt ihr mir weiterhelfen?var bSortOrder: Boolean; btn_Caption: string; procedure TForm5.Alle(Sender: TObject); var btn_Caption: string; begin btn_Caption := (Sender as TButton).Caption; end; procedure TForm5.DBGrid1TitleClick(Column: TColumn); var sSortColumn: String; begin sSortColumn := DBGrid1.Columns.Items[Column.Index].FieldName; ADOQuery1.Close; if bSortOrder then if btn_Caption = 'Test1' then begin ADOQuery1.SQL.Text:= 'SELECT * FROM abc WHERE test like ' + QuotedStr(btn_Caption + '%') + ' ORDER BY ' + sSortColumn; end else begin ADOQuery1.SQL.Text:= 'SELECT * FROM abc WHERE test like '+ QuotedStr(btn_Caption + '%') + ' ORDER BY ' + sSortColumn + ' DESC'; end; ADOQuery1.Open; bSortOrder := not bSortOrder; end; |
Re: DB Grid spalten sortieren
Da btn_Caption eine lokale Variable ist, bringt der Code so nicht.
In der 2. Methode ist sie zudem unbekannt. Warum brauchst du für die Sortierungsrichtung einen eigenen Button und machst das nicht als Umkehrung bei weiterem Klick? |
Re: DB Grid spalten sortieren
Wie mache ich die Variable Global?
Ich habe 10 Buttons mit unterschiedlichen werten. Also ein Button holt mehrere Daten aus der DB. Und für jeden Button brauche ich dann so etwas. |
Re: DB Grid spalten sortieren
Und was steuern die Buttons? Globale Variablen sind selten ne gute Option.
|
Re: DB Grid spalten sortieren
Ein Button sieht so aus:
Delphi-Quellcode:
Sie unterscheiden sich nur durch das like"%"
procedure TForm5.Test(Sender: TObject);
begin ADOQuery1.Active:=false; ADOQuery1.Sql.Clear; ADOQuery1.Sql.Add('SELECT * FROM abc WHERE test like "we%" ORDER BY test asc '); ADOQuery1.Active:=true; end; |
Re: DB Grid spalten sortieren
Dann setzte doch nur die Abfrage bei Drücken der Buttons.
|
Re: DB Grid spalten sortieren
Ich versteh nicht ganz.
Aber ich möchte doch sortieren nach drücken des Button im DB Grid. Wenn ich da dann in die Spalte klicke. |
Re: DB Grid spalten sortieren
Warum brauchst du dann extra Buttons?
|
Re: DB Grid spalten sortieren
Über einen Button rufe ich etwas aus der Datenbank. Und dann soll es hinterher im DBGrid durch klicken auf die einzelnen spalten sortiert werden.
Und da ich immer verschiedene Datensätze aus der DB hole deswegen die ganzen Button. Muss es doch so laufen oder? |
Re: DB Grid spalten sortieren
Ich würde dann in privaten Membern die zuletzt sortierte Spalte und Richtung ablegen.
Beim Klick auf die Buttons dann die Abfrage Ändern. Keinesfalls würde ich die beiden Vorgänge, die unabhängig voneinander sind, zu einem machen zu wollen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 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