
图8 系统主界面
在进入系统主界面前,需要打开与用户登录、用户权限设置等相关的角色权限表、角色表实现用户登录;完成自动添加角色权限、设置登录用户权限等工作,因此需要设计主界面的OnShow事件,相关代码如下:
procedure TFormMain.FormShow(Sender: TObject);
begin
if FormLogin.ShowModal<>mrOK then begin
Application.Terminate; Exit;
end;
with DMServerDB do begin
try
ADODataSetRoleRight.Open; // 打开角色权限表
ADODataSetRole.Open; // 打开角色表
AddRoleRight( MainMenu ); // 自动添加角色权限
ADODataSetUserRole.Open; // 打开用户角色表
ADODataSetUserRole.Filtered := True;
ADODataSetUserRole.Filter := 'UserID='''+UserID+'''';
IsAdministroy := IsAdmin(ADODataSetUserRole);
// 不是系统管理员,则取得该用户的权限
if Not IsAdministroy then Begin
ADODataSetUserRole.First;
if Not ADODataSetUserRole.Eof then begin
strSQL:='SELECT distinct MenuItemName, RoleRight FROM RoleRight where RoleID';
strSQL := strSQL + ' in ('''+ADODataSetUserRole.FieldValues['RoleID']+'''';
ADODataSetUserRole.Next;
while Not ADODataSetUserRole.Eof do begin
strSQL := strSQL + ','''+ADODataSetUserRole.FieldValues['RoleID']+'''';
ADODataSetUserRole.Next;
end;
|