怎样用TreeView根据现有视图生成动态的5级目录树

flashasp 2007-10-27 04:23:30
已知视图:
SELECT dbo.ProjectReg.ProName, dbo.ProjectJiZai.JiZaiSgdw, dbo.RollReg.Timin,
dbo.RollReg.ProNum2, dbo.FilesReg.ProNum3, dbo.FilesReg.FileTitle
FROM dbo.ProjectReg INNER JOIN
dbo.ProjectJiZai ON
dbo.ProjectReg.ProName = dbo.ProjectJiZai.ProName INNER JOIN
dbo.RollReg ON dbo.ProjectJiZai.ProName = dbo.RollReg.ProName INNER JOIN
dbo.FilesReg ON dbo.RollReg.ProNum2 = dbo.FilesReg.ProNum2

select * from V_Tree---查询结果:

大街道路工程设计、竣工 AAA 竣工-大街道路工程竣工a E-1-3-2-1 E-1-3-2-1-1 设计文件1
大街道路工程设计、竣工 AAA 竣工-大街道路工程竣工a E-1-3-2-1 E-1-3-2-1-2 设计文件2
大街道路工程设计、竣工 AAA 竣工-大街道路工程竣工a E-1-3-2-1 E-1-3-2-1-3 道路平面尺寸图

大街道路工程设计、竣工 BBB 竣工-大街道路工程设计b E-1-3-2-2 E-1-3-2-2-1 设计文件11
大街道路工程设计、竣工 BBB 竣工-大街道路工程设计b E-1-3-2-2 E-1-3-2-2-2 道路平面尺寸图22

现在要输出这样的树形结构:


大街道路工程设计、竣工
AAA
竣工-大街道路工程竣工a
E-1-3-2-1
E-1-3-2-1-1
E-1-3-2-1-2
E-1-3-2-1-3
BBB
竣工-大街道路工程竣工b
E-1-3-2-2
E-1-3-2-2-1
E-1-3-2-2-2


现在要用TreeView根据现有视图生成如上的5级目录树,谢谢解答!
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2007-10-29
  • 打赏
  • 举报
回复

dim cn as ADODB.connection, rs as ADODB.recordset
dim aLastNodes(4) as Node
dim i as long,j as long
...
set rs = cn.execute("selet * from test order by proname,JiZaiSgdw,Timin,Pronum2"
with treeview1.nodes
while not rs.eof
for i= 0 to 3 '找到哪级节点与上个纪录不同
if aLastNodes(i) is nothing then exit for
if aLastNodes(i).text <> rs(i).value then exit for
next
for j=i to 4
if j=0 then
set aLastNodes(j) = .Add(,,,rs(j).Value)
else
set aLastNodes(j) = .Add(aLastNodes(j-1).Index, tvwChild,,rs(j).Value)
end if
next
rs.movenext
wend
end with
flashasp 2007-10-27
  • 打赏
  • 举报
回复
----简化一下,下面创建测试数据

create table Test(Proname varchar(50),JiZaiSgdw varchar(50), Timin varchar(100),Pronum2 varchar(50),Pronum3 varchar(50),FileTitle varchar(100))

insert into Test select '大街道路工程设计、竣工', 'AAA' ,'竣工-大街道路工程竣工a', 'E-1-3-2-1','E-1-3-2-1-1','设计文件1'
insert into Test select '大街道路工程设计、竣工', 'AAA' ,'竣工-大街道路工程竣工a', 'E-1-3-2-1','E-1-3-2-1-2','设计文件2'
insert into Test select '大街道路工程设计、竣工', 'AAA' ,'竣工-大街道路工程竣工a', 'E-1-3-2-1','E-1-3-2-1-3','道路平面尺寸图'
insert into Test select '大街道路工程设计、竣工 ', 'BBB' ,'竣工-大街道路工程设计b', 'E-1-3-2-2','E-1-3-2-2-1','设计文件11'
insert into Test select '大街道路工程设计、竣工 ', 'BBB' ,'竣工-大街道路工程设计b', 'E-1-3-2-2','E-1-3-2-2-2','道路平面尺寸图22'


select * from Test---查询结果:

大街道路工程设计、竣工 AAA 竣工-大街道路工程竣工a E-1-3-2-1 E-1-3-2-1-1 设计文件1
大街道路工程设计、竣工 AAA 竣工-大街道路工程竣工a E-1-3-2-1 E-1-3-2-1-2 设计文件2
大街道路工程设计、竣工 AAA 竣工-大街道路工程竣工a E-1-3-2-1 E-1-3-2-1-3 道路平面尺寸图
大街道路工程设计、竣工 BBB 竣工-大街道路工程设计b E-1-3-2-2 E-1-3-2-2-1 设计文件11
大街道路工程设计、竣工 BBB 竣工-大街道路工程设计b E-1-3-2-2 E-1-3-2-2-2 道路平面尺寸图22

现在要输出这样的树形结构:


大街道路工程设计、竣工
AAA
竣工-大街道路工程竣工a
E-1-3-2-1
E-1-3-2-1-1
E-1-3-2-1-2
E-1-3-2-1-3
BBB
竣工-大街道路工程竣工b
E-1-3-2-2
E-1-3-2-2-1
E-1-3-2-2-2

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧