Foxtable(狐表)用户栏目专家坐堂 → [求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能


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

主题:[求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
[求助]狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能  发帖心情 Post By:2013/3/22 14:50:00 [显示全部帖子]

如何使用多值字段的用户分组来控制用户菜单显示


图片点击可在新窗口打开查看此主题相关图片如下:如何使用多值字段的用户分组来控制用户菜单显示.png
图片点击可在新窗口打开查看


以下代码可以实现内置用户权限管理的单个用户分组来控制用户菜单显示,
如何修成成自定义用户权限管理的多值字段的用户分组来控制用户菜单显示。

For Each rt As RibbonMenu.Tab In RibbonTabs
    rt.Visible = True
    rt.Enabled = True
    For Each rg As RibbonMenu.Group In rt.Groups
        rg.Visible = True
        rg.Enabled = True
        For Each itm As RibbonMenu.RibbonItem In rg.Items
            itm.Visible = True
            itm.Enabled = True
        Next
    Next
Next

For Each dr As DataRow In DataTables("菜单权限表").Select("分组 = '" & User.Group & "'" )
    If dr.IsNull("分组名") Then
        RibbonTabs(dr("菜单名")).Visible = Not dr("不可见")
        RibbonTabs(dr("菜单名")).Enabled = Not dr("不可用")
    ElseIf dr.IsNull("按钮名") Then
        RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Visible = Not dr("不可见")
        RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Enabled = Not dr("不可用")
    Else
        RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Visible = Not dr("不可见")
        RibbonTabs(dr("菜单名")).Groups(dr("分组名")).Items(dr("按钮名")).Enabled = Not dr("不可用")
    End If
Next


附件程序的用户名为:admin  密码:admin

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:权限与菜单管理.table



[此贴子已经被作者于2013-3-23 10:01:51编辑过]

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 16:11:00 [显示全部帖子]

按照狐爸说的:

1、代码放在自定义登陆窗口的确定按钮中

2、代码中User.Group 改为 _UserGrop

代码如下:

Dim user As String = e.Form.Controls("UserName").Text
Dim pwd As String = e.Form.Controls("PassWord").Text
Dim dr As DataRow = DataTables("员工信息").Find("员工姓名 = '" & user & "'")   '分开查询,防注入登录
If dr IsNot Nothing Then
    pwd = MD5Encrypt (pwd)
    If user = dr("员工姓名") Then
        If dr("员工状态") = "在职" Then
            If pwd = dr("员工密码") Then
            _UserName = dr("员工姓名")
            _UserLoginName = user
            _UserGroup = dr("公司职位")
            e.Form.Close ()
            Else
                Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information)
            End If
        Else
            Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information)
        End If
    Else
        Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information)
    End If
Else
    Messagebox .Show ("输入的账号或密码错误,请重试!","提示", MessageBoxButtons .OK ,MessageBoxIcon . Information)
End If

For Each rt As RibbonMenu . Tab In RibbonTabs
    rt .Visible = True
    rt .Enabled = True
    For Each rg As RibbonMenu . Group In rt .Groups
        rg .Visible = True
        rg .Enabled = True
        For Each itm As RibbonMenu . RibbonItem In rg .Items
            itm .Visible = True
            itm .Enabled = True
        Next
    Next
Next

For Each dr As DataRow In DataTables ("菜单管理" ). Select( "公司职位 = '" & _UserGroup & "'" ) 
    If dr .IsNull ( "Groups名称" ) Then
        RibbonTabs (dr ("RibbonTabs名称" )). Visible = Not dr ("隐藏" )
        RibbonTabs (dr ("RibbonTabs名称" )). Enabled = Not dr ("禁用" )
    ElseIf dr .IsNull ( "Items名称" ) Then
        RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Visible = Not dr ("隐藏" )
        RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Enabled = Not dr ("禁用" )
    Else
        RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Items( dr ("Items名称" )). Visible = Not dr ("隐藏" )
        RibbonTabs (dr ("RibbonTabs名称" )). Groups( dr ("Groups名称" )). Items( dr ("Items名称" )). Enabled = Not dr ("禁用" )
    End If
Next


点提交时出现以下错误提示:


此主题相关图片如下:2013-03-22_16-09-04.png
按此在新窗口浏览图片


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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 17:18:00 [显示全部帖子]

ybil 版主,我把代码改成 
For Each dr  In DataTables ("菜单管理" ). Select( "公司职位 = '" & _UserGroup & "'" ) 


在系统登录时出现以下错误提示:


此主题相关图片如下:2013-03-22_17-14-27.png
按此在新窗口浏览图片


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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 17:42:00 [显示全部帖子]

谢谢【ybil】和【muhua】的指导,现在没有提示错误了,但设置了隐藏和禁用的,还是会显示出来的。

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/22 22:52:00 [显示全部帖子]

有那位高手能解吗?

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/23 9:59:00 [显示全部帖子]

狐爸,现在编写通过多值字段的用户分组来控制用户菜单显示太难了,希望能下次更新时,能增加这个功能

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/23 10:01:00 [显示全部帖子]

狐爸,能用 1楼 所提供的实际案例做的程序源码,把通过多值字段的用户分组来控制用户菜单显示功能改成可以使用的吗?

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/23 10:45:00 [显示全部帖子]

唐尸三摆手 兄,主要是我们自己水平有限,目前发现不了不能成功实现的原因,所以来请狐爸帮忙来了。

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/23 11:29:00 [显示全部帖子]

嘿嘿,muhua 大侠都说有难度了,看来不是我们新手可以解决的。就看狐爸的了。

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/3/23 11:49:00 [显示全部帖子]

谢谢 muhua 再次大侠出手解决,我先下载下来研究一下。

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