本章主要讲解如何在设计中应用权限控制,关于管理员用户如何进行权限管理,请查阅使用说明。
如果是采用“数据模块自动生成器”创建的窗体,一般情况下已经默认生成了权限控制的功能,而对于手动创建的窗体或从其它地方导入的窗体,则需要通过下面的处理来应用快速开发平台中权限控制:
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
权限定义数据、菜单、权限管理界面、权限控制代码之间的对应关系如下图所示:
注意:界面中显示的内容是从表中读取的数据,因此两者始终会一致,但代码中的“模块名称”和“功能名称”必须手动修改,使其和表中的数据保持一致,如果两者不一致,对于模块权限会始终提示无权限,对于功能权限则会报错。