📄 sys_operator_d.pas
字号:
unit Sys_Operator_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit;
Type
TFrm_Sys_Operator_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
CmBx_Usable: TComboBox;
Edt_EmployeeCode: TExtEdit;
Lbl_EmployeeName: TLabel;
Lbl_NewPassWord: TLabel;
Edt_NewPassWord: TEdit;
Lbl_ReEnterPassWord: TLabel;
Edt_ReEnterPassWord: TEdit;
procedure FormCreate(Sender: TObject);
procedure EmployeeCodeCheck(Sender: TObject);
procedure Edt_ReEnterPassWordExit(Sender: TObject);
private
{ Private declarations }
OldUsable:integer;
CreateDate,DisableDate:string;
public
{ Public declarations }
protected
procedure InitControls; Override;
procedure SaveData; Override;
end;
var
Frm_Sys_Operator_D: TFrm_Sys_Operator_D;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Sys_Operator_D.FormCreate(Sender: TObject);
begin
inherited;
SetFocus_Control:=Edt_EmployeeCode;
end;
procedure TFrm_Sys_Operator_D.InitControls;
begin
inherited;
with AdoQry_Maintain do
begin
Edt_EmployeeCode.Text:=fieldbyname('EmployeeCode').AsString;
CmBx_Usable.ItemIndex:=fieldbyname('OperatorUsable').asinteger;
OldUsable:=CmBx_Usable.ItemIndex;
DisableDate:=fieldbyname('OperatorDisableDate').asstring;
CreateDate:=fieldbyname('OperatorCreateDate').asstring;
Lbl_EmployeeName.Caption:=fieldbyname('EmployeeName').asstring;
Edt_NewPassWord.Text:=fieldbyname('Password').asstring;
Edt_ReEnterPassWord.Text:=fieldbyname('Password').asstring;
end;
//如果是新增用户,一定是可用的
if Add then
begin
Cmbx_Usable.Itemindex:=1;
Cmbx_Usable.enabled:=False;
end
else
Cmbx_Usable.enabled:=True;
end;
procedure TFrm_Sys_Operator_D.SaveData;
begin
inherited;
if Add then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
//新增时一定是可用的
SQL.Add('Insert into Operator(EmployeeCode,OperatorUsable,PassWord,OperatorCreateDate)'+
' Values (:Code,:Usable,:Password,:createdate)');
Parameters.ParambyName('createdate').Value:=Date();
Parameters.ParambyName('Code').Value:=Edt_EmployeeCode.text;
Parameters.ParambyName('Usable').Value:=inttostr(CmBx_Usable.Itemindex);
Parameters.ParambyName('Password').Value:=Edt_NewPassWord.text;
CreateDate:=DateToStr(Date());
DisableDate:='';
ExecSql;
end;
end
Else
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
//先不修改是否可用的状态
SQL.Add(' Update Operator set '+
' EmployeeCode=:Code,'+
' Password=:Password '+
' where EmployeeCode=:OldCode ');
//再修改可用状态
//从可用变成不可用
If (CmBx_Usable.ItemIndex=0) and (OldUsable<>0) then
begin
SQL.Add(' Update Operator set '+
' OperatorDisableDate=:DisableDate, '+
' OperatorUsable=0 '+
' where EmployeeCode=:OldCode2 ');
Parameters.ParambyName('DisableDate').Value:=Date();
DisableDate:=DateToStr(Date());
end
//只要是可用的,不管原来状态如何都清空DisableDate
else If CmBx_Usable.ItemIndex=1 then
begin
SQL.Add(' Update Operator set '+
' OperatorDisableDate=null, '+
' OperatorUsable=1 '+
' where EmployeeCode=:OldCode2 ');
DisableDate:='';
end;
Parameters.ParambyName('Code').Value:=Edt_EmployeeCode.text;
Parameters.ParambyName('Password').Value:=Edt_NewPassWord.text;
Parameters.ParambyName('OldCode').Value:=AdoQry_Maintain.fieldbyname('EmployeeCode').asstring;
Parameters.ParambyName('OldCode2').Value:=Edt_EmployeeCode.text;
ExecSQL;
end;
end;
with AdoQry_Maintain do
begin
fieldbyname('EmployeeCode').AsString:= Edt_EmployeeCode.Text;
fieldbyname('OperatorUsable').AsInteger:=CmBx_Usable.ItemIndex;
fieldbyname('EmployeeName').asstring:=Lbl_EmployeeName.Caption;
fieldbyname('OperatorCreateDate').asstring:=CreateDate;
fieldbyname('OperatorDisableDate').asstring:=DisableDate;
Post;
end;
end;
procedure TFrm_Sys_Operator_D.EmployeeCodeCheck(Sender: TObject);
begin
inherited;
if ActiveControl.Name='btn_Cancel' then
exit;
if (not BlankInStrCheck(Edt_EmployeeCode.Text,'人员代码')) or
(not BlankCheck(Edt_EmployeeCode.text,'人员代码')) then
begin
TWinControl(Sender).SetFocus;
abort;
end;
if(Add)or((not Add)and
(TEdit(Sender).Text<>AdoQry_Maintain.fieldbyname('EmployeeCode').AsString))then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Select EmployeeCode From Operator Where EmployeeCode='''+TEdit(Sender).Text+'''');
Open;
if fieldbyname('EmployeeCode').AsString<>'' then
begin
DispInfo('人员代码已经存在,不允许增加或修改',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
procedure TFrm_Sys_Operator_D.Edt_ReEnterPassWordExit(Sender: TObject);
begin
inherited;
if edt_ReEnterPassword.text<>edt_NewPassword.text then
begin;
DispInfo('两次输入的口令不一致,请再次输入!',1);
edt_NewPassword.SetFocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -