ich habs mal versucht umzusetzen..
Delphi-Quellcode:
procedure TfrmMain.GetObjects();
var
ListItem: TTreeNode;
i: integer;
AktGroup: Integer;
begin
lvProjekte.Items.Clear;
dsGetObjects.Active:=false;
dsGetObjects.CommandText:='select * from objects_tbl';
dsGetObjects.Active:=true;
dsGetObjects.First;
for i:=0 to dsGetObjects.RecordCount -1
do begin
AktGroup:=dsGetObjects.Fields.Fields[1].AsInteger;
if dsGetObjects.Fields.Fields[1].AsInteger = AktGroup
then begin
if dsGetObjects.Fields.Fields[1].AsInteger <> AktGroup
then AktGroup:=dsGetProjects.Fields.Fields[1].AsInteger;
dsGetGroupID.Active:=false;
dsGetGroupID.CommandText:='select bezeichnung from groups_tbl where id= '''+IntToStr(AktGroup)+'''';
dsGetGroupID.Active:=true;
with lvObjects.Items
do begin
ListItem := Add(nil, dsGetGroupID.Fields.Fields[0].AsString);
AddChild(ListItem, dsGetObjects.Fields.Fields[2].AsString);
end;
dsGetProjects.Next;
end;
end;
end;
Er setzt zwar die Einträge nach Anzahl der Daten im recordcount, aber er wählt nicht das nächste Obejekt, welches in einer anderen Gruppe stehen würde.