Hallo,
mein erster Beitrag und ich hoffe, dass Ihr mir gleich weiterhelfen könnt. Ich bin dabei eine kleine Datenbankanwendung zu schreiben zum Verwalten des Weinkellers
Ich speichere die Daten mit einem ClientDataSet in einer
XML-Datei und stelle sie in einem DBGrid dar. Nun möchte ich aber gerne, dass die Einträge zunächst nach Land und Region (also z.B. Deutschland - Nahe) sortiert werden und im zweiten Schritt dann noch alphabetisch nach Namen. Die Sortierung nach Land/Region habe ich bereits mit ein wenig Hilfe aus dem Forum selbst lösen können, das Problem ist nun noch die zusätzliche Sortierung nach Name.
Hier der Quellcode für die erste Sortierung:
Delphi-Quellcode:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
IndexName: string;
IndexFelder: string;
MaxIdx,
i: integer;
begin
indexfelder:='Land';
clientdataset1.IndexDefs.Update;
{ Fesstellen ob bereits ein Index mit den aktuellen Feldern existiert }
for I := 0 to Pred(clientdataset1.IndexDefs.Count) do
if (clientdataset1.IndexDefs.Items[I].Fields = IndexFelder) then
begin
if (not true) and (ixDescending in clientdataset1.IndexDefs.Items[i].Options) then
begin
{ Diesen Index als aktuellen Index der Tabelle aktivieren }
clientdataset1.IndexName := clientdataset1.IndexDefs.Items[i].Name;
exit;
end;
if (true) and (not (ixDescending in clientdataset1.IndexDefs.Items[i].Options)) then
begin
{ Diesen Index als aktuellen Index der Tabelle aktivieren }
clientdataset1.IndexName := clientdataset1.IndexDefs.Items[i].Name;
exit;
end;
end;
{ Neuen Namen finden }
MaxIdx := 0;
for i := 0 to Pred(clientdataset1.IndexDefs.Count) do
if Copy(clientdataset1.IndexDefs.Items[i].Name, 1, 4) = 'AUT_' then
MaxIdx := StrToInt(Copy(clientdataset1.IndexDefs.Items[i].Name, 5, 3));
Inc(MaxIdx);
IndexName := 'AUT_' + IntToStr(MaxIdx);
if true then
clientdataset1.IndexDefs.Add(IndexName, IndexFelder, [ixCaseInsensitive])
else
clientdataset1.IndexDefs.Add(IndexName, IndexFelder, [ixCaseInsensitive,
ixDescending]);
clientdataset1.IndexName := IndexName;
end;
Ich hoffe, dass mir irgendjemand dort behilflich sein kann.
Vielen Dank schonmal und viele Grüße aus dem hohen Norden
jackandthejuice