Foxtable(狐表)用户栏目专家坐堂 → 目录树


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

主题:目录树

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/18 13:10:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/18 20:54:00 [显示全部帖子]

需要至少2个目录树控件,另外一个可以隐藏,作为过渡使用。

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView2")
……
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeViewxx")

原理很简单,目录树1BuildTree生成月租停车节点后右移到"月租停车"节点里;目录树2BuildTree生成临时停车节点后移到目录树1的“临时停车”节点里
[此贴子已经被作者于2021/2/18 20:57:10编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/18 21:26:00 [显示全部帖子]

需要至少2个目录树控件,另外一个可以隐藏,作为过渡使用。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/18 21:42:00 [显示全部帖子]

测试没有问题,提示什么错误?

另外,目录树的勾选事件代码要需要改的,需要判断 一下勾选的节点是哪一个分类的,然后对应处理那一个分类的加载条件

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/19 8:36:00 [显示全部帖子]

Dim trv4 As WinForm.TreeView = e.Form.Controls("TreeView4")
trv4.BuildTree(dt1,"年|月|车牌号码","[分类] = '临时停车'","年 DESC,月 DESC")
'trv4.Nodes.Insert("加载临时停车数据",0)
Dim node1 As WinForm.TreeNode = trv1.Nodes.Add("临时停车")
For i As Integer = trv4.Nodes.Count - 1 To 0 Step -1
    Dim nn As WinForm.TreeNode = trv4.Nodes(i)
    trv4.Nodes.RemoveAt(i)
    node1.basenode.Nodes.Add(nn.basenode)
Next

刷新目录树、查找按钮需要判断 一下勾选的节点是哪一个分类的,然后对应处理那一个分类的条件

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/19 9:48:00 [显示全部帖子]

连基本的代码都没有看懂,自己写的什么代码根本都不知道。到处乱改,不像是解决问题,而是制造问题的。


Dim node1 As WinForm.TreeNode = trv4.Nodes.Add("临时停车")

改为

Dim node1 As WinForm.TreeNode = trv1.Nodes.Add("临时停车")

其它地方不需要改

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/19 10:10:00 [显示全部帖子]

所以说连基本的代码都没有看懂。建议先仔细理解一下4楼的说明

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/19 17:14:00 [显示全部帖子]

红色字符代码没有任何用处,去掉

看看这屋里34楼的用法:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160318&authorid=0&page=0&star=4

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/21 20:48:00 [显示全部帖子]

日期建议另外单独处理,没有办法通用

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 20:51:00 [显示全部帖子]

Dim trv As WinForm.TreeView = e.Sender
Dim flt,flt1,flt2 As String
If e.Node.Name = "显示所有数据" '专处理显示所有数据的勾选选项打勾后缴费情况表的筛选问题,打勾全显,去除勾不显.
    If e.Node.Checked
        For Each nd As WinForm.TreeNode In trv.AllNodes
            nd.Checked = False
        Next
        e.Node.Checked = True
    Else
        flt = "1=2"
    End If
Else
    Dim nms As String() = {"住址_巷","住址_号","住址_房","户主姓名","手机号码","车牌号码"} '指定生成目录树的各列
    Dim qts As String() = {"'","","","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    For Each nd As WinForm.TreeNode In e.node.allNodes  '清除子节点的选中标记
        nd.Checked = e.node.Checked
    Next
    If e.node.Checked = False
        Dim pd As WinForm.TreeNode = e.Node.ParentNode
        If pd IsNot Nothing Then
            pd.Checked = False
        End If
    End If
    
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If nd.Checked  Then
            Dim val As String = ""
            Dim rts() As String = nd.FullPath.Split("\")
            If nd.FullPath Like "月租停车*"
                For i As Integer = 1 To rts.length - 1
                    If val > "" Then
                        val = val & " And "
                    End If
                    val = val & nms(i-1) & " = " & qts(i-1) & rts(i) & qts(i-1)
                Next
                If flt1 > "" Then
                    flt1 = flt1 & " or (" & val & ")"
                Else
                    flt1 = val
                End If
            Else
                If val > "" Then
                    val = val & " And "
                End If
                Dim d1,d2 As Date
                If rts.Length = 2 Then
                    d1 = new Date(cint(rts(1)),1,1)
                    d2 = new Date(cint(rts(1)),12,11)
                ElseIf rts.Length > 2
                    d1 = new Date(cint(rts(1)),cint(rts(2)),1)
                    d2 = new Date(cint(rts(1)),cint(rts(2)),Date.DaysInMonth(cint(rts(1)),cint(rts(2))))
                End If
                val = val & "日期 >= #" & d1 & "# and 日期 <=#" & d2 & "#"
                If nd.Level = 3 Then
                    If val > "" Then
                        val = val & " And "
                    End If
                    val = val & "车牌号码 = '" & nd.Text & "'"
                End If
                
                
                If flt2 > "" Then
                    flt2 = flt2 & " or (" & val & ")"
                Else
                    flt2 = val
                End If
            End If
            
        End If
    Next
    If flt1 > "" Then
        flt1 = "分类='月租停车' and (" & flt1 & ")"
    End If
    If flt2 > "" Then
        flt2 = "分类='临时停车' and (" & flt2 & ")"
    End If
    flt = flt1
    If flt > "" Then
        If flt2 > "" Then
            flt = "(" & flt1 & ") or (" & flt2 & ")"
        End If
    Else
        flt = flt2
    End If
End If
Tables("主界面_Table5").Filter = flt
[此贴子已经被作者于2021/2/22 20:51:16编辑过]

 回到顶部
总数 44 1 2 3 4 5 下一页