//对程序模块数据集中的每一个模块在当前用户授权模块数据集中寻找,
//若找到则设置与模块相对应的菜单可用,否则设置为不可用
MKNAME:=DataModFrm.GQUERY1.FIELDBYNAME('模块名称').AsString;
if DataModFrm.GQUERY2.LOCATE('授权模块',MKNAME,[]) then begin
for J:=0 to MainMenu1.Items.Count-1 do begin
if MainMenu1.Items[J].Find(MKNAME)<>NIL then
MainMenu1.Items[J].Find(MKNAME).Enabled:=TRUE;
end;
end else begin
for J:=0 to MainMenu1.Items.Count-1 do begin
if MainMenu1.Items[J].Find(MKNAME)<>NIL then
MainMenu1.Items[J].Find(MKNAME).Enabled:=FALSE;
end;
end;
DataModFrm.GQUERY1.Next;
end;
end;
3.3.3 用户权限管理模块(UserQxgl)
该模块用来为各类用户授予不同的程序功能模块访问权限。模块表单的DataSource1、DataSource2和DataSource3分别指向数据模块的用户表、程序模块表和用户授权表,DBLookupListBox1显示用户类别列表,DBGrid1显示程序工程模块,DBGrid2显示当前用户类别可访问程序模块,各按钮分别实现用户授权模块的添加、添加全部和删除,以及关闭模块。在模块表单被创建时要打开用户类别表、程序模块表和用户授权表,表单关闭的同时关掉这些表。图4是用户权限管模块的设计时界面。
图4 用户权限管模块设计时界面
|