Foxtable(狐表)用户栏目专家坐堂 → 请教菜单权限授权问题


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

主题:请教菜单权限授权问题

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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
请教菜单权限授权问题  发帖心情 Post By: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编辑过]

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


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

截图看看代码编辑器里的菜单层次和表里存储的数据

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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2017/3/18 9:21:00 [只看该作者]


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

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

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2017/3/18 10:47:00 [只看该作者]

我之前也这样写过,执行也不行,现按你的代码执行还是不成功,如图3

 


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

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2017/3/18 14:48:00 [只看该作者]

还是不行,结果为图4


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


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
乡里出城
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2017/3/18 16:13:00 [只看该作者]

我试过这样写代码,但是执行还是授权不成功啊

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


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

上传项目说明

 回到顶部