以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 用户权限问题请教 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135033) |
-- 作者:huizhong -- 发布时间:2019/5/15 15:31:00 -- 用户权限问题请教 老师,请教个问题 我有一个资产管理主表,其为公司资产管理基础表,表内是公司资产明细,对于每一项资产而言,有“使用者”及“所有者”,如果是本公司采购资产仍由本公司使用,则“使用者”及“所有者”均为本公司,如果本公司采购但借给B公司使用,则“使用者”为B公司,“所有者”为本公司,以上是关于“所有者”及“使用者”的列属性介绍 我在项目事件中设置加载代码如下: DataTables("资产管理主表").LoadFilter = "\',\' + 公司标记组 + \',\' like \'%," & User.Roles.replace(",", "\',\'") & ",%\'" 以此保证当本公司的人员登录后,无论“所有者”还是“使用者”,涉及本公司的均会加载 请教内容如下: 我在设置用户权限时,如果,只设置单一公司权限,系统正常使用,数据加载正常,但是,当某员工是双重身份或三重身份,也就是,某员工同时管理两家或三家公司时,在权限中选定两家或三家公司后,登录系统后不加载任何数据,请老师给指导下,看看代码应做如何修改
|
-- 作者:有点甜 -- 发布时间:2019/5/15 15:50:00 -- dim filter as string = "1=2" for each s as string in user.roles.split(",") filter &= " or \',\' + 公司标记组 + \',\' like \'%," & s & ",%\'" next msgbox(filter) DataTables("资产管理主表").LoadFilter = filter |
-- 作者:huizhong -- 发布时间:2019/5/15 15:55:00 -- 谢谢老师 |
-- 作者:huizhong -- 发布时间:2019/5/16 12:10:00 -- 老师帮我看看以下代码哪里有问题,在用管理员登录时报错 代码如下: If User.Group = "单独执行" Then DataTables("项目基础表").LoadFilter = "公司标记 in (\'" & User.Roles.replace(",", "\',\'") & "\')" DataTables("收入明细录入台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("成本明细录入台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("财务收支台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("发票台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("员工档案").LoadFilter = "公司标记 in (\'" & User.Roles.replace(",", "\',\'") & "\')" DataTables("公司档案").LoadFilter = "公司标记 in (\'" & User.Roles.replace(",", "\',\'") & "\')" DataTables("资产管理主表").LoadFilter = "[_Identify] Is Null" \'不加载任何数据 DataTables("电台广告排期录入表").LoadFilter = "" ElseIf User.Group = "单独业务" Then DataTables("项目基础表").LoadFilter = "公司标记 in (\'" & User.Roles.replace(",", "\',\'") & "\')" DataTables("收入明细录入台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("成本明细录入台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("财务收支台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("发票台账").LoadFilter = "\',\' + 执行人姓名 + \',\' like \'%," & user.Name & ",%\'" DataTables("员工档案").LoadFilter = "公司标记 in (\'" & User.Roles.replace(",", "\',\'") & "\')" DataTables("公司档案").LoadFilter = "公司标记 in (\'" & User.Roles.replace(",", "\',\'") & "\')" DataTables("资产管理主表").LoadFilter = "[_Identify] Is Null" \'不加载任何数据 DataTables("电台广告排期录入表").LoadFilter = "" Else Dim filter As String = "1=2" For Each s As String In user.roles.split(",") filter &= " or \',\' + 公司标记 + \',\' like \'%," & s & ",%\'" Next DataTables("项目基础表").LoadFilter = filter DataTables("收入明细录入台账").LoadFilter = filter DataTables("成本明细录入台账").LoadFilter = filter DataTables("财务收支台账").LoadFilter = filter DataTables("发票台账").LoadFilter = filter DataTables("员工档案").LoadFilter = filter DataTables("公司档案").LoadFilter = filter DataTables("资产管理主表").LoadFilter = filter DataTables("电台广告排期录入表").LoadFilter = "" End If DataTables("项目基础表").Load() DataTables("收入明细录入台账").Load() DataTables("成本明细录入台账").Load() DataTables("财务收支台账").Load() DataTables("发票台账").Load() DataTables("员工档案").Load() DataTables("公司档案").Load() DataTables("资产管理主表").Load() DataTables("电台广告排期录入表").Load() StatusBar.Message3 = Date.Today & " " & User.Name vars("YHM") = user.name \'将登陆用户名赋值给YHM,报表或其他位置中有引用 报错内容如下: .NET Framework 版本:2.0.50727.8940 Foxtable 版本:2018.10.9.1 错误所在事件:项目,LoadUserSetting 详细错误信息: 未将对象引用设置到对象的实例。
|
-- 作者:有点甜 -- 发布时间:2019/5/16 13:26:00 -- If user.roles = "" then msgbox("没有角色") Else \'本来代码 End If |
-- 作者:huizhong -- 发布时间:2019/5/16 14:55:00 -- 已解决,谢谢老师 |