以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]这个复杂的目录树授权,能实现吗! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72091) |
||||
-- 作者:99473593 -- 发布时间:2015/7/23 11:43:00 -- [求助]这个复杂的目录树授权,能实现吗! 请帮我看下,这样复杂的目录树授权能实现吗!
此主题相关图片如下:目录树授权.jpg [此贴子已经被作者于2015/7/23 11:47:04编辑过]
|
||||
-- 作者:99473593 -- 发布时间:2015/7/23 11:49:00 -- 忘了一点,就是取消权限时,需要子权限全部取消后,才能取消父权限! |
||||
-- 作者:大红袍 -- 发布时间:2015/7/23 11:49:00 -- 参考 http://www.foxtable.com/help/topics/2405.htm
|
||||
-- 作者:大红袍 -- 发布时间:2015/7/23 12:10:00 -- mark 目录树授权
|
||||
-- 作者:99473593 -- 发布时间:2015/7/23 12:16:00 -- 太厉害,这么快就弄好了 还有一点,需要实现在取消权限时,需要子权限全部取消后,才能取消父权限!能实现吗 |
||||
-- 作者:大红袍 -- 发布时间:2015/7/23 12:16:00 -- 看4楼。 |
||||
-- 作者:大红袍 -- 发布时间:2015/7/23 12:17:00 -- 目录树全选 Dim nd,nd1 As WinForm.TreeNode |
||||
-- 作者:99473593 -- 发布时间:2015/7/23 14:19:00 -- 麻烦再看下,上面代码得到结果是,如果父权限勾选或取消,则子权限则全部勾选或取消, 这有个问题,因为某一具有父权限,并不意味着拥有全部的子权限,
需要实现的是在取消复选框前进行判断,如果下面的子权限还存在有勾选项,则不能取消勾选本权限 好像没有复选框改变前执行的事件 这能实现吗 |
||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/2/11 19:26:00 -- MY,好厉害 |