菜单遍历的实现及使用

上传人:kms****20 文档编号:40405489 上传时间:2018-05-26 格式:DOC 页数:4 大小:24.50KB
返回 下载 相关 举报
菜单遍历的实现及使用_第1页
第1页 / 共4页
菜单遍历的实现及使用_第2页
第2页 / 共4页
菜单遍历的实现及使用_第3页
第3页 / 共4页
菜单遍历的实现及使用_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《菜单遍历的实现及使用》由会员分享,可在线阅读,更多相关《菜单遍历的实现及使用(4页珍藏版)》请在金锄头文库上搜索。

1、菜单遍历的实现及使用(深圳:独孤求败 2003-05-26)-在使用 PB 开发信息系统中,我们经常需要对用户的操作进行权限控制,结合数据库功能,对用户从菜单一级进行限制是一种切实可行的方法,本文为了说明方便设计三个表:用户表 userdata,用户组表 groupdata 和菜单数据表 menudata(在实际使用时,相应数据可直接与对系统表取得),其表结构和数据如下:userdata:nochar(2) /用户号namename(10) /用户名passwdname(8) /口令groupnochar(2) /组号groupdata:nochar(2) /组号namename(10) /组

2、名示例数据:01 数据库管理员02 数据管理员03 高级查询用户04 中查询用户05 初级查询用户menudata:group_nochar(2) /组号menu_idvarchar(10) /菜单号menu_namevarchar(30) /菜单名statuschar(1) /权限 T:可操作 F:不可操作-设计菜单遍历函数 uf_menu_all,作用:将菜单数据根据用户组表 groupdata 的内容写入菜单数据表 menudata 中,此函数在 w_main_mdi 的 open 事件中调用,方法为: IfinitflagThen/*initflag 初始化标记*/Deletefrom

3、menudata;/*删除 menudata 的原有数据*/uf_menu_all(This.MenuID,“)EndIf函数 uf_menu_all 的 Script 如下:IntegernMenuTitle,nTotalTitles,nPosStringmenuitem_id,menuitem_name,menuitem_help,l_groupnonTotalTitles=UpperBound(menu_item.item)FornMenuTitle=1TonTotalTitlesIfnMenuTitle-ThenDeclarecursor1CursorForSelectnoFromgr

4、oupdataOrderByno;Opencursor1;label1:Fetchcursor1Into:l_groupno;Ifsqlca.sqlcode=0ThenIfUpperBound(menu_item.ItemnMenutitle.Item)0ThenInsertIntomenudata(group_no,menu_id,menu_name,menu_help,status)values(:l_groupno,:menuitem_id+00,:menuitem_name,:menuitem_help,T);ElseInsertIntomenudata(group_no,menu_i

5、d,menu_name,menu_help,status)values(:l_groupno,:menuitem_id,:menuitem_name,:menuitem_help,T);EndIfGotolabel1EndifClosecursor1;EndIf IfUpperBound(menu_item.ItemnMenutitle.Item)0Thenuf_menu_all(menu_item.ItemnMenutitle,menuitem_id)EndIf Next-设计菜单动态授权函数 uf_menu_enabled,作用:根据用户登录所在的用户组生成相应的权限菜单,此函数在 w_main_mdi 的 open 事件中调用,方法为: IFg_user0Thenuf_menu_enabled(menu_item.ItemnMenutitle,menuitem_id,flag)EndIf Next

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号