Foxtable(狐表)用户栏目专家坐堂 → [求助]这个复杂的目录树授权,能实现吗!


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

主题:[求助]这个复杂的目录树授权,能实现吗!

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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
[求助]这个复杂的目录树授权,能实现吗!  发帖心情 Post By:2015/7/23 11:43:00 [只看该作者]

请帮我看下,这样复杂的目录树授权能实现吗! 

 


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树授权.rar


图片点击可在新窗口打开查看此主题相关图片如下:目录树授权.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/7/23 11:47:04编辑过]

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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
  发帖心情 Post By:2015/7/23 11:49:00 [只看该作者]

忘了一点,就是取消权限时,需要子权限全部取消后,才能取消父权限!


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/23 11:49:00 [只看该作者]


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/23 12:10:00 [只看该作者]

mark 目录树授权

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树授权.rar


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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
  发帖心情 Post By:2015/7/23 12:16:00 [只看该作者]

太厉害,这么快就弄好了

还有一点,需要实现在取消权限时,需要子权限全部取消后,才能取消父权限!能实现吗


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/23 12:16:00 [只看该作者]

 看4楼。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/23 12:17:00 [只看该作者]

目录树全选

Dim nd,nd1 As  WinForm.TreeNode
nd = e.node
If nd.Nodes.Count > 0
    For Each nd1 In nd.AllNodes
        nd1.Checked = nd.Checked
    Next
End If
If e.node.Checked = False
    Do While  nd.parentnode IsNot Nothing
        nd = nd.parentnode
        If nd.Nodes.Count > 0
            For i As Integer = 0 To nd.Nodes.Count -1
                If nd.Nodes(i).Checked = True
                    Exit Do
                End If
                If i = nd.Nodes.Count -1
                    nd.Checked = False
                End If
            Next
        End If
    Loop
Else
    Do While  nd.parentnode IsNot Nothing
        nd = nd.parentnode
        nd.Checked = True
    Loop
End If


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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
  发帖心情 Post By:2015/7/23 14:19:00 [只看该作者]

麻烦再看下,上面代码得到结果是,如果父权限勾选或取消,则子权限则全部勾选或取消,

这有个问题,因为某一具有父权限,并不意味着拥有全部的子权限,

 

需要实现的是在取消复选框前进行判断,如果下面的子权限还存在有勾选项,则不能取消勾选本权限

好像没有复选框改变前执行的事件 这能实现吗


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/23 14:47:00 [只看该作者]

 Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim nd1 As WinForm.TreeNode = trv1.SelectedNode
Dim dr As DataRow
If nd1.Level = 2 Then
    dr = DataTables("YHB").Find("YHB_DWBHMC = '" & nd1.ParentNode.ParentNode.Name & "' And YHB_BMBHMC = '" & nd1.ParentNode.Name & "' And YHB_YHBHMC = '" & nd1.Name & "'")
End If
If dr IsNot Nothing Then
    Dim nd As WinForm.TreeNode = e.node
    If e.node.Checked = False
        For Each tnd As WinForm.TreeNode In nd.AllNodes
            If tnd.Checked Then
                msgbox("不能取消")
                e.node.Checked = True
                Return
            End If
        Next
        Do While nd.parentnode IsNot Nothing
            nd = nd.parentnode
            If nd.Nodes.Count > 0
                For i As Integer = 0 To nd.Nodes.Count -1
                    If nd.Nodes(i).Checked = True
                        Exit Do
                    End If
                    If i = nd.Nodes.Count -1
                        nd.Checked = False
                    End If
                Next
            End If
        Loop
    Else
        Do While  nd.parentnode IsNot Nothing
            nd = nd.parentnode
            nd.Checked = True
        Loop
    End If
    Dim nms As String
    For Each nd2 As WinForm.TreeNode In trv2.AllNodes
        If nd2.Checked  Then
            If nd2.Level = 0 Then
                nms  = nms & "," & nd2.Name
            ElseIf nd2.Level = 1 Then
                nms  = nms & "," & nd2.ParentNode.Name & "\" & nd2.Name
            ElseIf nd2.Level = 2 Then
                nms  = nms & "," & nd2.ParentNode.ParentNode.Name & "\" & nd2.ParentNode.Name & "\" & nd2.Name
            ElseIf nd2.Level = 3 Then
                nms  = nms & "," & nd2.ParentNode.ParentNode.ParentNode.Name & "\" & nd2.ParentNode.ParentNode.Name & "\" & nd2.ParentNode.Name & "\" & nd2.Name
            Else
            End If
        End If
    Next
    If nms > "" Then
        dr("YHB_YHQX") = nms .Trim(",")
    Else
        dr("YHB_YHQX") = Nothing
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
judyhu2008
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:154 积分:1217 威望:0 精华:0 注册:2015/10/29 16:22:00
  发帖心情 Post By:2016/2/11 19:26:00 [只看该作者]

MY,好厉害

 回到顶部