以文本方式查看主题

-  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=154080)

--  作者:吃亏是福
--  发布时间:2020/9/3 9:14:00
--  如何设置组权限?请求帮助,多谢!
 如何设置组权限?请求帮助,多谢!
我建了六个组:
管理者
高管
部门经理
项目经理
内业
工程师

访问名单及权限
序号 登录组 登录名 访问权限
1 管理者 管理员2人 可以查看工程部所有人行。能修改所有的行。  
2 高管 高管3人 可以查看工程部所有人行。不能修改所有的行。  
3 部门经理 部门经理2人 可以查看工程部所有人行。只能在固定期限内填报、修改自己的行。  
4 项目经理 项目经理6人 可以查看所有人工程师。只能在固定期限内填报、修改自己的行。  
5 内业 内业2人 可以查看所有人行。只能在固定期限内填报、修改自己的行。  
6 工程师 工程师13人 可以查看自己的行。只能在固定期限内填报、修改自己的行。  

项目事件 应该如何修改?

LoadUserSetting

If User.Group = "管理者" Then
    DataTables("工作日志基础数据").LoadFilter = ""
    DataTables("工作日志基础数据").AllowEdit = True
    If User.Group = "高管" Then
        DataTables("工作日志基础数据").LoadFilter = ""
    End If
Else
    DataTables("工作日志基础数据").LoadFilter = "填报人 = \'" & User.Name & "\'"
End If

DataTables("工作日志基础数据").Load()
DataTables("工作日志基础数据").DataCols("结账").RaiseDataColChanged

--  作者:有点蓝
--  发布时间:2020/9/3 9:46:00
--  

If User.Group = "管理者" Then

    DataTables("工作日志基础数据").LoadFilter = ""
    DataTables("工作日志基础数据").AllowEdit = True
elseIf User.Group = "高管" Then
        DataTables("工作日志基础数据").LoadFilter = ""
elseIf User.Group = "部门经理" Then
…………
Else
    DataTables("工作日志基础数据").LoadFilter = "填报人 = \'" & User.Name & "\'"
End If

--  作者:吃亏是福
--  发布时间:2020/9/4 11:21:00
--  如果是""项目经理"组,能看所有"工程师"组,但不可以编辑,只可以编辑自己的?
我建了六个组:
管理者
高管
部门经理
项目经理
内业
工程师

访问名单及权限
序号 登录组 登录名 访问权限
1 管理者 管理员2人 可以查看工程部所有人行。能修改所有的行。  
2 高管 高管3人 可以查看工程部所有人行。不能修改所有的行。  
3 部门经理 部门经理2人 可以查看工程部所有人行。  
4 项目经理 项目经理6人 可以查看“工程师”组。  
5 内业 内业2人 可以查看所有人行。  
6工程师工程师13人可以查看自己的行。


If User.Group = "管理者" Then \'如果是"管理者",能看所有人,可以编辑.

    DataTables("工作日志基础数据").LoadFilter = ""

    DataTables("工作日志基础数据").AllowEdit = True

ElseIf User.Group = "高管" Then \'如果是"高管"组 ,能看所有人,但不可以编辑.

    DataTables("工作日志基础数据").LoadFilter = ""

    DataTables("工作日志基础数据").AllowEdit = False

ElseIf User.Group = "部门经理" Or User.Group = "内业" Then \'\'如果是""部门经理"组或者是"内业"组 ,能看所有人.

    DataTables("工作日志基础数据").LoadFilter = ""

    DataTables("工作日志基础数据").AllowEdit = True

ElseIf User.Group = "项目经理" Then \'如果是""项目经理"组,能看所有"工程师"组,但不可以编辑.

    DataTables("工作日志基础数据").LoadFilter = ""

    DataTables("工作日志基础数据").AllowEdit = True

Else

    DataTables("工作日志基础数据").LoadFilter = "填报人 = \'" & User.Name & "\'"

End If

 

DataTables("工作日志基础数据").Load()

DataTables("工作日志基础数据").DataCols("结账").RaiseDataColChanged

[此贴子已经被作者于2020/9/4 11:31:48编辑过]

--  作者:有点蓝
--  发布时间:2020/9/4 11:26:00
--  
只可以编辑自己的】这个不能在这里控制,参考:http://www.foxtable.com/webhelp/topics/2254.htm
[此贴子已经被作者于2020/9/4 11:35:42编辑过]

--  作者:吃亏是福
--  发布时间:2020/9/4 11:33:00
--  那如何看自己的行和一个“组”的行呢
 那如何看自己的行和一个“组”的行呢
--  作者:有点蓝
--  发布时间:2020/9/4 11:36:00
--  
参考:http://www.foxtable.com/webhelp/topics/2256.htm
--  作者:吃亏是福
--  发布时间:2020/9/5 21:52:00
--  以"项目经理"组成员登录,如何加载“自己”的订单和“工程师”组的订单?

2、在项目的LoadUserSetting事件中设置代码,加载用户负责的订单:

If User.Name = "张经理" Then
    DataTables("订单").LoadFilter = ""
Else
    
DataTables("订单").LoadFilter = "业务员 = \'" & User.Name & "\'"
End
 If
DataTables
("订单").Load()

这样用户登录后,系统判断登录用户是否是张经理,如果是的,则加载所有订单,否则只加载登录用户负责的订单。

上面的代码是基于用户名的,同样可以改为基于用户分组的,只需将上述代码中的User.Name改为User.Group,并将用户名替换为分组名即可。


在项目的LoadUserSetting事件中设置代码,以"项目经理"组成员登录,如何加载“自己”的订单和“工程师”组的订单:


If User.Group = "项目经理" Then
    DataTables("订单").LoadFilter = ""
Else
    
DataTables("订单").LoadFilter = "填报人 = \'" & User.Group & "\'"
End
 If
DataTables
("订单").Load()

[此贴子已经被作者于2020/9/5 21:53:11编辑过]

--  作者:有点蓝
--  发布时间:2020/9/6 20:00:00
--  

If User.Group = "项目经理" Then
    DataTables("订单").LoadFilter = ""
Else
    
DataTables("订单").LoadFilter = "填报人 = \'" & User.Group & "\' or 填报人 = \'工程师\'"

End If
DataTables
("订单").Load()



--  作者:吃亏是福
--  发布时间:2020/9/6 21:08:00
--  如果是""项目经理"组,能看自己行且可以编辑;能看所有"工程师"组行,但不可以编辑
’想实现:如果是""项目经理"组,能看自己行且可以编辑;能看所有"工程师"组行,但不可以编辑.
’但是:    DataTables("工作日志基础数据").LoadFilter = "填报人 = \'" & User.Group & "\' or 填报人 = \'工程师\'" \'该行执行完后,所有的行都看不到了

If User.Group = "管理者" Then \'如果是"管理者",能看所有人,可以编辑.
    DataTables("工作日志基础数据").LoadFilter = ""
    DataTables("工作日志基础数据").AllowEdit = True
ElseIf User.Group = "高管" Then \'如果是"高管"组 ,能看所有人,但不可以编辑.
    DataTables("工作日志基础数据").LoadFilter = ""
    DataTables("工作日志基础数据").AllowEdit = False
ElseIf User.Group = "部门经理" Or User.Group = "内业" Then \'如果是""部门经理"组或者是"内业"组 ,能看所有人,但不可以编辑,只可以编辑自己的.
    DataTables("工作日志基础数据").LoadFilter = ""
    DataTables("工作日志基础数据").AllowEdit = True
ElseIf User.Group = "项目经理" Then \'如果是""项目经理"组,能看自己行且可以编辑;能看所有"工程师"组行,但不可以编辑.
    DataTables("工作日志基础数据").LoadFilter = "填报人 = \'" & User.Group & "\' or 填报人 = \'工程师\'" \'该行执行完后,所有的行都看不到了
    DataTables("工作日志基础数据").AllowEdit = True
Else
    DataTables("工作日志基础数据").LoadFilter = "填报人 = \'" & User.Name & "\'"
    DataTables("工作日志基础数据").AllowEdit = True
End If

DataTables("工作日志基础数据").Load()
DataTables("工作日志基础数据").DataCols("结账").RaiseDataColChanged

--  作者:有点蓝
--  发布时间:2020/9/6 21:37:00
--  
能不能编辑要到PrepareEdit事件处理: