在PowerBuilder中实现菜单条级权限的设置
2001-07-03 16:26
751 查看
在PowerBuilder中实现菜单条级权限的设置
云南昆明 陈进在一个网络应用程序中,对不同的使用人员授与不同的程序使用权是非常重要的。一般的应用程序都分:录入权,查询权,修改权,审核权等等,很多功能可细分到菜单条级,才能方便管理,不同的功能应用应该授与不同工作性质的人员,才能使一个公司或团体分工明确,责任清晰,实现规范化管理。 |
对系统管理人员来说灵活方便地设置不同人员的对程序的不同权限,并能够不以用户身份进入程序也能查看到用户所拥有的权限,这是后台管理程序最基本的要求。本人通过实践摸索在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用户进入应用程序时取出,对应设置菜单条的可用与不可用,即实现了对用户使用菜单权限的定义。 |
相关文章推荐
- 052医疗项目-模块五:权限设置-实现根据用户显示不同的菜单
- NET 利用 jquery+ztree 实现 角色权限设置(以树结构显示导航菜单)
- 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航
- yii2搭建完美后台并实现rbac权限控制案例--之左侧菜单子级无法高亮的问题
- 利用注解加拦截器实现struts2的权限设置
- c#实现按用户角色分配菜单的使用权限(WinForm) 转载
- WindowsXP文件夹权限设置:xp更改文件夹权限的方法?在XP中,怎么实现文件或文件夹的权限?
- SwipeLayout 如何按照权限要求隐藏菜单项(按菜单显示比例动态设置rightViewWidth)
- 实现:左边为菜单导航,当一个菜单中包含多个Tabs,并且不同的Tab要根据权限的不同显示。
- 省市区三级联动菜单实现及三级联动下拉列表框默认值的设置
- Android的LocalSocket实现及SELinux权限设置.编译(应用层和native通信)
- Vue + Element UI 实现权限管理系统 前端篇(十四):菜单功能实现
- 遍历菜单到带checkboxtreeview中设置权限
- ECSHOP 给添加/编辑商品页面的菜单设置权限
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(22)-为用户设置角色
- 自己项目中用struts menu 实现的菜单+权限管理
- yii2搭建完美后台并实现rbac权限控制案例 - 之菜单menu详细教程
- 加强型的记录集权限(数据集权限、约束表达式设置功能)实现方法界面参考
- 通过配置Sitemap实现对左侧菜单的权限控制
- C#遍历菜单并设置权限