以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109538) |
-- 作者:沪上游客 -- 发布时间:2017/11/14 13:55:00 -- [求助] 老师你好!下面的代码是设置授权表,是根据用户名设置的,因为人数和表数较多,加一个人每次要增加很多行设置。现在我想有角色决定用户的表和列可见或不可见,这样我在平时工作中,只要设置人员的角色就可以了。因为角色与用户名、分组名的命令不同,请老师指教。谢谢! 项目事件LoadUserSetting中,加入如下代码: For
Each t As
Table
In
Tables 上面的代码,条理清晰,原理简单,相信不用我解释,大家也能看明白。 |
-- 作者:沪上游客 -- 发布时间:2017/11/14 13:59:00 -- 此主题相关图片如下:qq图片20171114135927.png 我想把用户名改成角色?能一次性开发好。
[此贴子已经被作者于2017/11/14 14:01:06编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/11/14 14:19:00 --
For Each dr As DataRow In DataTables("授权表").Select("角色 = \'" & User.Roles & "\'" ) |
-- 作者:有点甜 -- 发布时间:2017/11/14 14:19:00 -- 设置权限,可以看这里
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=5&ID=23959&skin=0
|
-- 作者:沪上游客 -- 发布时间:2017/11/18 19:17:00 -- 谢谢老师! 如果一个用户只有一个角色,能实现隐藏(不载入)表,只要用户有两上个或以上角色,就失效加载所有表。 请老师指教,有更好的办法吗? 再次感谢! 以下是我更改后的LoadUserSetting代码: For Each t As Table In Tables t.Visible = True t.AllowEdit = True For Each c As Col In t.Cols c.Visible = True c.AllowEdit = True Next Next Tables("授权表").Visible = (User.Type <> UserTypeEnum.User ) If User.Type = UserTypeEnum.User Then For Each dr As DataRow In DataTables("授权表").Select("角色 = \'" & User.Roles & "\'" ) If dr.IsNull("列名") Then Tables(dr("表名")).Visible = Not dr("不可见") Tables(dr("表名")).AllowEdit = Not dr("不可编缉") Else Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见") Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编缉") End If Next End If [此贴子已经被作者于2017/11/18 19:26:47编辑过]
|
-- 作者:沪上游客 -- 发布时间:2017/11/18 19:29:00 -- 这是我的授权表 另外最好能设置代码使角色列能把系统所有角色自动载入可以选择,不用输入? 如果所有表名也能这样,更好了。 谢谢!
[此贴子已经被作者于2017/11/18 19:33:36编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/11/19 16:42:00 -- 1、
Dim filter As String = "1=2"
2、AfterOpenProject事件
Dim ls As new List(Of String)
|