Foxtable(狐表)用户栏目专家坐堂 → 【菜单授权】获取用户自己定义的菜单名、分组名、按钮名后,设置了可见与可用之后,怎么更新菜单权限呢?


  共有2313人关注过本帖平板打印复制链接

主题:【菜单授权】获取用户自己定义的菜单名、分组名、按钮名后,设置了可见与可用之后,怎么更新菜单权限呢?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
【菜单授权】获取用户自己定义的菜单名、分组名、按钮名后,设置了可见与可用之后,怎么更新菜单权限呢?  发帖心情 Post By:2018/1/7 12:54:00 [只看该作者]

【菜单授权】获取用户自己定义的菜单名、分组名、按钮名后,设置了可见与可用之后,怎么更新菜单权限呢?
要求同步实现:
在设定之后 点应用  同步更新菜单权限显示
在用户登录之后  自动更新菜单权限
【注意】有自定义用户登录窗体,在用户自定义登录之后,希望能够匹配菜单权限表里面的设置来对应显示用户下的可见菜单项目。

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

已创建菜单权限表 ,格式如上图。

下列代码获取到菜单名 分组名  按钮名
For Each rt As RibbonMenu.Tab In RibbonTabs
    For Each rg As RibbonMenu.Group In rt.Groups
        For Each rb As Object In rg.Items
            Dim dr As DataRow = DataTables("菜单权限").AddNew()
            dr("菜单名") = rt.Name
            dr("分组名") =rg.Name
            dr("按钮名") =rb.Name
        Next
    Next
Next



有点蓝老师在论坛提供过如下代码  不知道怎么用  在命令窗口运行,直接是所有的菜单都看不见了

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

[此贴子已经被作者于2018/1/7 16:20:17编辑过]

 回到顶部