AGB  ·  Datenschutz  ·  Impressum  







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

Grid über DataSet sortieren

Ein Thema von hirnstroem · begonnen am 28. Sep 2006 · letzter Beitrag vom 21. Nov 2006
Antwort Antwort
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Grid über DataSet sortieren

  Alt 28. Sep 2006, 07:30
Datenbank: MS Access • Version: kA • Zugriff über: ADO
'loha Folks,

mit der folgenden Prozedur lasse ich mir ein DBGrid sortieren:

Delphi-Quellcode:
procedure TIWUSerSession.UserManagementSortBy(const AFieldname: string);
var
  ID: Integer;
begin
  ID := Trunc(ADODataSet_AccessUserUserID.Value);
  with ADODataSet_AccessUser do
  begin
    Close;
    try
      IndexFieldNames := AFieldname;
    finally
      Open;
    end;
  end;
end;
Dies funktioniert ganz gut, aber leider nur in eine Richtung (aufsteigend). Nun wollte ich einmal nachfragen, wie ich diese Prozedur dazu bringe nur noch absteigend zu sortieren, um letztenendes auf- und absteigend sortieren zu können. Und wenn mir jemand sagt das geht nicht, mach ich es halt über eine SQL Abfrage.

thx und Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat
Peinhard

Registriert seit: 8. Jul 2006
152 Beiträge
 
#2

Re: Grid über DataSet sortieren

  Alt 28. Sep 2006, 08:44
Das geht über die ADO-Eigenschaft Sort viel bequemer und flexibler:

Delphi-Quellcode:
procedure TIWUSerSession.UserManagementSortBy(const AFieldname: string);
begin
  with ADODataSet_AccessUser do
  begin
    //Close; //kann bzw muß sogar offen bleiben
    Sort := AFieldname+'ASC'; // +'DESC';
  end;
end;
Siehe dazu auch hier
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Grid über DataSet sortieren

  Alt 28. Sep 2006, 09:02
Wow, das sieht sehr vernünftig aus dieses Sort.

Vielen Dank

Grüsse
hirnstroem

[Edit]

So sieht die Sache nun aus:

Delphi-Quellcode:
procedure TIWUSerSession.SortBy(Sender: TADODataSet; const AFieldname: string);
begin
  if Sender.Sort = AFieldname + ' ASCthen
  begin
    Sender.Sort := AFieldname + ' DESC';
  end
  else if Sender.Sort = AFieldname + 'DESCthen
  begin
    Sender.Sort := AFieldname + ' ASC';
  end
  else
  begin
    Sender.Sort := AFieldname + ' ASC';
  end;
  Sender.Open;
end;
Kann für jedes DataSet wiederverwendet werden und sortiert sortierte Daten immer anderst herum oder unsortiertes aufsteigend und danach abwechselnd bei jedem Klick.
inde deus abest
  Mit Zitat antworten Zitat
Else

Registriert seit: 27. Apr 2006
Ort: Essen
4 Beiträge
 
#4

Re: Grid über DataSet sortieren

  Alt 21. Nov 2006, 08:26
Hallo,

wie kann ich genau dieses Problem über ein SimpleDataSet lösen? Dort gibt es diese Funktionalität wie beim ADO nicht.

Gruß
Gruß Else
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:02 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