Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
在用户登录窗口的登录按钮中,我做了一个权限的代码,意思就是按用户的分组进行权限来加载窗口,首先是一个显示菜单的遍历,然后是根据分组来决定关闭哪些功能区及某个功能区的相关的功能组,按下面的代码做了之后,我发现一个问题,当一个用户直接登录时,代码没问题,如果说在菜单中选择了切换客户后,问题就出来了,原来有功能组给关闭的报表功能区及系统功能区中的相关的功能组就仍然是关闭的了
看来,我原来认为 rb,就是一个菜单的所有功能区及功能组的集合,现在看来只是功能区,并不代表功能组,那么,应该如何来做呢?
For Each rb As RibbonMenu.Tab In RibbonTabs 'RibbonTabs是一个菜单集合,可以用for each遍历的
rb.Visible = True '显示菜单
Next
Select Case dr("Group")
Case "采购"
RibbonTabs("销售管理").Visible = False
RibbonTabs("财务管理").Visible = False
RibbonTabs("系统管理").Groups("销售信息").Visible = False
RibbonTabs("系统管理").Groups("财务信息").Visible = False
RibbonTabs("报表管理").Groups("销售出库").Visible = False
RibbonTabs("报表管理").Groups("财务报表").Visible = False
Case "销售"
RibbonTabs("财务管理").Visible = False
RibbonTabs("采购管理").Visible = False
RibbonTabs("系统管理").Groups("采购信息").Visible = False
RibbonTabs("系统管理").Groups("财务信息").Visible = False
RibbonTabs("报表管理").Groups("采购入库").Visible = False
RibbonTabs("报表管理").Groups("财务报表").Visible = False
Case "财务"
RibbonTabs("销售管理").Visible = False
RibbonTabs("采购管理").Visible = False
RibbonTabs("系统管理").Groups("销售信息").Visible = False
RibbonTabs("系统管理").Groups("采购信息").Visible = False
RibbonTabs("报表管理").Groups("销售出库").Visible = False
RibbonTabs("报表管理").Groups("采购入库").Visible = False
End Select
我以前也遇到过这个问题 我给你段老大给我的代码 你参考下!
RibbonTabs("功能区1").Visible = False
RibbonTabs("功能区2")("功能组2")("标准按钮9").Enabled = (_usergroup <> "东区销售经理")
RibbonTabs("功能区2")("功能组2")("组合按钮2").Enabled = (_usergroup <> "东区销售经理")
RibbonTabs("功能区2")("功能组3")("标准按钮7").Enabled = Not (_usergroup Like "*销售部")
RibbonTabs("功能区2")("功能组3")("标准按钮8").Enabled = Not (_usergroup Like "*销售部")
RibbonTabs("功能区2")("功能组2").Enabled = _usergroup <> "东区市场部"
RibbonTabs("功能区2")("功能组3").Enabled = _usergroup <> "东区市场部"
Qat().Enabled = _usergroup <> "东区市场部"
我以前也遇到过这个问题 我给你段老大给我的代码 你参考下!
RibbonTabs("功能区1").Visible = False
RibbonTabs("功能区2")("功能组2")("标准按钮9").Enabled = (_usergroup <> "东区销售经理")
RibbonTabs("功能区2")("功能组2")("组合按钮2").Enabled = (_usergroup <> "东区销售经理")
RibbonTabs("功能区2")("功能组3")("标准按钮7").Enabled = Not (_usergroup Like "*销售部")
RibbonTabs("功能区2")("功能组3")("标准按钮8").Enabled = Not (_usergroup Like "*销售部")
RibbonTabs("功能区2")("功能组2").Enabled = _usergroup <> "东区市场部"
RibbonTabs("功能区2")("功能组3").Enabled = _usergroup <> "东区市场部"
Qat().Enabled = _usergroup <> "东区市场部"
谢谢,我用死办法做了一下,也可以用,我发贴的目的是为了搞清楚这个问题,呵呵
死办法可以用? 什么办法?
死办法可以用? 什么办法?
和你的差不多,我就是在一楼的两段代码中间加了这几行代码,就可以了
RibbonTabs("系统管理").Groups("销售信息").Visible = True
RibbonTabs("系统管理").Groups("财务信息").Visible = True
RibbonTabs("系统管理").Groups("采购信息").Visible = True
RibbonTabs("报表管理").Groups("销售出库").Visible = True
RibbonTabs("报表管理").Groups("采购入库").Visible = True
RibbonTabs("报表管理").Groups("财务报表").Visible = True
我的想法是,这几个功能组,常常会关闭,那我每次在打开功能区的情况下,再打开这几个功能区,然后再根据权限来关闭某些功能组吧,呵呵
是不是这样的,启动的时候是默认全部可见的,但是切换用户的时候,没有初始化的命令的动作,表就保持这个状态了。因为恢复visible这个状态,你没有加入到切换用户这个事件中。个人感觉foxtable关于用户的权限是通过修改datatable属性完成的,你修改后,需要重新初始化。
是不是这样的,启动的时候是默认全部可见的,但是切换用户的时候,没有初始化的命令的动作,表就保持这个状态了。因为恢复visible这个状态,你没有加入到切换用户这个事件中。个人感觉foxtable关于用户的权限是通过修改datatable属性完成的,你修改后,需要重新初始化。
我说的是菜单的权限,呵呵