📄 permissionfrm.pas
字号:
unit PermissionFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, MainDM, CommonFunc, CheckLst, ExtCtrls;
type
TPermissionDlg = class(TForm)
GroupBox1: TGroupBox;
LBGroupName: TListBox;
CLBPermission: TCheckListBox;
BtnAdd: TButton;
BtnExit: TButton;
Panel1: TPanel;
Panel2: TPanel;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure BtnAddClick(Sender: TObject);
procedure CLBPermissionClick(Sender: TObject);
procedure LBGroupNameClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
function GetSelectedUserName: string;
procedure RefreshGroupName;
procedure ShowUserRight(AUserName: string);
procedure SetUserRight(AUserName: string);
public
{ Public declarations }
end;
var
PermissionDlg: TPermissionDlg;
implementation
{$R *.dfm}
procedure TPermissionDlg.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
procedure TPermissionDlg.RefreshGroupName;
var
LName: string;
begin
LBGroupName.Clear;
DMMain.ADOTPermission.Open;
DMMain.ADOTPermission.First;
while not DMMain.ADOTPermission.Eof do
begin
LName := DMMain.ADOTPermission.FieldByName('Name').AsString;
LBGroupName.Items.Add(LName);
DMMain.ADOTPermission.Next;
end;
end;
function TPermissionDlg.GetSelectedUserName: string;
var
LIndex: integer;
begin
LIndex := LBGroupName.ItemIndex;
if LIndex >= 0 then
result := LBGroupName.Items.Strings[LIndex]
else
result := '';
end;
procedure TPermissionDlg.FormShow(Sender: TObject);
begin
RefreshGroupName;
end;
procedure TPermissionDlg.BtnAddClick(Sender: TObject);
var
LName: string;
begin
if InputQuery('请输入', '请输入新建权限组的名称!',
LName) then
begin
if Length(LName) >= 20 then
begin
LCShowMessage('名称不能超过20个字符!');
Exit;
end;
DMMain.ADOTPermission.First;
if DMMain.ADOTPermission.Locate('Name', LName, []) then
begin
LCShowMessage('此权限组名已经存在!');
Exit;
end
else
begin
LBGroupName.Items.Add(LName);
DMMain.ADOTPermission.Append;
DMMain.ADOTPermission.FieldByName('Name').AsString := LName;
DMMain.ADOTPermission.Post;
end;
end;
end;
procedure TPermissionDlg.ShowUserRight(AUserName: string);
begin
DMMain.ADOTPermission.First;
if DMMain.ADOTPermission.Locate('Name', AUserName, []) then
begin
CLBPermission.Checked[0] := DMMain.ADOTPermission.FieldByName('SalesManQuery').AsBoolean;
CLBPermission.Checked[1] := DMMain.ADOTPermission.FieldByName('SaleBackQuery').AsBoolean;
CLBPermission.Checked[2] := DMMain.ADOTPermission.FieldByName('StorageQuery').AsBoolean;
CLBPermission.Checked[3] := DMMain.ADOTPermission.FieldByName('SaleBackInput').AsBoolean;
CLBPermission.Checked[4] := DMMain.ADOTPermission.FieldByName('StockInInput').AsBoolean;
CLBPermission.Checked[5] := DMMain.ADOTPermission.FieldByName('SaleInput').AsBoolean;
CLBPermission.Checked[6] := DMMain.ADOTPermission.FieldByName('StockOutInput').AsBoolean;
CLBPermission.Checked[7] := DMMain.ADOTPermission.FieldByName('CompanyInfoMgr').AsBoolean;
CLBPermission.Checked[8] := DMMain.ADOTPermission.FieldByName('PermissionMgr').AsBoolean;
CLBPermission.Checked[9] := DMMain.ADOTPermission.FieldByName('OperatorMgr').AsBoolean;
CLBPermission.Checked[10] := DMMain.ADOTPermission.FieldByName('SalesManMgr').AsBoolean;
CLBPermission.Checked[11] := DMMain.ADOTPermission.FieldByName('GoodMgr').AsBoolean;
CLBPermission.Checked[12] := DMMain.ADOTPermission.FieldByName('DepartMgr').AsBoolean;
CLBPermission.Checked[13] := DMMain.ADOTPermission.FieldByName('DBBackup').AsBoolean;
end
else
LCShowMessage('不存在的用户名!');
end;
procedure TPermissionDlg.SetUserRight(AUserName: string);
begin
DMMain.ADOTPermission.First;
if DMMain.ADOTPermission.Locate('Name', AUserName, []) then
begin
DMMain.ADOTPermission.Edit;
DMMain.ADOTPermission.FieldByName('SalesManQuery').AsBoolean := CLBPermission.Checked[0];
DMMain.ADOTPermission.FieldByName('SaleBackQuery').AsBoolean := CLBPermission.Checked[1];
DMMain.ADOTPermission.FieldByName('StorageQuery').AsBoolean := CLBPermission.Checked[2];
DMMain.ADOTPermission.FieldByName('SaleBackInput').AsBoolean := CLBPermission.Checked[3];
DMMain.ADOTPermission.FieldByName('StockInInput').AsBoolean := CLBPermission.Checked[4];
DMMain.ADOTPermission.FieldByName('SaleInput').AsBoolean := CLBPermission.Checked[5];
DMMain.ADOTPermission.FieldByName('StockOutInput').AsBoolean := CLBPermission.Checked[6];
DMMain.ADOTPermission.FieldByName('CompanyInfoMgr').AsBoolean := CLBPermission.Checked[7];
DMMain.ADOTPermission.FieldByName('PermissionMgr').AsBoolean := CLBPermission.Checked[8];
DMMain.ADOTPermission.FieldByName('OperatorMgr').AsBoolean := CLBPermission.Checked[9];
DMMain.ADOTPermission.FieldByName('SalesManMgr').AsBoolean := CLBPermission.Checked[10];
DMMain.ADOTPermission.FieldByName('GoodMgr').AsBoolean := CLBPermission.Checked[11];
DMMain.ADOTPermission.FieldByName('DepartMgr').AsBoolean := CLBPermission.Checked[12];
DMMain.ADOTPermission.FieldByName('DBBackup').AsBoolean := CLBPermission.Checked[13];
DMMain.ADOTPermission.Post;
end
else
LCShowMessage('不存在的用户名!');
end;
procedure TPermissionDlg.CLBPermissionClick(Sender: TObject);
var
LUserName: string;
begin
LUserName := GetSelectedUserName();
if LUserName <> '' then
SetUserRight(LUserName);
end;
procedure TPermissionDlg.LBGroupNameClick(Sender: TObject);
begin
ShowUserRight(GetSelectedUserName())
end;
procedure TPermissionDlg.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -