以文本方式查看主题

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

--  作者:douglas738888
--  发布时间:2012/7/23 10:30:00
--  请教权限设置的问题
我用的是开发版,在编程过程中已完成权限设置,不同的员工通过密码登陆后可实现不让看到的表和列,一直都没有问题;后来我想自己设计登陆窗口按照自定义用户与权限管理的指导“建立一个源,连接到文件“用户.mdb”,源的名称设置为“User”等一系列工作完成后,原来设置的权限不起作用(Name、Group与原来的设置是一致的),但删除外部设计源又恢复正常,不知问题出在哪里???特请教
--  作者:douglas738888
--  发布时间:2012/7/23 10:41:00
--  

以下是原来权限设置的代码,请看看是否有误(BCDEFGH是各员工的名称)

Select Case User.Name
    Case "B","C","F","G","H"
        Tables("集团员工档案").Visible = False
End Select
Select Case User.Name
    Case "D","E"
        Tables("集团员工档案").Cols.Remove("试用期工资")
        Tables("集团员工档案").Cols.Remove("转正后薪级")
        Tables("集团员工档案").Cols.Remove("目前薪资")
        Tables("集团员工档案").Cols.Remove("目前薪级")
        Tables("集团员工档案").Cols.Remove("薪资变动记录")
End Select
Select Case User.Name
    Case "F","G","H"
        Tables("网站业务系统密码信息记录").Visible = False
End Select
Select Case User.Name
    Case "B","C","D","E","F","G","H"
        Tables("员工薪酬福利").Visible = False
End Select
Select Case User.Name
    Case "B","C","D","E","F","G","H"
        Tables("薪资变动表").Visible = False
End Select
Select Case User.Name
    Case "B","C","F","G","H"
        Tables("员工试用与转正事务").Visible = False
    Case "D","E"
        Tables("员工试用与转正事务").Cols.Remove("试用薪资")
        Tables("员工试用与转正事务").Cols.Remove("转正岗级")
        Tables("员工试用与转正事务").Cols.Remove("转正岗级工资")
End Select
Select Case User.Name
    Case "B","C","D","E","F","G","H"
        Tables("员工岗级晋升或降级").Visible = False
End Select
Select Case User.Name
    Case "B","C","F","G","H"
        Tables("员工离职事务").Visible = False
End Select
Select Case User.Name
    Case "B","C","F","G","H"
        Tables("员工请假或假期记录").Visible = False
End Select
Select Case User.Name
    Case "B","C","D","E","F","G","H"
        Tables("员工入职一周访谈记录").Visible = False
End Select
Select Case User.Name
    Case "B","C","D","E","F","G","H"
        Tables("员工入职三十天访谈记录").Visible = False
End Select
Select Case User.Name
    Case "B","C","F","G","H"
        Tables("员工岗级晋升考核评定").Visible = False
    Case "D","E"
        Tables("员工岗级晋升考核评定").Cols.Remove("原岗级")
        Tables("员工岗级晋升考核评定").Cols.Remove("申请岗级")
End Select
Select Case User.Name
    Case "C","F","G","H"
        Tables("人员配置情况").Visible = False
End Select
Select Case User.Name
    Case "C","G","H"
        Tables("人员面试和复试").Visible = False
    Case "D","E","B","F"
        Tables("人员面试和复试").Cols.Remove("薪资要求")
End Select
Select Case User.Name
    Case "B","C","F","G","H"
        Tables("KPI考核记录").Visible = False
End Select
Select Case User.Name
    Case "B","C","F","G","H"
        Tables("部门预算").Visible = False
End Select

 

 

If User.Group = "A" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "B" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "C" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "D" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "E" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "F" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "G" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next
End If
If User.Group = "H" Then
    For Each dt As DataTable In DataTables
        dt.AllowClipBoard = False
    Next


--  作者:blackzhu
--  发布时间:2012/7/23 10:43:00
--  
如果用系统自带的登录用  User.name   这样的形式


如果是自己设置的  要用你的设置的变量       帮助的说明  是_UserName  这样的格式.

--  作者:狐狸爸爸
--  发布时间:2012/7/23 10:45:00
--  

看看最后面的总结部分:

 

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

 


--  作者:douglas738888
--  发布时间:2012/7/23 11:07:00
--  
是只能IF格式采用_UserName,还是Select格式的也可采取这样的方法?
--  作者:douglas738888
--  发布时间:2012/7/23 11:11:00
--  
另外,在应用中会跳出两个登陆窗口,一个是原来程序带的,另外一个是自定义的,我想只跳出一个登陆窗口,不知如何做。“也可以考虑在菜单中另外加入一个系统登录命令,代码设置为:Syscmd.Project.Switchuser()”这句话怎么理解?谢谢
--  作者:狐狸爸爸
--  发布时间:2012/7/23 11:18:00
--  

1、去掉系统自带的登陆窗口:

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

 

2、既然已经采用了自定义用户管理和登陆,肯定不能用Syscmd.Project.Switchuser,你要切换用户的话,就得: Forms("你的登陆窗口名").Open()


--  作者:douglas738888
--  发布时间:2012/7/23 15:44:00
--  

急求!总结部分理解的不是很清楚,权限代码也进行了修正,自定义窗口登陆的问题解决了,但是所设立的限制某位员工不能看见某列的功能实现了,但是限制看到表的功能依然没有解决,不知是不是我的代码有问题?还是哪里又没弄对?

在项目设置中修改完成,总是跳出自定义的登录窗口,输入账号名称和密码后无反应,必须重新启动计算机才能重新开始,很麻烦,

请老师解答,谢谢!!!!!!


--  作者:狐狸爸爸
--  发布时间:2012/7/23 17:45:00
--  
以下是引用douglas738888在2012-7-23 15:44:00的发言:

但是限制看到表的功能依然没有解决,不知是不是我的代码有问题?还是哪里又没弄对?

 

 

 

相关代码中,User.Name应该改为_UserName


--  作者:douglas738888
--  发布时间:2012/7/24 14:42:00
--  

狐爸,相关代码我已经改为_UserName 和_UserGroup,问题还是没有解决,另外我在项目属性中设置代码(不让相关人员登录窗口后看到“员工薪酬福利”表

Select Case _UserName
    Case "B","C","F","G","H"
        Tables("员工薪酬福利").Visible = False
End Select

不执行,通过自定义窗口进入后,点击员工薪酬福利按钮,窗口死机,?????