《盟威软件快速开发平台》在线帮助中心

权限管理自定义开发扩展

本章主要讲解如何在设计中应用权限控制,关于管理员用户如何进行权限管理,请查阅使用说明。

如果是采用“数据模块自动生成器”创建的窗体,一般情况下已经默认生成了权限控制的功能,而对于手动创建的窗体或从其它地方导入的窗体,则需要通过下面的处理来应用快速开发平台中权限控制:

1. 输入权限定义数据:打开 Main.mdb 中的 SysLocalModules 表,输入相应的模块信息。其字段说明如下:

模块ID 自动生成的编号,可以不用理会。
序号 在权限管理界面中据此序号指定的顺序显示。
模块名称 在权限管理界面中显示以及进行权限控制时调用的模块名称。
关联菜单 如果在“开发者设置”中勾选了“隐藏无权限的菜单”,当登录用户没有对模块的使用权限时,关联的菜单节点将被隐藏。

再点击前面的 + 号,这时将以子数据表的形式打开 SysLocalFunctions 表,输入相应的功能信息。其字段说明如下:

模块ID 以子数据表形式打开时该字段因为会自动取主表的数据,所以默认情况下被隐藏,可以不用理会。
功能ID 自动生成的编号,可以不用理会。
序号 在权限管理界面中据此序号指定的顺序显示。
功能名称 功能名称,在权限管理界面中显示以及进行权限控制时调用的具体功能名称。

2. 添加控制代码:在窗体的“打开”事件过程(Form_Open)中,添加如下控制代码(加下划线的表示每个模块中不相同的代码。其它为固定用法):

Private mdctPermissionList As Collection  '用于存储权限数据

Private Sub Form_Open(Cancel As Integer)
    Set mdctPermissionList = LoadPermissions("订单管理")
    If Not mdctPermissionList("<Access Module>") Then
        Exit Sub
    End If
    Me.btn录入.Enabled = mdctPermissionList("录入")
    Me.btn编辑.Enabled = mdctPermissionList("编辑")
    Me.btn删除.Enabled = mdctPermissionList("删除")
    Me.btn审核.Enabled = mdctPermissionList("审核")
    Me.btn反审核.Enabled = mdctPermissionList("反审核")
End Sub

权限定义数据、菜单、权限管理界面、权限控制代码之间的对应关系如下图所示:


权限管理

注意:界面中显示的内容是从表中读取的数据,因此两者始终会一致,但代码中的“模块名称”和“功能名称”必须手动修改,使其和表中的数据保持一致,如果两者不一致,对于模块权限会始终提示无权限,对于功能权限则会报错。