Hallo,
ich habe eine Funktion, die Daten aus der
DB ausliest. Das Auslesen aus der
DB und Anzeigen im TreeView funktioniert soweit.
Im TreeView sehen meine Daten folgendermaßen aus:
2000
--Xyz
----Test
2000
--Abc
----Test1
2000
--Abc
----Test2
Ich möchte aber, dass es folgendermaßen aussieht
2000
--Xyz
----Test
--Abc
----Test1
----Test2
Kann mir da jemand weiter helfen
Vielen Dank im Voraus
Ayumi
Delphi-Quellcode:
function TDataModule1.fuelleTreeView( var TreeView1: TTreeView):boolean;
var
i : integer;
VkampagneRec : PKampagneRec;
vJahrTreeNode : TTreeNode;
vKundeTreeNode : TTreeNode;
vProduktTreeNode : TTreeNode;
vKampagneTreeNode : TTreeNode;
vMutterTreeNode : TTreeNode;
begin
try
vMutterTreeNode := nil;
begin
with ADODataSet1 do
begin
close;
CommandType := cmdText;
CommandText := 'select ' +
'decode (to_char(max(a.sttmact), ''yyyy''), '''', ''unbekannt'', to_char(max(a.sttmact), ''yyyy'')) Jahr, ' +
'c.advert, c.product, c.ccamp, c.icamp ' +
'from campaign c, actions a ' +
'where c.ccamp = a.ccamp(+) ' +
'group by c.ccamp, c.icamp, c.product, c.advert ' +
'order by jahr, c.advert, c.product, c.icamp';
Open;
First;
end;
while not ADODataSet1.Eof do
begin
new(vKampagneRec);
//datum, kunde, produkt, kampagne aus der Datenbankselektion lesen
vKampagneRec^.rec_Jahr := ADODataSet1.FieldByName('Jahr').AsString;
vKampagneRec^.rec_Kunde := ADODataSet1.FieldByName('advert').AsString;
vKampagneRec^.rec_produkt := ADODataSet1.FieldByName('product').AsString;
vKampagneRec^.rec_kampagne := ADODataSet1.FieldByName('icamp').AsString;
vJahrTreeNode:=TreeView1.Items.AddObject(vMutterTreeNode,ADODataSet1.FieldByName('Jahr').AsString, vkampagneRec);
vKundeTreeNode := TreeView1.Items.AddChildObject(vJahrTreeNode, ADODataSet1.FieldByName('advert').AsString, vKampagneRec);
vProduktTreeNode := TreeView1.Items.AddChildObject(vKundeTreeNode, ADODataSet1.FieldByName('product').AsString, vKampagneRec);
vKampagneTreeNode := TreeView1.Items.AddChildObject(vProduktTreeNode, ADODataSet1.FieldByName('icamp').AsString, vKampagneRec);
ADODataSet1.next;
end;
result := true;
end;
except
begin
result := false;
end;
end;
end;