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


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

主题:目录树

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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
目录树  发帖心情 Post By:2016/12/15 21:55:00 [只看该作者]

Dim nms As String() = {"考试名称","单位名称","年级代码","班级"} '指定生成目录树的各列
Dim qts As String() = {"'","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
Dim nd As WinForm.TreeNode
For Each nd In e.node.allNodes '清除子节点的选中标记
    nd.Checked = False
Next
nd = e.Node.ParentNode
Do While nd IsNot Nothing '清除父节点的选中标记
    nd.Checked = False
    nd = nd.ParentNode
Loop
For Each nd In trv.AllNodes
    If nd.Checked  Then
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val As String = ""
        For i As Integer = 0 To rts.length - 1
            If val > "" Then
                val = val & " And "
            End If
            val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
        Next
        If flt > "" Then
            flt = flt & " Or (" & val & ")"
        Else
            flt = val
        End If
    End If
Next
DataTables("成绩").LoadFilter = Flt
DataTables("成绩").Load()

各节点均不勾选时,应是不加载,但成了加载所有数据了,请问如何改,一直没懂起,请老师指导

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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/15 21:58:00 [只看该作者]

......

If Flt > "" Then
    DataTables("成绩").LoadFilter = Flt
Else
    DataTables("成绩").LoadFilter = "1=2"
End If
DataTables("成绩").Load()

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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/12/16 9:04:00 [只看该作者]

Dim nms As String() = {"单位名称","考试名称","年级代码","班级"} '指定生成目录树的各列
Dim qts As String() = {"'","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
Dim nd As WinForm.TreeNode
For Each nd In e.node.allNodes '清除子节点的选中标记
    nd.Checked = False
Next
nd = e.Node.ParentNode
Do While nd IsNot Nothing '清除父节点的选中标记
    nd.Checked = False
    nd = nd.ParentNode
Loop
For Each nd In trv.AllNodes
    If nd.Checked  Then
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val As String = ""
        For i As Integer = 0 To rts.length - 1
            If val > "" Then
                val = val & " And "
            End If
            val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
        Next
        If flt > "" Then
            flt = flt & " Or (" & val & ")"
        Else
            flt = val
        End If
    End If
Next
Dim schoolName As String = user.group
DataTables("成绩").LoadFilter = "(" & Flt & ") and [_Locked] = 0 And 单位名称 = '" & schoolname & "'"
DataTables("成绩").Load()
Tables("成绩").sort = "考试名称,年级代码,考号"


老师,我选择这种方式,但当点去所有勾选时提示  ')' 附近有语法错误。   没看出来

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 9:11:00 [只看该作者]

 要单独判断 【所有】 节点。

 

 If e.Node.Text = "所有" Then

  

 else

   

 End If


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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/12/16 16:05:00 [只看该作者]

老师,什么意思,没懂起,怎么改

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 16:38:00 [只看该作者]

 

[此贴子已经被作者于2016/12/16 16:40:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/16 16:41:00 [只看该作者]

或者这样

 

Dim nms As String() = {"单位名称","考试名称","年级代码","班级"} '指定生成目录树的各列
Dim qts As String() = {"'","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String = ""
If e.node.text = "所有勾选" Then
    flt = "1=1"
Else
    Dim nd As WinForm.TreeNode
    For Each nd In e.node.allNodes '清除子节点的选中标记
        nd.Checked = False
    Next
    nd = e.Node.ParentNode
    Do While nd IsNot Nothing '清除父节点的选中标记
        nd.Checked = False
        nd = nd.ParentNode
    Loop
    For Each nd In trv.AllNodes
        If nd.Checked andalso nd.text <> "所有勾选" Then
            Dim rts() As String = nd.FullPath.Split("\")
            Dim val As String = ""
            For i As Integer = 0 To rts.length - 1
                If val > "" Then
                    val = val & " And "
                End If
                val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
            Next
            If flt > "" Then
                flt = flt & " Or (" & val & ")"
            Else
                flt = val
            End If
        End If
    Next
End If
Dim schoolName As String = user.group
DataTables("成绩").LoadFilter = "(" & Flt & ") and [_Locked] = 0 And 单位名称 = '" & schoolname & "'"
DataTables("成绩").Load()
Tables("成绩").sort = "考试名称,年级代码,考号"


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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/12/19 21:49:00 [只看该作者]

没懂起“所有勾“选是指什么?

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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/19 22:01:00 [只看该作者]

生成目录树的时候是不是增加了一个“显示全部”的节点

If e.node.text = "显示全部" Then

 回到顶部