Foxtable(狐表)用户栏目专家坐堂 → [分享]批量设置窗口菜单权限


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

主题:[分享]批量设置窗口菜单权限

帅哥哟,离线,有人找我吗?
scofields
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:525 积分:4166 威望:0 精华:0 注册:2016/4/17 20:05:00
[分享]批量设置窗口菜单权限  发帖心情 Post By:2017/10/14 20:22:00 [只看该作者]

应用场景:窗口菜单通过目录树形式的权限进行控制,在设置窗口菜单权限时,传统方法是:

e.Form.Strips("主菜单").Items("新增").enabled = Functions.Execute("ShouQuan","信息识别组","新增")
e.Form.Strips("主菜单").Items("删除").enabled = Functions.Execute("ShouQuan","信息识别组","删除")
.......
......
这就是说窗口菜单MenuItem有多少个组,有多少个权限,就要写多少个上面的长代码,显然是很繁琐的,三句代码,一次性搞定,这就是foxtable的魅力:
For Each sit As WinForm.StripItem In e.Form.Strips("主菜单").Items
 e.Form.Strips("主菜单").Items(sit.name).enabled = Functions.Execute("ShouQuan","信息识别组",sit.name) ‘这段代码是蓝老师提供,感谢
Next

只需要控住权限组就行了。

 回到顶部
帅哥哟,离线,有人找我吗?
zhengboxin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4520 威望:0 精华:0 注册:2013/4/27 22:20:00
  发帖心情 Post By:2017/10/16 9:49:00 [只看该作者]

mark

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:525 积分:4166 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2017/10/16 11:19:00 [只看该作者]

甜老师,我发现这种模式下控制不了图示的权限,我想实现对下拉的窗口菜单进行权限控制,而不是整个控制啊

图片点击可在新窗口打开查看此主题相关图片如下:112.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/16 12:17:00 [只看该作者]

写多个for next循环

 

For Each sit As WinForm.StripItem In e.Form.Strips("主菜单").Items
    sit.enabled = Functions.Execute("ShouQuan","信息识别组",sit.name) '这段代码是蓝老师提供,感谢
    For Each ssit As WinForm.StripItem In sit.Items
        ssit.enabled = Functions.Execute("ShouQuan","信息识别组",ssit.name) '这段代码是蓝老师提供,感谢
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:525 积分:4166 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2017/10/16 22:11:00 [只看该作者]

老师,还是反反复复的报错啊
 For Each sit As WinForm.StripItem In e.Form.Strips("主菜单").Items
    sit.enabled = Functions.Execute("ShouQuan","主菜单",sit.name) '这段代码是蓝老师提供,感谢
    For Each ssit As WinForm.StripItem In sit.Items
        ssit.enabled = Functions.Execute("ShouQuan","人像管理",ssit.name) '这段代码是蓝老师提供,感谢
    Next
For Each ssitt As WinForm.StripItem In sit.Items
        ssitt.enabled = Functions.Execute("ShouQuan","IC卡管理",ssitt.name) '这段代码是蓝老师提供,感谢
    Next

Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/16 22:17:00 [只看该作者]

报什么错误?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/16 22:22:00 [只看该作者]

试试

For Each sit As WinForm.StripItem In e.Form.Strips("主菜单").Items
    sit.enabled = Functions.Execute("ShouQuan","主菜单",sit.name)
    If sit.enabled Then
        For Each ssit As WinForm.StripItem In sit.Items
            ssit.enabled = Functions.Execute("ShouQuan","人像管理",ssit.name)
            If ssit.enabled Then
                For Each ssitt As WinForm.StripItem In ssit .Items
                    ssitt.enabled = Functions.Execute("ShouQuan","IC卡管理",ssitt.name)
                Next
            End If
        Next
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
drcqh
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:326 积分:3717 威望:0 精华:0 注册:2013/1/7 17:39:00
  发帖心情 Post By:2019/2/25 11:18:00 [只看该作者]

学习学习

 回到顶部