以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  查看表数据权限!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=60469)

--  作者:身份不明
--  发布时间:2014/11/25 15:11:00
--  查看表数据权限!

财务部门费用申请窗口的afterload代码:

DataTables("费用申请").LoadFilter = "申请人 = \'" & User.Name & "\'"
DataTables("费用申请").Load() 

每个申请人只能看到自己的数据。但是如果是“总经办”和“财务”的分组用户打开这个窗口是可以看到所有数据的,如何写权限呢?


--  作者:Bin
--  发布时间:2014/11/25 15:20:00
--  
if user.Group <> “总经办” andalso user.Group <> 财务” then
    DataTables("费用申请").LoadFilter = "申请人 = \'" & User.Name & "\'"
end if
DataTables("费用申请").Load() 

--  作者:有点甜
--  发布时间:2014/11/25 15:20:00
--  

If User.Group = "总经办" OrElse User.Group = "财务" Then

    DataTables("费用申请").LoadFilter = ""

Else

    DataTables("费用申请").LoadFilter = "申请人 = \'" & User.Name & "\'"

End If

 

DataTables("费用申请").Load() 


--  作者:身份不明
--  发布时间:2014/11/26 9:56:00
--  

Bin老师和甜老师,我没说的太清楚。

首先我给他们分了6个组,分别的营销、生产、人事、行政、品保、财务

想分配的权限是每个组的部门经理(用户角色)打开窗口后是可以看到所有数据的,但是组员进来了只能看到自己申请的数据,总经办和财务的都可以看到。

那我的窗口afterload事件该如何写呢?


--  作者:有点甜
--  发布时间:2014/11/26 9:58:00
--  
  那你还得给他们分角色啊,比如组员、总经办、财务,判断user的角色而加载不同的数据啊
--  作者:身份不明
--  发布时间:2014/11/26 10:14:00
--  
这个功能不知道怎么写,比如营销部的组员角色进来了只能看到他自己填写的表,但是如果营销部的经理角色进来了可以看到所有的本部门的申请。
--  作者:有点甜
--  发布时间:2014/11/26 10:17:00
--  
以下是引用身份不明在2014-11-26 10:14:00的发言:
这个功能不知道怎么写,比如营销部的组员角色进来了只能看到他自己填写的表,但是如果营销部的经理角色进来了可以看到所有的本部门的申请。

 

你的用户的结构是怎么写的?分组怎么分;角色怎么分

 

再有,你的数据表里面,只存储了用户名吗?是否有存角色、分组的信息?


--  作者:身份不明
--  发布时间:2014/11/26 10:36:00
--  
以下是引用有点甜在2014-11-26 10:17:00的发言:

 

你的用户的结构是怎么写的?分组怎么分;角色怎么分

 

再有,你的数据表里面,只存储了用户名吗?是否有存角色、分组的信息?

我用的是foxtable自带的用户管理,增加了用户数据表。比如人事部 的分组就是人事部,之后用户角色定义了人事专员和人事经理。

想要的权限是人事专员只能看人事专员的数据,人事经理可以看所有的数据。

 


--  作者:有点甜
--  发布时间:2014/11/26 10:42:00
--  

 

[此贴子已经被作者于2014-11-26 10:42:42编辑过]

--  作者:有点甜
--  发布时间:2014/11/26 10:43:00
--  

   比如,如果是经理,就这样写

Dim us As String = ""
For Each u As UserInfo In Users
    If u.Group = User.Group Then
        us &= u.Name & "\',\'"
    End If
Next

Dim filter As String = "申请人 in (\'" & us.trim(",") & "\')"
msgbox(filter)