tb
col1 col2 col3
5 aaa 0
5.1 bbb 5
5.2 ccc 5
5.3 ddd 5
5.2.1 eee 5.2
5.3.1 fff 5.3
5.2.1.1 ggg 5.2.1
6 hhh 0
6.1 ttt 6表 col1 是主键..
现在在treeview中样式
5aaa
|__5.1bbb
|__5.2ccc
|___5.2.1eee
|____5.2.1.1ggg
|__5.3ddd
|__5.3.fff
6hhh
|__6.1ttt先加载"select * from tb wher col3=0"
Dim nx As Node
dim rstM as new adodb.recordset
set nx =TreeMan.Nodes.Add(, , rstM!col1, rstM!col1 & "-" & rstM!col2, 0)
''加载第一层没问题..
然后怎么加载下面的层次?用col3做条件,,怎么来写?
col1 col2 col3
5 aaa 0
5.1 bbb 5
5.2 ccc 5
5.3 ddd 5
5.2.1 eee 5.2
5.3.1 fff 5.3
5.2.1.1 ggg 5.2.1
6 hhh 0
6.1 ttt 6表 col1 是主键..
现在在treeview中样式
5aaa
|__5.1bbb
|__5.2ccc
|___5.2.1eee
|____5.2.1.1ggg
|__5.3ddd
|__5.3.fff
6hhh
|__6.1ttt先加载"select * from tb wher col3=0"
Dim nx As Node
dim rstM as new adodb.recordset
set nx =TreeMan.Nodes.Add(, , rstM!col1, rstM!col1 & "-" & rstM!col2, 0)
''加载第一层没问题..
然后怎么加载下面的层次?用col3做条件,,怎么来写?
http://blog.csdn.net/lihonggen0/archive/2004/01/07/13648.aspx
'新建一个窗体,上面放一个TreeView和一个ListView,一个ListImage
'ListImage控件要添加8张以上一样大小的icon文件
'TreeView1和ListView的图像列表都设置成ListImage1
Private Sub Form_Load()
TreeView1.Style = tvwTreelinesPlusMinusPictureText
TreeView1.LabelEdit = tvwManual
TreeView1.Checkboxes = True
ListView1.View = lvwIcon
ListView1.BorderStyle = ccFixedSingleTreeView1.Nodes.Add , , "r", "学籍管理信息系统", 1
TreeView1.Nodes.Add "r", tvwChild, "r1", "学生基本信息", 2
TreeView1.Nodes.Add "r1", tvwChild, "r11", "个人信息", 3
TreeView1.Nodes.Add "r1", tvwChild, "r12", "家庭信息", 3
TreeView1.Nodes.Add "r", tvwChild, "r2", "学习成绩", 4
TreeView1.Nodes.Add "r2", tvwChild, "r21", "专业成绩", 5
TreeView1.Nodes.Add "r2", tvwChild, "r22", "英语成绩", 5
TreeView1.Nodes.Add "r", tvwChild, "r3", "社团活动", 6
TreeView1.Nodes.Add "r3", tvwChild, "r31", "政治面貌", 7
TreeView1.Nodes.Add "r3", tvwChild, "r32", "获奖情况", 7
For i = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(i).Expanded = True
Next i
TreeMan.Nodes.Add rstM!col1,tvwChild, rs!col1, rs!col1 & "-" & rs!col2, 0)
这句话无效{数据库设计不灵活,若有N层的话很难处理}
看看
SQL (我这里是call存储过程)的结果是
0,判断存储过程的运转结果,不用考虑
1,节点的类型
2,父节点的key
3,子节点 If IsNull(objRS(2)) Then
'root node
Set objNode = .Nodes.Add(Null, tvwChild, "Node" & Trim$(objRS(1)) & Trim$(objRS(3)), Trim$(objRS(4)), 1, 2)
objNode.Expanded = True
Else
If Trim$(objRS(1)) = "G" Then
Set objNode = .Nodes.Add("NodeG" & Trim$(objRS(2)), tvwChild, "Node" & Trim$(objRS(1)) & Trim$(objRS(3)), Trim$(objRS(4)), 1, 2)
Else
end if
读出记录之后判断col1 col2 col3
Dim nx As Node
dim rstM as new adodb.recordsetwhile not rstM.eof
if rstM!col3=0 then
set nx =TreeMan.Nodes.Add(, , rstM!col1, rstM!col1 & "-" & rstM!col2, 0)
else
set nx=TreeMan.Nodes.Add (rstM!col3,tvwChild, rs!col1, rs!col1 & "-" & rs!col2, 0)
end if rstM.movenext
wend