Foxtable(狐表)用户栏目专家坐堂 → 窗口中按钮权限设置


  共有4514人关注过本帖树形打印复制链接

主题:窗口中按钮权限设置

美女呀,离线,留言给我吧!
xiaohuli
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
窗口中按钮权限设置  发帖心情 Post By:2015/7/7 22:19:00 [显示全部帖子]

有一张权限表,里面有用户名,岗位名称,角色,按钮名,按钮不可用(逻辑列)等字段,然后做了一个窗口,想对窗口中的按钮进行设置权限,不同的用户登录进去打开这个窗口后,有些按钮是不可用的,有些按钮是可用的。这个该如何用代码控制权限。

eg:

权限表:

用户名  岗位名称, 按钮名称,                      按钮不可用

张三      会计专员   人事档案   考勤   生日提醒        是

像这张表所示,当张三用户登录后,打开一个窗口,该窗口上的人事档案,考勤,生日提醒等按钮都变为不可用的。


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/7/7 22:27:00 [显示全部帖子]

 

[此贴子已经被作者于2015/7/7 22:41:28编辑过]

 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/7/8 20:21:00 [显示全部帖子]

老师,窗口中按钮的权限已经能控制了,那窗口中还有个任务栏,任务栏中的任务怎么控制权限呀,也能通过权限表来控制吗?求老师帮忙。


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/7/8 21:09:00 [显示全部帖子]

老师,能不能通过权限表来对任务栏的任务进行控制,就想控制按钮一样。

For Each dr As DataRow In DataTables("权限表").Select("用户名 = '" & user.Name & "' and 按钮不可用 = true")
    For Each bn As String In dr("按钮名称").split(",")
        If e.Form.Controls.Contains(bn) Then
            e.Form.Controls(bn).Enabled = False
        End If
    Next
Next


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/24 14:46:00 [显示全部帖子]

老师,我现在想实现当权限表中有按钮名称,并且按钮不可用打钩后,然后点击按钮的时候,按钮就不能打开,并且提示你无权操作。能不能将下面这段代码帮我改一下,也就是说当权限表中对这些按钮分配了权限,然后点击按钮的时候就判断,当前用户对当前按钮是否有操作权限。

For Each dr As DataRow In DataTables("权限表").Select("用户名 = '" & user.Name & "' and 按钮不可用 = true")
    For Each bn As String In dr("按钮名称").split(",")
        If e.Form.Controls.Contains(bn) Then
          MessageBox.show("你无权操作!")
        End If
    Next
Next


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/24 15:35:00 [显示全部帖子]

老师,窗口中有一些按钮,还有一个权限表,我想通过这个权限表来控制窗口中的按钮,当权限表中对一个用户分配了一些按钮不可用的权限后,然后主窗口打开后,如果当前用户对主窗口中的某些按钮没有操作权限的时候就弹出你无权操作的提示框。

老师,刚刚用你代码试过了,还是不起作用,我是写在窗口中的click中了。


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/24 17:29:00 [显示全部帖子]

老师,现在代码能执行了,没有权限的弹出提示框,有权限的应该打开对应的窗口,有权限的怎么打开对应的窗口呀。


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/25 10:19:00 [显示全部帖子]

For Each dr As DataRow In DataTables("权限表").Select("用户名 = '" & user.Name & "' and 按钮不可用 = true")
    For Each bn As String In dr("按钮名称").split(",")
        If bn = e.sender.Name Then
          MessageBox.show("你无权操作!")

          return

else 

If  e.sender.Name = "button1" then

    Forms("窗口1").Open

ElseIf  e.sender.Name = "button2" then

    Forms("窗口2").Open

end If

        End If
    Next
Next

 

老师,我是这样写的,如果这样写的话是有问题的,本来是没权限打开那个点击按钮之后的窗口,但是一点击按钮后窗口就打开了,还关不掉,一直弹出那个窗口,等关好几次后窗口关掉后,才弹出你无权操作的提示框。我的想法是这样的,如果权限表中对该按钮设置了权限,按钮不可用为true,就不能打开窗口,如果在权限表中没有对按钮设置权限的话,就能打开对应的窗口。

 


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/25 10:45:00 [显示全部帖子]

如果按14楼的代码去写,那就更不对了,因为这样写的话,每个按钮都能打开对应的窗口,等将窗口关闭后,又弹出了无权操作的提示框。

 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/9/22 15:29:00 [显示全部帖子]

老师,目前窗口中有两部分的按钮,一部分按钮是通过权限表来控制的,

但是还有一部分代码是不需要通过权限表来控制,直接点击按钮就能打开窗口,目前不需要通过权限表来控制的按钮是可以打开,但是还是会有无权操作的提示,如何实现一个窗口中两种按钮的控制,比如,在窗口中有btn1,btn2,btn3,btn4四个按钮,btn1和btn2是通过权限表来控制的,

在窗口的click事件中写如下代码:

For Each dr As DataRow In DataTables("权限表").Select("用户名 = '" & user.Name & "' and 按钮不可用 = true")
    For Each bn As String In dr("按钮名称").split(",")
        If bn = e.sender.Name Then
          MessageBox.show("你无权操作!")
          return
        End If
    Next
Next
 
'其余代码

btn3和btn4直接在按钮的click事件中写forms("").open,这两种控制方式如何都能实现。

目前的状态是点击btn3和btn4能打开窗口,但同时也会出现无权操作的提示。


 回到顶部
总数 12 1 2 下一页