- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
菜单条级权限的设置
菜单条级权限的设置(深圳:独孤求败?2003-05-26)
在一个网络应用程序中,对不同的使用人员授与不同的程序使用权是非常重要的。一般的应用程序都分:录入权,查询权,修改权,审核权等等,很多功能可细分到菜单条级,才能方便管理,不同的功能应用应该授与不同工作性质的人员,才能使一个公司或团体分工明确,责任清晰,实现规范化管理。?对系统管理人员来说灵活方便地设置不同人员的对程序的不同权限,并能够不以用户身份进入程序也能查看到用户所拥有的权限,这是后台管理程序最基本的要求。本人通过实践摸索在PB中实现了用户程序到菜单条级权限的设置和查看。此模块方便之处是管理员在设置用户权限时所见的菜单与用户所用的菜单一致,用户有哪些权限一目了然。?我们先来看PB与此相关的两个函数:Mid?and?Replace?1.函数Mid?(?string,?start?{,?length}?)?取string字串中第start项后的length位字串。?例:Mid(ABCDEFG,3,2)?返回值:DE?2.函数Replace?(?string1,?start,?n,?string2?)?替换string1中第start?项后n位,用string2?串。?例:Replace?(?ABCDEFGH,3,2,abc?)?返回值:ABCabcFGH?到此可能用过PB的朋友已能猜出这两个函数就是在PB中实现菜单条权限定义的基础。?我们先假设我们应用程序的菜单如下图:?M_1 M_2 M_3?......?M1_1? M2_1? M3_1?M1_2? M2_2? M3_2?M1_3? M2_3 ?M3_3?M1_4 ?M2_4? ?M2_5??要求菜单条变量名的定义严格按照矩阵方式定义。然后复制一份与应用程序菜单一样的菜单模式,用于系统授权模块使用,包括菜单条变量名也一样,只不过菜单条下无调用程序代码,而是菜单状态设置函数。设三个字符串全局变量,用于表示菜单条的状态。我们约定0表示菜单条为不可选,1为可选。?string?M1,M2,M3?M1=0000 file://对应M_1的四个子菜单条?M2=00000? file://对应M_2的五个子菜单条?M3=000? file://对应M_1的三个子菜单条?设初始值为菜单条皆不可选。?在M1_1菜单下clicked事件程序为:?IF?m1_1.Checked?=?TRUE?THEN?m1_1.UnCheck(?)?M1?=?Replace(?M1,?1,?1,?0)?ELSE?m1_1.Check(?)?M1?=?Replace(?M1,?1,?1,?1)?END?IF? ?在M1_1菜单下clicked事件程序为:? ?IF?m1_2.Checked?=?TRUE?THEN?m1_2.UnCheck(?)?M1?=?Replace(?M1,?2,?1,?0)?ELSE?m1_2.Check(?)?M1?=?Replace(?M1,?2,?1,?1)?END?IF?.....其它以此类推?函数说明:?file://m1_2.Check(?)在所点选菜单条前加V(钩符号)?file://m1_2.UnCheck(?)?在所点选菜单条前去掉V(钩符号)? ?如果A用户可使用M1_1,M1_3;?M2_2;?M3_1。那通过你鼠标的点选,菜单状态变量的值应该为:?M1=1010?M2=01000?M3=100? ?如果B用户可使用M1_1;?M2_3,M2_4,M2_5;?M3_1,M3_2,M3_3。那通过你鼠标的点选,菜单状态变量的值应该为:?M1=1000?M2=00111?M3=111?把此值对应存入A、B用户的权限字段中,在A、B用户进入应用程序时取出,对应设置菜单条的可用与不可用,即实现了对用户使用菜单权限的定义。?
文档评论(0)