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


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

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

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107756 积分:548119 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 13:55:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:107756 积分:548119 威望: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

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


加好友 发短信
等级:超级版主 帖子:107756 积分:548119 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/31 16:23:00 [显示全部帖子]

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

 回到顶部