菜单遍历的实现及使用

菜单遍历的实现及使用

ID:38633419

大小:24.50 KB

页数:4页

时间:2019-06-16

菜单遍历的实现及使用_第1页
菜单遍历的实现及使用_第2页
菜单遍历的实现及使用_第3页
菜单遍历的实现及使用_第4页
资源描述:

《菜单遍历的实现及使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、r(2)      //组号namename(10)   //组名示例数据: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的

3、open事件中调用,方法为: IfinitflagThen/*initflag初始化标记*/Deletefrommenudata;/*删除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=1To

4、nTotalTitlesIfnMenuTitle<10Thenmenuitem_id=menu_id+'0'+String(nMenuTitle)Elsemenuitem_id=menu_id+String(nMenuTitle)EndIf menuitem_name=menu_item.Item[nMenutitle].TextIfmatch(menuitem_name," ")ThennPos=pos(menuitem_name," ",1)menuitem_name=left(menuitem_name,nPos-1)EndIf menuitem_help=

5、menu_item.Item[nMenutitle].MicrohelpIfmenuitem_name<>'-'ThenDeclarecursor1CursorForSelectnoFromgroupdataOrderByno;Opencursor1;label1:Fetchcursor1Into:l_groupno;Ifsqlca.sqlcode=0ThenIfUpperBound(menu_item.Item[nMenutitle].Item)>0ThenInsertIntomenudata(group_no,menu_id,menu_name,menu_he

6、lp,status)values(:l_groupno,:menuitem_id+'00',:menuitem_name,:menuitem_help,'T');ElseInsertIntomenudata(group_no,menu_id,menu_name,menu_help,status)values(:l_groupno,:menuitem_id,:menuitem_name,:menuitem_help,'T');EndIfGotolabel1EndifClosecursor1;EndIf IfUpperBound(menu_item.Item[nMen

7、utitle].Item)>0Thenuf_menu_all(menu_item.Item[nMenutitle],menuitem_id)EndIf Next----设计菜单动态授权函数uf_menu_enabled,作用:根据用户登录所在的用户组生成相应的权限菜单,此函数在w_main_mdi的open事件中调用,方法为: IFg_user<>'dba'THEN/*g_user是用户登录名,为全局变量,dba为数据库的超级用户,根据用户所连接的后台数据库进行修改*/uf_menu_enabled(This.MenuID,"",'F')ELSEuf_menu_e

8、nable

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。