📄 frmoperator.pas
字号:
unit frmOperator;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DBCtrls, Mask, Grids, DBGrids,StrUtils;
type
TNowDataStatus=set of (ndsNormal,ndsAppend,ndsModify);
type
TOperatorForm = class(TForm)
panChild: TPanel;
cmdClose: TButton;
grbOperatorInfo: TGroupBox;
lblOperatorID: TLabel;
txtOperatorID: TDBEdit;
lblOperatorName: TLabel;
txtOperatorName: TDBEdit;
lblOperatorPassword: TLabel;
txtOperatorPassword: TDBEdit;
grbRights: TGroupBox;
chkOperator: TCheckBox;
chkCheckTime: TCheckBox;
chkSalarySet: TCheckBox;
chkSearch: TCheckBox;
chkSystemSet: TCheckBox;
grbOperatorList: TGroupBox;
grdOperatorList: TDBGrid;
cmdDelete: TButton;
cmdModify: TButton;
cmdAdd: TButton;
procedure cmdCloseClick(Sender: TObject);
procedure cmdAddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cmdModifyClick(Sender: TObject);
procedure cmdDeleteClick(Sender: TObject);
procedure grdOperatorListMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure panChildResize(Sender: TObject);
private
{ Private declarations }
NowDataStatus:TNowDataStatus;
function GetOperatorRights:string;
procedure ChangeDisplayStatus(const AValue:TNowDataStatus);
public
{ Public declarations }
procedure RefreshDisplayCtrlsRights(const strRights:string);
end;
var
OperatorForm: TOperatorForm;
implementation
uses mdDataBases, Common;
{$R *.dfm}
procedure TOperatorForm.ChangeDisplayStatus(const AValue: TNowDataStatus);
begin
if AValue=[ndsNormal] then
begin
grbOperatorInfo.Enabled:=False;
grbRights.Enabled:=False;
cmdAdd.Caption:='添加(&A)';
cmdModify.Caption:='修改(&M)';
cmdClose.Caption:='关闭';
cmdAdd.Enabled:=True;
cmdModify.Enabled:=True;
cmdDelete.Enabled:=True;
OperatorForm.NowDataStatus:=[ndsNormal];
end;
if AValue=[ndsAppend] then
begin
grbOperatorInfo.Enabled:=True;
grbRights.Enabled:=True;
cmdAdd.Caption:='保存(&S)';
cmdClose.Caption:='取消';
cmdModify.Enabled:=False;
cmdDelete.Enabled:=False;
OperatorForm.NowDataStatus:=[ndsAppend];
end;
if AValue=[ndsModify] then
begin
grbOperatorInfo.Enabled:=False;
grbRights.Enabled:=True;
cmdModify.Caption:='保存(&S)';
cmdClose.Caption:='取消';
cmdAdd.Enabled:=False;
cmdDelete.Enabled:=False;
OperatorForm.NowDataStatus:=[ndsModify];
end;
end;
procedure TOperatorForm.cmdCloseClick(Sender: TObject);
begin
if OperatorForm.NowDataStatus=[ndsNormal] then
begin
panChild.Parent := OperatorForm;
OperatorForm.Close;
end
else
begin
OperatorForm.ChangeDisplayStatus([ndsNormal]);
dmDataSource.tblOperator.Cancel;
dmDataSource.tblOperator.CancelUpdates;
end;
end;
procedure TOperatorForm.cmdAddClick(Sender: TObject);
begin
if OperatorForm.NowDataStatus=[ndsNormal] then
begin
dmDataSource.tblOperator.Append;
OperatorForm.RefreshDisplayCtrlsRights('000000');
ChangeDisplayStatus([ndsAppend]);
end
else
begin
txtOperatorPassword.Text:=Base64Encode(txtOperatorPassword.Text);
dmDataSource.tblOperator['OPERATOR_RIGHTS']:=GetOperatorRights;
dmDataSource.tblOperator.Post;
dmDataSource.tblOperator.ApplyUpdates;
ChangeDisplayStatus([ndsNormal]);
end;
end;
procedure TOperatorForm.FormCreate(Sender: TObject);
begin
OperatorForm.ChangeDisplayStatus([ndsNormal]);
end;
procedure TOperatorForm.cmdModifyClick(Sender: TObject);
begin
if OperatorForm.NowDataStatus=[ndsNormal] then
begin
dmDataSource.tblOperator.Edit;
ChangeDisplayStatus([ndsModify]);
end
else
begin
dmDataSource.tblOperator['OPERATOR_RIGHTS']:=GetOperatorRights;
dmDataSource.tblOperator.Post;
dmDataSource.tblOperator.ApplyUpdates;
ChangeDisplayStatus([ndsNormal]);
end;
end;
procedure TOperatorForm.cmdDeleteClick(Sender: TObject);
var
strDeleteConfimInfo:string;
intResult:Integer;
begin
strDeleteConfimInfo:='真的删除操作员"'+
Trim(dmDataSource.tblOperator['OPERATOR_NAME'])+'"吗?';
intResult:=MessageBox(Application.Handle,pchar(strDeleteConfimInfo),
'确认',32+4);
if intResult=mrYes then
begin
dmDataSource.tblOperator.Delete;
end;
end;
function TOperatorForm.GetOperatorRights:string;
var
I:Integer;
begin
Result:='';
for I := 0 to grbRights.ControlCount-1 do
begin
if (grbRights.Controls[I] as TCheckBox).Checked then
Result:=Result+'1'
else
Result:=Result+'0';
end;
end;
procedure TOperatorForm.RefreshDisplayCtrlsRights(const strRights: string);
var
I:Integer;
begin
if dmDataSource.tblOperator.RecordCount>0 then
begin
for I := 0 to grbRights.ControlCount-1 do
begin
(grbRights.Controls[I] as TCheckBox).Checked:=(MidStr(strRights,I+1,1)='1');
end;
end;
end;
procedure TOperatorForm.grdOperatorListMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
OperatorForm.RefreshDisplayCtrlsRights(
dmDataSource.tblOperator['OPERATOR_RIGHTS']);
end;
procedure TOperatorForm.panChildResize(Sender: TObject);
begin
OperatorForm.RefreshDisplayCtrlsRights(
dmDataSource.tblOperator['OPERATOR_RIGHTS']);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -