Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#1

DBGrid sortieren nach Spalte und Ab- oder Aufwärts

  Alt 19. Nov 2003, 10:49
Hi,

hiermit kann man ein Grid egal auf welche Spalte man klickt entweder Auf- oder Abwärts sortieren.
Die Variable vor der Prozedurendeklaration, soll nur bedeuten das die Var in einer Klasse, oder Global oder ins Privat z.B. sein sollte, es geht auch da wo sie jetzt ist, sie darf nur nicht in der Prozedur sein, sonst ist es 1. nicht initialisiert und 2. könnte man sich sonst nie den letzten Wert speichern.
In der Zeile(ADODataSet1.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn ist das ASC nicht nötig das dies schon der Standardwert von Order ist.
Delphi-Quellcode:
var
  bSortOrder: Boolean;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
  sSortColumn: String;
begin
  sSortColumn := DBGrid1.Columns.Items[Column.Index].FieldName;
  ADODataSet1.Close;
  if bSortOrder then
  begin
    ADODataSet1.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn;
  end
  else
  begin
    ADODataSet1.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn + ' DESC';
  end;
  ADODataSet1.Open;
  bSortOrder := not bSortOrder;
end;
  Mit Zitat antworten Zitat