以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 目录树形式的授权案例修改的问题,角色无法赋值,求老师指点 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144842) |
||||
-- 作者:hitzfeld -- 发布时间:2019/12/31 13:07:00 -- 目录树形式的授权案例修改的问题,角色无法赋值,求老师指点 我要实现的是:在右侧勾选后,把对应的角色名称写入角色授权的“角色”单元格,并以逗号分隔,其它的都好了,就是这个赋值一直无法赋值,求版主指点下,谢谢! ADMIN密码是1
|
||||
-- 作者:有点蓝 -- 发布时间:2019/12/31 13:55:00 -- 建议每个角色一行数据,不要使用多值字段。多值字段判断控制都非常麻烦。 |
||||
-- 作者:有点蓝 -- 发布时间:2019/12/31 14:07:00 -- Dim tr1 As WinForm.TreeView = Forms("角色授权").Controls("TreeView1") If tr1.SelectedNode Is Nothing Then msgbox("请选择一个角色") Return "" End If Dim role As String = tr1.SelectedNode.Text.Replace("←","") Dim tr2 As WinForm.TreeView = Forms("角色授权").Controls("TreeView2") For Each n As WinForm.TreeNode In tr2.AllNodes If n.Level = 1 AndAlso n.Checked Dim dr As DataRow = DataTables("角色授权").Find("窗口=\'" & n.ParentNode.Text & "\' And 控件=\'" & n.Text & "\'") If dr Is Nothing Then dr = DataTables("角色授权").AddNew dr("窗口") = n.ParentNode.Text dr("控件") = n.Text dr("角色") = role Else If dr.IsNull("角色") dr("角色") = role Else Dim lst As new List(of String) lst.AddRange(dr("角色").split(",")) If lst.Contains(role) = False Then lst.Add(role) End If dr("角色") = String.Join(",",lst.ToArray) End If End If End If Next
|
||||
-- 作者:hitzfeld -- 发布时间:2019/12/31 16:08:00 -- 以下是引用有点蓝在2019/12/31 13:55:00的发言: 建议每个角色一行数据,不要使用多值字段。多值字段判断控制都非常麻烦。 谢谢蓝老师的指点,这个问题我有考虑到,就是觉得很纠结,如果是用一个角色一组记录的话,比如说,一个常用的小型系统,100个表(或者窗口),每张表(或者窗口)有10个需要授权的控件,系统有10个角色,排列组合下来就需要10000条记录,如果再增加的话,这个表会非常庞大,感觉管理起来也很困难。多值字段显示角色的优点是一目了然,整个表看起来很清晰。但是正如您所说的,后期的代码操作难度很大。狐表教程里面提供的案例也不太好,以表(窗口、控件)定角色的方式太不合理了,用户实际操作非常容易发生混乱,我希望能做个好点的案例,以角色定表(窗口、控件)权限,但是碰到太多太多困难了。初学狐表,整体的设计思路还是不够清晰,属于非常迷茫的,还望您多多指导。
|
||||
-- 作者:有点蓝 -- 发布时间:2019/12/31 16:23:00 -- 就算是100W条记录也是小意思啊。权限管理一般是给管理员使用的,也就有新功能,或者有什么调整的才用一用,如果做了管理窗口,基本都不需要看到这个表数据的,也不应该开放这个表数据给用户直接编辑了,所以表格里显示什么格式对用户来说没有什么意义。普通用户更不可能会看到这个表的数据。但是普通用户可能会大量需要进行权限的判断操作,这时使用多值字段权限判断就麻烦多了。也就是权限管理使用的机会不多,特别是到后期可能几个月才调整一次。但是权限判断使用是很频繁的,是伴随着整个软件周期的,所以提高权限判断的效率比所谓的一目了然当然重要多了。 |