以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用户权限设置问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129755)

--  作者:huizhong
--  发布时间:2019/1/5 11:43:00
--  用户权限设置问题
老师,我在权限设置中对用户角色采用多选结构,即一人多岗,现在有个问题
1- 有个资产管理主表,主表中有一列为“公司标记组”,体现内容为资产的所有方和使用方的标记,比如,资产所有方为GX;但使用方为IY,则“公司标记组”列体现为GX,IY
2- 我想实现对于角色者而言,如果角色仅为GX或者仅为IY,则均可加载该资产数据,否则不可
3- 但是,如果角色是多选,例如,角色为GX,XR,我想实现对于这个角色中任何一个角色只要在“资产管理主表”的“公司标记组”列中包含,则加载数据,例如角色GX,XR,则系统加载“公司标记组”列中包含GX或者XR的所有行
请问老师,如第三条所述,代码该如何修改,烦劳指导,以下是错误代码,该代码只适用单一角色,但是双角色不行,您受累给指导下

LoadUserSetting事件代码如下

DataTables("资产管理主表").LoadFilter = "\',\' + 公司标记组 + \',\' like \'%," & User.Roles.replace(",", "\',\'") & ",%\'"
 

--  作者:有点蓝
--  发布时间:2019/1/5 12:13:00
--  
Dim filter As String = " 1=2 "
For Each n As String In User.Roles.Split(",")
    filter = filter & "or \',\' + 公司标记组 + \',\' like \'%," & n & ",%\' "
Next
DataTables("资产管理主表").LoadFilter = filter