Foxtable(狐表)用户栏目专家坐堂 → 目录树形式的授权案例修改的问题,角色无法赋值,求老师指点


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

主题:目录树形式的授权案例修改的问题,角色无法赋值,求老师指点

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5045 威望:0 精华:0 注册:2017/9/1 23:28:00
目录树形式的授权案例修改的问题,角色无法赋值,求老师指点  发帖心情 Post By:2019/12/31 13:07:00 [只看该作者]

我要实现的是:在右侧勾选后,把对应的角色名称写入角色授权的“角色”单元格,并以逗号分隔,其它的都好了,就是这个赋值一直无法赋值,求版主指点下,谢谢!
ADMIN密码是1

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:用户权限真麻烦.rar


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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 13:55:00 [只看该作者]

建议每个角色一行数据,不要使用多值字段。多值字段判断控制都非常麻烦。

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5045 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2019/12/31 16:08:00 [只看该作者]

以下是引用有点蓝在2019/12/31 13:55:00的发言:
建议每个角色一行数据,不要使用多值字段。多值字段判断控制都非常麻烦。

谢谢蓝老师的指点,这个问题我有考虑到,就是觉得很纠结,如果是用一个角色一组记录的话,比如说,一个常用的小型系统,100个表(或者窗口),每张表(或者窗口)有10个需要授权的控件,系统有10个角色,排列组合下来就需要10000条记录,如果再增加的话,这个表会非常庞大,感觉管理起来也很困难。多值字段显示角色的优点是一目了然,整个表看起来很清晰。但是正如您所说的,后期的代码操作难度很大。狐表教程里面提供的案例也不太好,以表(窗口、控件)定角色的方式太不合理了,用户实际操作非常容易发生混乱,我希望能做个好点的案例,以角色定表(窗口、控件)权限,但是碰到太多太多困难了。初学狐表,整体的设计思路还是不够清晰,属于非常迷茫的,还望您多多指导。


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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 16:23:00 [只看该作者]

就算是100W条记录也是小意思啊。权限管理一般是给管理员使用的,也就有新功能,或者有什么调整的才用一用,如果做了管理窗口,基本都不需要看到这个表数据的,也不应该开放这个表数据给用户直接编辑了,所以表格里显示什么格式对用户来说没有什么意义。普通用户更不可能会看到这个表的数据。但是普通用户可能会大量需要进行权限的判断操作,这时使用多值字段权限判断就麻烦多了。也就是权限管理使用的机会不多,特别是到后期可能几个月才调整一次。但是权限判断使用是很频繁的,是伴随着整个软件周期的,所以提高权限判断的效率比所谓的一目了然当然重要多了。

 回到顶部