中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > PowerBuilder
在PowerBuilder中实现菜单条级权限的设置
作者:佚名 时间:2005-08-05 11:45 出处:互连网 责编:chinaitpower
              摘要:在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用户进入应用程序时取出,对应设置菜单条的可用与不可用,即实现了对用户使用菜单权限的定义。

    此功能在PB4及PB6.5中实现。因篇幅所限,只叙述了实现方法的基本概念,无法一一列出具体程序,感兴趣的朋友可致电Email:poldchen@21cn.com探讨。

    下载实例源程序。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有