怎样根据数据库的内容动态部门树
数据库结构:
部门ID 部门名称 上级部门ID
1 总部门 -1
2 部门1 1
3 部门2 1
4 部门3 1
5 分部门1 2
6 分部门2 2
7 分部门3 2
8 子部门1 5
9 子部门1 5
。。。。。。。。。。。
我想用递规的方法生成Treeview,程序如下:
PROCEDURE newtreeview(部门ID,部门名称)
Begin
//Treeview1。。。添加部门名称;
//Treeview1。。。添加附带数据部门ID
ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.Text:=select * from 部门表 where 上级部门ID='+inttostr(部门ID)
ADOQuery1.open;
If ADOQuery1..recordcount>0 then
Begin
//Treeview1。。。准备添加子节点
ADOQuery1.First;
For i:=o to ADOQuery1.recordcount do
Begin
Newtreeview(ADOQuery1.FieldByName(‘ID’),
ADOQuery1.FieldByName(‘部门名称’))
ADOQuery1.next;
End;
End;
//Treeview如果有上层节点,则回到上层节点
End;
要求:当输入(1,总部门)时生成树为
总部门
部门1
分部门1
子部门1
子部门2
分部门2
分部门3
部门2
部门3
。。。
当输入(2,部门1)时生成树为
部门1
分部门1
子部门1
子部门2
分部门2
分部门3
(即生成自己部门和下属部门,且各名称附带数据为其ID号)
因为对Treeview不太熟悉,所以请高手帮忙改一下程序,
如果有更好的方法更好。