Foxtable(狐表)用户栏目专家坐堂 → TreeView动态节点


  共有2138人关注过本帖树形打印复制链接

主题:TreeView动态节点

帅哥哟,离线,有人找我吗?
yifan3429
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
TreeView动态节点  发帖心情 Post By:2018/3/9 14:40:00 [只看该作者]

TreeView动态节点
TreeView
内容会更具需要变化 例如 1|2|3  或4|2|1  或6|2|7
那么
NodeMouseClick
Dim Filter As String
If e.node.Text = "加载所有数据" Then
    Filter = ""
Else
    Dim dr As DataRow = e.Node.DataRow
    Select Case e.Node.Level
        Case 0
            Filter ="[1] = '" & dr("1") & "'"
        Case 1
            Filter ="[1] = '" & dr("1") & "' And [2] = '" & dr("2") & "'"
    End Select
End If
4|2|1  或6|2|7 排列下
这样的代码就会受限 出错
怎样可以做到动态呢不管节点怎么变
[此贴子已经被作者于2018/3/9 14:40:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/9 16:53:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/3/10 19:26:00 [只看该作者]


这段代码会引用CheckedComboBox列
我的目录树来自几个方面
不能锁死

Dim Values() As String = e.Form.Controls("CheckedComboBox列").Text.Split(",")
Dim strs() As String = e.Node.FullName.Split("\")
Dim dr As DataRow = e.Node.DataRow
Dim flt As String
For i As Integer = 0 To strs.Length - 1 ''间接获取目录树层级(Level)
    For j As Integer = 0 To Values.Length - 1
        If i = j Then ''只加入选定节点及以上的节点
            flt + = Values(j) & "= '" & dr(Values(j)) & "' And "
        End If
    Next
Next
If flt > "" Then
    Tables(e.Form.Name & "_Table1").Filter = flt.SubString(0,flt.Length - 5)
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/11 21:02:00 [只看该作者]

关键是你看懂人家的代码,看不懂,就肯定无法改造成自己的代码了。

 

Dim Values() As String = e.Form.Controls("CheckedComboBox列").Text.Split(",")

 

你可以改成这样吧?

 

Dim Values() As String = "第一列,第二列,第三列".split(",")


 回到顶部
帅哥哟,离线,有人找我吗?
yifan3429
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2018/3/12 0:43:00 [只看该作者]

Dim Values() As String = e.Form.Controls("CheckedComboBox选择列").Text.Split(",")
Dim strs() As String = e.Node.FullName.Split("\")
Dim dr As DataRow = e.Node.DataRow
Dim flt As String
For i As Integer = 0 To strs.Length - 1 ''间接获取目录树层级(Level)
    For j As Integer = 0 To Values.Length - 1
        If i = j Then ''只加入选定节点及以上的节点
            flt + = Values(j) & "= '" & dr(Values(j)) & "' And "
        End If
    Next
Next
If flt > "" Then
    Tables(Vars("表名")).Filter = flt.SubString(0,flt.Length - 5)
End If

改成复选框可以多选 请教怎样修改代码呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/12 9:13:00 [只看该作者]


 回到顶部