Aşağıdaki örneği c++builder kullanarak yaptım. Eminim bir çok arkadaşın işine yarayacaktır. Hatalarım için şimdiden affola.
aşağıdaki kod bu yapıdaki tablomuzu ağaç yapısına çevirmektedir.
Database imiz aşağıdaki gibidir.
Node_________Açıklama____root
01.___________--__________E
02.___________--__________E
01.01.
01.01.01.
02.01.
02.01.01.
03. -- E
04. -- E
01.01.02. vs....
Kod:
void __fastcall TForm2::PNode(TpFIBQuery *Qu,TTreeNode *tn,TTreeNodes *List)
{
TpFIBQuery *Que;
if(Qu->FieldByName("NODE")->IsNull) return;
tn = List->AddChild(tn,Qu->FieldByName("ACIKLAMA")->AsString);
Que= new TpFIBQuery(this);
Que->Database=DM->Database;
Que->Options=Que->Options<<qoTrimCharFields;
Que->SQL->Add("select * from deneme where node like '"+Qu->FieldByName("NODE")->AsString+"%' and char_length(node)="+IntToStr(Qu->FieldByName("NODE")->AsString.Length()+3));
Que->ExecQuery();
while(!Que->Eof)
{
PNode(Que,tn,List);
Que->Next();
}
delete Que;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
TpFIBQuery *Que;
Que= new TpFIBQuery(this);
Que->Database=DM->Database;
Que->Options=Que->Options<<qoTrimCharFields;
Que->SQL->Add("Select * from DENEME where ROOT='E'");
Que->ExecQuery();
while(!Que->Eof)
{
PNode(Que,NULL,TreeView1->Items);
Que->Next();
}
delete Que;
}