以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 请教菜单权限授权问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=97750)
|
-- 作者:乡里出城
-- 发布时间:2017/3/17 18:39:00
-- 请教菜单权限授权问题
只在菜单权限表里的菜单名填写,执行下面代码就成功授权,但同时在分组名里填写后,授权就不成功,下面红色的代码的逻辑不知道怎么写才正确,麻烦指导一下,谢谢! For i As Integer = 0 To ribbontabs.count - 1
RibbonTabs(i).Visible = False
Next
For Each dr As DataRow In DataTables("菜单权限表").Select("分组 = \'" & user.name & "\'" )
If dr.IsNull("分组名") Then
RibbonTabs(dr("菜单名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Enabled = dr("可用") ElseIf dr.IsNull("按钮名") Then
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Enabled = dr("可用")
Else
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Visible = dr("可见")
RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Enabled = dr("可用")
End If
Next
[此贴子已经被作者于2017/3/17 18:39:38编辑过]
|
-- 作者:有点蓝
-- 发布时间:2017/3/17 20:22:00
--
截图看看代码编辑器里的菜单层次和表里存储的数据
|
-- 作者:乡里出城
-- 发布时间:2017/3/18 9:21:00
--
此主题相关图片如下:图1.jpg
此主题相关图片如下:图2.jpg
|
-- 作者:有点蓝
-- 发布时间:2017/3/18 10:07:00
--
For Each dr As DataRow In DataTables("菜单权限表").Select("分组 = \'" & user.name & "\' and 菜单名 is not null" ) If dr.IsNull("分组名") Then RibbonTabs(dr("菜单名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Enabled = dr("可用") ElseIf dr.IsNull("按钮名") Then RibbonTabs(dr("菜单名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Enabled = dr("可用") Else RibbonTabs(dr("菜单名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Enabled = dr("可用") End If Next
|
-- 作者:乡里出城
-- 发布时间:2017/3/18 10:47:00
--
我之前也这样写过,执行也不行,现按你的代码执行还是不成功,如图3
此主题相关图片如下:图3.jpg
|
-- 作者:有点蓝
-- 发布时间:2017/3/18 11:06:00
--
For i As Integer = 0 To ribbontabs.count - 1 RibbonTabs(i).Visible = False For j As Integer = 0 To RibbonTabs(i).Groups .count - 1 RibbonTabs(i).Groups (j).Visible = False Next Next
|
-- 作者:乡里出城
-- 发布时间:2017/3/18 14:48:00
--
还是不行,结果为图4
此主题相关图片如下:图4.jpg
|
-- 作者:有点蓝
-- 发布时间:2017/3/18 15:36:00
--
能不能自己学会分析理解一下代码呢?
For i As Integer = 0 To ribbontabs.count - 1 RibbonTabs(i).Visible = False For j As Integer = 0 To RibbonTabs(i).Groups .count - 1 RibbonTabs(i).Groups (j).Visible = False Next Next
For Each dr As DataRow In DataTables("菜单权限表").Select("分组 = \'" & user.name & "\' and 菜单名 is not null" ) If dr.IsNull("分组名") Then RibbonTabs(dr("菜单名")).Visible = dr("可见") If dr("可见") = True Then For j As Integer = 0 To RibbonTabs(dr("菜单名")).Groups .count - 1 RibbonTabs(dr("菜单名")).Groups (j).Visible = True Next End If RibbonTabs(dr("菜单名")).Enabled = dr("可用") ElseIf dr.IsNull("按钮名") Then RibbonTabs(dr("菜单名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Enabled = dr("可用") Else RibbonTabs(dr("菜单名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Visible = dr("可见") RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Enabled = dr("可用") End If Next
|
-- 作者:乡里出城
-- 发布时间:2017/3/18 16:13:00
--
我试过这样写代码,但是执行还是授权不成功啊
|
-- 作者:有点蓝
-- 发布时间:2017/3/18 16:27:00
--
上传项目说明
|