当前位置: 代码迷 >> PB >> PB中菜单权限有关问题
  详细解决方案

PB中菜单权限有关问题

热度:231   发布时间:2016-04-29 10:25:24.0
PB中菜单权限问题
功能函数如下:
F_set_menuqx(menu vm_item)

long i,ll_itemcount,ll_find ,ll_count
string ls_menuitem

ll_itemcount = Upperbound(vm_menu.item)
ll_count = gds_menuqx.rowcount()
for i =1 to ll_itemcount
ls_menuitem = vm_menu.item[i].classname();
//分割符号 不处理
if ls_menuitem = '-' then continue;
ll_find = gds_menuqx.find("menuitemname = '" + ls_menuitem + "'",1,ll_count)

//存在 下级菜单,先处理下级菜单
if upperbound(vm_menu.item[i].item) > 0 then
f_set_menuqx(vm_menu.item[i])
end if
//处理本级
if ll_find > 0 then //权限列表中存在
// vm_menu.item[i].visible= true //标识A
vm_menu.item[i].show()//标识B
else
//权限列表中不存在该菜单
// vm_menu.item[i].visible = false//标识A
vm_menu.item[i].hide()//标识B
end if
next



大家知道,在MIS系统中难免会遇到权限设置的问题。有的系统可以控制到具体显示的字段,有的可以控制到功能按钮,有的可以控制到菜单。
控制到菜单的时候,实现方法不同,产生的实际效果会有一些差别。以上函数为在实际应用中控制到菜单的功能函数。
若菜单权限表中没有数据,也就是没有设置权限的时候。若通过标识A的写法,你会发现,首个菜单项目是不会被隐藏成功的。
设置菜单权限后,菜单项的显示会有些乱,表现为 没有设置权限的菜单项显示了出来,设置了权限的菜单项却没有显示出来。

后来猜测可能是菜单项目的ITEM[I]属性有关系。
于是更改写法为标识B,问题才得到解决。
写下做个备注。以免下次发生同样的错误。以示警醒。


------解决方案--------------------
接分。。
  相关解决方案