線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1562
推到 Plurk!
推到 Facebook!

如何將資料庫轉換為多階層樹狀結構?

答題得分者是:ccchen
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-11 00:56:02 IP:61.216.xxx.xxx 未訂閱
【Delphi】【問題】如何將資料庫的欄位資料轉成TreeView樹狀結構? http://delphi.ktop.com.tw/topic.php?TOPIC_ID=35419    只能完成,兩階層樹狀結構! 如何將資料庫轉換為多階層樹狀結構? 例如: ParentID的根節點不只為-1,意思是依據深度不同,ParentID的根節點值也不同。
 
     ----藝術文化(-1)
           |----音樂(526)
                  |----西洋音樂(577)
                           |----.....     
網海無涯,學無止境!
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-11 07:45:44 IP:61.155.xxx.xxx 未訂閱
好像K.TOP V1.1 Datum Browse Tool [源码]中就有将数据库资料转成树型菜单多层多级显示功能哦! src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=11119025&CC=248675">
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-11 07:56:01 IP:218.163.xxx.xxx 未訂閱
原程式本就是Recurisive, 應該可以一層層往下, 如果不行, 應Debug看看, 為何不會進入下一層 原sql字串有錯, 但如果欄位為integer, 也不用特地改為string qry.sql.add('select ID,SORTNAME from Tablename where ParentID=' inttostr(pid));
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-11 11:03:13 IP:61.217.xxx.xxx 未訂閱
引言: 原程式本就是Recurisive, 應該可以一層層往下, 如果不行, 應Debug看看, 為何不會進入下一層 原sql字串有錯, 但如果欄位為integer, 也不用特地改為string qry.sql.add('select ID,SORTNAME from Tablename where ParentID=' inttostr(pid));
謝謝指教~上一個問題已OK! 網海無涯,學無止境!
qoo1234
版主


發表:256
回覆:1167
積分:659
註冊:2003-02-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-11 18:32:20 IP:61.217.xxx.xxx 未訂閱
謝謝 sos_admin 大大告知~    可不可以就本主題,說明一下呢?        網海無涯,學無止境!
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-13 09:46:21 IP:61.155.xxx.xxx 未訂閱
//****************************直接实现 procedure TForm1.BitBtn1Click(Sender: TObject); var Treenode:array[1..3] of TTreenode; begin Treenode[1]:=Treeview1.Items.AddChild(nil,'11111_1'); //###################### Treenode[2]:=Treeview1.Items.AddChild(Treenode[1],'22222_1');      //#########################     Treenode[3]:=Treeview1.Items.AddChild(Treenode[2],'33333_1');           //###############            Treeview1.Items.AddChild(Treenode[3],'44444_1');            Treeview1.Items.AddChild(Treenode[3],'44444_2');            Treeview1.Items.AddChild(Treenode[3],'44444_3');            Treeview1.Items.AddChild(Treenode[3],'44444_4');           //###############     Treeview1.Items.AddChild(Treenode[2],'33333_2');     Treeview1.Items.AddChild(Treenode[2],'33333_3');     Treeview1.Items.AddChild(Treenode[2],'33333_4');      //######################### Treeview1.Items.AddChild(Treenode[1],'22222_2'); Treeview1.Items.AddChild(Treenode[1],'22222_3'); Treeview1.Items.AddChild(Treenode[1],'22222_4'); //###################### Treeview1.Items.AddChild(nil,'11111_2'); Treeview1.Items.AddChild(nil,'11111_3'); Treeview1.Items.AddChild(nil,'11111_4'); end;    //************************利用统一的方法实现    function addnode(const Treeview1:ttreeview;  Treenode:tTreenode; str:string):tTreenode; begin result:=Treeview1.Items.AddChild(Treenode,str); end;        procedure TForm1.Button1Click(Sender: TObject); var treenode1,treenode2:ttreenode; begin treenode1:=addnode(treeview1,nil,'11111_1'); addnode(treeview1,nil,'11111_2'); addnode(treeview1,nil,'11111_3'); addnode(treeview1,nil,'11111_4');    treenode2:=addnode(treeview1,treenode1,'22222_1'); addnode(treeview1,treenode1,'22222_2'); addnode(treeview1,treenode1,'22222_3'); addnode(treeview1,treenode1,'22222_4');    treenode1:=addnode(treeview1,treenode2,'33333_1'); addnode(treeview1,treenode2,'33333_2'); addnode(treeview1,treenode2,'33333_3'); addnode(treeview1,treenode2,'33333_4');    treenode2:=addnode(treeview1,treenode1,'4444_1'); addnode(treeview1,treenode1,'44444_2'); addnode(treeview1,treenode1,'44444_3'); addnode(treeview1,treenode1,'44444_4');    addnode(treeview1,treenode2,'55555_1'); addnode(treeview1,treenode2,'55555_2'); addnode(treeview1,treenode2,'55555_3'); addnode(treeview1,treenode2,'55555_4'); end;    我想您利用上述的方法,可以实现n层的樹狀結構!
gaui
一般會員


發表:25
回覆:36
積分:12
註冊:2004-06-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-20 13:49:29 IP:61.59.xxx.xxx 未訂閱
可否請問一下: TTreenode是什麼元件,我怎麼找不到
系統時間:2024-11-25 6:58:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!