以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于授权表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73342)

--  作者:fred
--  发布时间:2015/8/17 17:38:00
--  [求助]关于授权表
老师好。请看附件。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test_201508171728.zip


假设有若干个数据表。采购合同,销售合同……
用一个“表授权”表来个性化设置。“表授权”表中“个人权限用户”,“部门权限用户”和“全局权限用户”是多值字段。
取值于“员工”表。

请问代码如何写?放在哪个事件位置?

谢谢



--  作者:大红袍
--  发布时间:2015/8/17 17:44:00
--  

 你的问题是什么?权限怎么控制?

 

 那你各个列分别拥有什么权限?

 

 看看 http://www.foxtable.com/help/topics/2405.htm

 


--  作者:fred
--  发布时间:2015/8/17 18:03:00
--  
要求:针对“表名”列所列的表,若在“个人权限用户”列里被选,则被选中用户只能看到自己的东西。
若在“部门权限用户”列里被选,则被选中用户能看到自己部门里的东西,若在“全局权限用户”列里被选,则此表(“表名”列所列的表)全部数据都可以看到。

--  作者:大红袍
--  发布时间:2015/8/17 18:13:00
--  
 For Each dr As DataRow In DataTables("表授权").DataRows
    If ("," & dr("全局权限用户") & ",").Contains("," & user.name & ",") Then
        DataTables(dr("表名")).LoadFilter = ""
        DataTables(dr("表名")).Load
    Else
        If ("," & dr("部门权限用户") & ",").Contains("," & user.name & ",") Then
            DataTables(dr("表名")).LoadFilter = "部门 = \'" & user.Group & "\'"
            DataTables(dr("表名")).Load
        Else
            If ("," & dr("个人权限用户") & ",").Contains("," & user.name & ",") Then
                DataTables(dr("表名")).LoadFilter = "姓名 = \'" & user.name & "\'"
                DataTables(dr("表名")).Load
            Else
                DataTables(dr("表名")).LoadFilter = "1=2"
                DataTables(dr("表名")).Load
            End If
        End If
    End If
Next

--  作者:fred
--  发布时间:2015/8/17 18:19:00
--  
表属性AFTERLOAD里吗?
--  作者:大红袍
--  发布时间:2015/8/17 19:50:00
--  
LoadUserSetting事件
--  作者:fred
--  发布时间:2015/8/18 15:33:00
--  
.NET Framework 版本:2.0.50727.5477
Foxtable 版本:2014.11.11.1
错误所在事件:项目,LoadUserSetting
详细错误信息:
未设置对象变量或 With 块变量。



出错了,袍袍老师。
[此贴子已经被作者于2015/8/18 15:54:52编辑过]

--  作者:大红袍
--  发布时间:2015/8/18 16:08:00
--  

关键是你要看懂代码,调试参考

 

http://www.foxtable.com/help/topics/1485.htm

 

[此贴子已经被作者于2015/8/18 16:08:53编辑过]

--  作者:fred
--  发布时间:2015/8/19 8:15:00
--  
经过测试,发现是表的问题。现在调整好了。

但现在出一个情况,只有开发者看得到所有人的记录。上级看不到部门的甚至连自己的也看不到,下级也看不到自己的。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar

我的需求就是,如附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test_201508190805.zip

:SA01是SA10的部门经理,我要让SA01看到SA10和他自己的记录,普通职员SA10只能看到他自己的记录。开发者能看到所有人的记录。

我也用MESSAGEBOX看了,可能是因为只执行了第一层IF?

--  作者:大红袍
--  发布时间:2015/8/19 9:22:00
--  

大小写要区分。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test_201508190805.zip