ad_enter_changetype_d.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 244 行
PAS
244 行
unit Ad_Enter_ChangeType_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit, linkedit;
Type
TFrm_Ad_Enter_ChangeType_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edt_EmployeeCode: TEdit;
Edt_EmployeeName: TEdit;
lbl_DeptName: TLabel;
ExtEdt_DeptCode: TExtEdit;
Label5: TLabel;
Edt_AdChangeTypeMode: TComboBox;
Label6: TLabel;
Edt_KmCode: TLinkEdit;
Edt_KmName: TEdit;
procedure Edt_EmployeeCodeExit(Sender: TObject);
procedure Edt_EmployeeNameExit(Sender: TObject);
procedure Edt_KmCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_KmCodeButtonClick(Sender: TObject);
procedure Edt_KmCodeExit(Sender: TObject);
private
procedure SaveHistoryChangeType(ChgType:String);
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Ad_Enter_ChangeType_D: TFrm_Ad_Enter_ChangeType_D;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Ad_Enter_ChangeType_D.Edt_EmployeeCodeExit(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('AdChangeTypeCode').AsString)) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Select AdChangeTypeCode From Ad_ChangeType Where AdChangeTypeCode='''+TEdit(Sender).Text+'''');
Open;
if fieldbyname('AdChangeTypeCode').AsString<>'' then
begin
DispInfo(' 增减方式代码已经存在,不允许增加或修改! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
procedure TFrm_Ad_Enter_ChangeType_D.InitControls;
begin
if Add then
begin
SetFocus_Control:=Edt_AdChangeTypeMode;
Edt_EmployeeCode.Enabled:=True;
end
else
SetFocus_Control:=Edt_AdChangeTypeMode;
inherited;
with AdoQry_Maintain do
begin
Edt_AdChangeTypeMode.ItemIndex:=fieldbyname('AdChangeTypeMode').asinteger-1;
Edt_EmployeeCode.Text:=fieldbyname('AdChangeTypeCode').AsString;
Edt_EmployeeName.Text:=fieldbyname('AdChangeTypeName').AsString;
ExtEdt_DeptCode.Text:=fieldbyname('RemArk').AsString;
Edt_EmployeeCode.MaxLength:=fieldbyname('AdChangeTypeCode').size;
Edt_KmCode.Text := fieldbyname('KmCode').AsString;
Edt_KmName.Text := fieldbyname('KmName').AsString;
end;
if not Add then
Edt_EmployeeCode.Enabled:=False;
end;
procedure TFrm_Ad_Enter_ChangeType_D.SaveData;
var
ChgType:String;
begin
inherited;
with AdoQry_Tmp do
begin
Close;
if(Add)then
begin
SQL.Text:='Insert into Ad_ChangeType(AdChangeTypeMode,AdChangeTypeCode,AdChangeTypeName,KmCode,RemArk)'
+' Values('
+' '''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''''
+','''+Edt_EmployeeCode.Text+''''
+','''+Edt_EmployeeName.Text+''''+','
+iifstring(Trim(edt_KmCode.Text)='','null',Trim(edt_kmCode.Text))
+','''+ExtEdt_DeptCode.Text+''''
+')';
ChgType:='增加';
end else
begin
SQL.Text:='Update Ad_ChangeType'
+' Set AdChangeTypeName='''+Edt_EmployeeName.Text+''''
+',AdChangeTypeMode='''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''''
+',KmCode='+iifstring(Trim(edt_KmCode.Text)='','null',Trim(edt_kmCode.Text))
+',RemArk='''+ExtEdt_DeptCode.Text+''''
+' Where AdChangeTypeCode='''+AdoQry_Maintain.fieldbyname('AdChangeTypeCode').AsString+'''';
ChgType:='修改';
end;
ExecSQL;
end;
SaveHistoryChangeType(ChgType);
with AdoQry_Maintain do
begin
fieldbyname('AdChangeTypeMode').Asinteger:=Edt_AdChangeTypeMode.Itemindex+1;
fieldbyname('AdChangeTypeCode').AsString:=Edt_EmployeeCode.Text;
fieldbyname('AdChangeTypeName').AsString:=Edt_EmployeeName.Text;
fieldbyname('KmCode').AsString := Trim(Edt_KmCode.Text);
fieldbyname('KmName').AsString := Trim(Edt_KmName.Text);
fieldbyname('RemArk').AsString:=ExtEdt_DeptCode.Text;
Post;
end;
end;
procedure TFrm_Ad_Enter_ChangeType_D.Edt_EmployeeNameExit(Sender: TObject);
begin
inherited;
if ActiveControl.Name='btn_Cancel' then
exit;
if (not BlankInStrCheck(Edt_EmployeeName.Text,'增减方式名称')) or
(not BlankCheck(Edt_EmployeeName.text,'增减方式名称')) then
begin
TWinControl(Sender).SetFocus;
abort;
end;
if (Add)or((not Add) and
(TEdit(Sender).Text<>AdoQry_Maintain.fieldbyname('AdChangeTypeName').AsString)) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Select AdChangeTypeName From Ad_ChangeType Where AdChangeTypeName='''+TEdit(Sender).Text+''' and AdChangeTypeMode='''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''' ');
Open;
if fieldbyname('AdChangeTypeName').AsString<>'' then
begin
DispInfo(' 增减类型与增减方式名称已经存在,不允许增加或修改! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
procedure TFrm_Ad_Enter_ChangeType_D.SaveHistoryChangeType(ChgType:String);
begin
with AdoQry_Tmp do
begin
Close;
Sql.clear;
SQL.Text:='Insert into Ad_ChangeTypeHistory(AdChangeTypeMode,AdChangeTypeCode,AdChangeTypeName,KmCode,RemArk,ChgEmployeeCode,ChgTime,ChgType)'
+' Values('
+' '''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''''
+','''+Edt_EmployeeCode.Text+''''
+','''+Edt_EmployeeName.Text+''''
+','+iifstring(Trim(edt_KmCode.Text)='','null',Trim(edt_kmCode.Text))
+','''+ExtEdt_DeptCode.Text+''''
+','''+UserCode+''''
+',getdate()'
+','''+ChgType+''''
+')';
ExecSQL;
end;
end;
procedure TFrm_Ad_Enter_ChangeType_D.Edt_KmCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'KmName','科目名称','KmCode',
'科目代码',' Gl_AccountSubject ',' endKm=1');
end;
procedure TFrm_Ad_Enter_ChangeType_D.Edt_KmCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'KmName','科目名称','KmCode',
'科目代码',' Gl_AccountSubject ',' endKm=1');
end;
procedure TFrm_Ad_Enter_ChangeType_D.Edt_KmCodeExit(Sender: TObject);
begin
inherited;
if ActiveControl.Name ='btn_Cancel' then exit;
if Trim(edt_kmCode.TExt)='' then
begin
Edt_KmName.Text := '';
exit;
end;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.text := 'Select KmName from Gl_AccountSubject Where endKm=1 and KmCode='''+Edt_KmCode.Text +'''';
AdoQry_Tmp.Open;
if AdoQry_Tmp.Eof then
begin
DispInfo('科目代码输入错误!',1);
Edt_KmCode.SetFocus;
Abort;
end
else
Edt_KmName.Text := AdoQry_Tmp.fieldbyname('KmName').AsString;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?