以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]复杂目录树筛选问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=21597) |
||||
-- 作者:sunbrain -- 发布时间:2012/7/18 12:38:00 -- [求助]复杂目录树筛选问题 前一阵子在大家的帮助下,完成了负责目录树的编写,这个目录树是根据数据表自动生成的,但是对于nodemouseclick事件却带来了麻烦,我现在是这么而写的: Dim Value()As String Value = e.Node.FullPath.Split("\\") Select Case e.Node.Level Case 0 Tables("设备表").Filter =" " End Select \'如果点击的是第一层节点,那么就全部显示数据;相反如果点击的是其他的节点,那么就执行如下的筛选 Select Case e.node.text Case "动力设备" Tables("设备表").Filter = "[设备大类型] = \'动力设备\'" Case "机械设备" Tables("设备表").Filter = " [设备大类型] = \'机械设备\' " Case "停用" Tables("设备表").Filter = " [使用状况] = \'停用\' " Case "正在使用" Tables("设备表").Filter = " [使用状况] = \'正在使用\' " Case "未使用" Tables("设备表").Filter = " [使用状况] = \'未使用\' " End Select
|
||||
-- 作者:hhbb -- 发布时间:2012/7/18 13:36:00 -- Dim flt1 As String Dim Value() As String Dim ls1 As New List(of String) Value = e.Node.FullPath.Split("\\") Dim vs1() As String ={"所在部门","安装地点"} Dim vs2() As String ={"设备大类型","设备小类型"} Select Case e.Node.Level Case 0 Tables("设备表").Filter ="" Case Else Select Case value(0) Case "按部门","按设备类型" ls1.AddRange(iif(value(0) = "按部门",vs1,vs2)) For n1 As Integer = 1 To value.Length-1 flt1+=" and " & Ls1(n1-1) & iif(n1=1," like \'" & value(n1) & "%\'" ," = \'" & value(n1) & "\'") Next Case "按设备标识" flt1 =" and 设备标识 =\'" & e.Node.Text & "\'" End Select Tables("设备表").Filter = flt1.substring(5) End Select
[此贴子已经被作者于2012-7-18 13:43:03编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2012/7/18 14:44:00 -- 替换掉您的代码:
Dim s As String = e.Node.FullPath |
||||
-- 作者:程兴刚 -- 发布时间:2012/7/18 15:08:00 -- 呵呵,楼主的目录树不规范,所以写代码也不能按规范一些的写法! |
||||
-- 作者:sunbrain -- 发布时间:2012/7/18 23:50:00 -- 感谢hhbb和程斑竹的大力帮助,感谢你们为我提供思路,为这个纠结有段时间了,研究了很久,做的程序代码太复杂,还不能达到预期的效果,你们的都不错,认真学习中。 |