AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DB Grid spalten sortieren
Thema durchsuchen
Ansicht
Themen-Optionen

DB Grid spalten sortieren

Offene Frage von "Jack23"
Ein Thema von Jack23 · begonnen am 10. Okt 2007 · letzter Beitrag vom 10. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#1

DB Grid spalten sortieren

  Alt 10. Okt 2007, 20:34
Datenbank: Access • Zugriff über: ADO
Hallo

Ich möchte in einem DBGrid spalten sortieren.

Dazu verwende ich folgenden Code:

Delphi-Quellcode:

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 = 'Test1then
  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;
Aber ich kann leider den Fehler nicht finden. Vielleicht könnt ihr mir weiterhelfen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 20:42
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?
Markus Kinzler
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#3

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 20:55
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 20:57
Und was steuern die Buttons? Globale Variablen sind selten ne gute Option.
Markus Kinzler
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#5

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 20:59
Ein Button sieht so aus:

Delphi-Quellcode:
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;
Sie unterscheiden sich nur durch das like"%"
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 21:06
Dann setzte doch nur die Abfrage bei Drücken der Buttons.
Markus Kinzler
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#7

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 21:15
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 21:16
Warum brauchst du dann extra Buttons?
Markus Kinzler
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#9

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 21:18
Ü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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: DB Grid spalten sortieren

  Alt 10. Okt 2007, 21:23
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:09 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