ad_enter_assetcardusedept_d.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 261 行
PAS
261 行
unit Ad_Enter_AssetCardUseDept_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Detail, Db, AdODB, ExtCtrls, StdCtrls, Mask, ExtEdit, linkedit;
Type
TFrm_Ad_Enter_AssetCardUseDept_D = Class(TFrm_Base_Entry_Detail)
Label2: TLabel;
Label11: TLabel;
Edt_RemArk: TEdit;
Label14: TLabel;
Label13: TLabel;
EDT_AssignRate: TEdit;
Label17: TLabel;
MEdt_LastOperationTime: TMaskEdit;
Edt_PrepareShipQty: TEdit;
Label15: TLabel;
Edt_DeptName: TEdit;
Edt_DeptCode: TLinkEdit;
Label3: TLabel;
Label1: TLabel;
EDT_kmCode: TLinkEdit;
EDT_kmName: TExtEdit;
procedure Edt_DeptCodeExit(Sender: TObject);
procedure EDT_AssignRateExit(Sender: TObject);
procedure EDT_kmCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_kmCodeExit(Sender: TObject);
procedure EDT_kmCodeButtonClick(Sender: TObject);
procedure btn_okClick(Sender: TObject);
private
procedure getAssignRate(tmp:TAdoQuery);
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveBodyData; Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
{ Public declarations }
end;
var
Frm_Ad_Enter_AssetCardUseDept_D: TFrm_Ad_Enter_AssetCardUseDept_D;
implementation
uses Sys_Global;
{$R *.DFM}
{ TFrm_Sal_Enter_SaleOrder_D }
procedure TFrm_Ad_Enter_AssetCardUseDept_D.InitControls;
begin
If (status='Add') Then
SetFocus_Control:=Edt_DeptCode
Else
SetFocus_Control:=Edt_DeptCode;
Inherited;
with AdoQry_Body do
begin
If (Status='Add') then
begin
EDT_AssignRate.Text:='0';
Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
end
else
begin
Edt_DeptCode.Text:=fieldbyname('DeptCode').AsString;
Edt_DeptName.Text:=fieldbyname('DeptName').AsString;
edt_kmCode.Text:=fieldbyname('kmCode').asstring;
edt_kmName.Text:=fieldbyname('kmName').asstring;
EDT_AssignRate.Text:=fieldbyname('AssignRate').AsString;
Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
end;
end;
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.SaveBodyData;
begin
If Status='Add' Then
AdoQry_Body.Append
Else
AdoQry_Body.Edit;
with AdoQry_Body do
begin
fieldbyname('AssetCode').AsString:=fieldbyname('AssetCode').AsString;
fieldbyname('DeptCode').AsString:=Edt_DeptCode.Text;
fieldbyname('DeptName').AsString:=Edt_DeptName.Text;
fieldbyname('kmCode').asstring:=edt_kmCode.Text;
fieldbyname('kmName').asstring:=edt_kmName.Text;
fieldbyname('AssignRate').AsString:=Edt_AssignRate.Text;
fieldbyname('RemArk').AsString:=Edt_RemArk.Text;
Post;
end;
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.Edt_DeptCodeExit(
Sender: TObject);
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
if (not BlankInStrCheck(Edt_DeptCode.Text,'部门代码代码')) or
(not BlankCheck(Edt_DeptCode.text,'部门代码代码')) then
begin
TWinControl(Sender).SetFocus;
abort;
end;
if TCustomEdit(Sender).Text <>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select DeptCode,DeptName from Dept '
+' where DeptCode= '''+TCustomEdit(Sender).Text+''' ';
AdoQry_Tmp.Open;
if not AdoQry_Tmp.Eof then
begin
Edt_DeptName.Text := AdoQry_Tmp.fieldbyname('DeptName').AsString;
end
else
begin
DispInfo('部门代码错误,请重新输入!',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end
else
Edt_DeptName.Text:='';
if (Status='Add')or((Status<>'Add') and
(TEdit(Sender).Text<>AdoQry_Body.fieldbyname('DeptCode').AsString)) then
begin
with AdoQry_Body do
begin
AdoQry_Body.DisableControls;
First;
While Not Eof Do
begin
If (AdoQry_Body.fieldbyname('DeptCode').AsString=TCustomEdit(Sender).Text) Then
begin
DispInfo('存在相同记录,请重新选择!',3);
AdoQry_Body.EnableControls;
Abort;
end;
Next;
end;
First;
AdoQry_Body.EnableControls;
end;
end;
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.SetStatus(CurrentStatus: String;
var EnableControls: String);
begin
inherited;
EnableControls:='Edt_DeptCode,EDT_kmCode,EDT_AssignRate,Edt_RemArk,';
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.getAssignRate(tmp:TAdoQuery);
var
Rate:real;
begin
Rate:=0;
With tmp do
begin
tmp.DisableControls;
First;
While Not Eof do
begin
Rate:=Rate+fieldbyname('AssignRate').AsFloat;
Next;
end;
tmp.EnableControls;
end;
IF (Rate+StrToFloat(EDT_AssignRate.Text)>100) Then DispInfo('分配率不能大于100%!',3);
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.EDT_AssignRateExit(
Sender: TObject);
begin
inherited;
FloatCheck(Sender);
IF (EDT_AssignRate.Text='0') Then
begin
DispInfo('分配率不能为零!',1);
Abort;
end;
// getAssignRate(AdoQry_Body);
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.EDT_kmCodeKeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'KmName','会计科目名称','KmCode',
'会计科目代码',' Gl_AccountSubject ','KmType in (4,5)');
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.EDT_kmCodeExit(Sender: TObject);
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
if (not BlankInStrCheck(EDT_kmCode.Text,'费用科目代码')) or
(not BlankCheck(EDT_kmCode.text,'费用科目代码')) then
begin
TWinControl(Sender).SetFocus;
abort;
end;
if TCustomEdit(Sender).Text <>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select KmCode,KmName from Gl_AccountSubject '
+' where KmCode= '''+TCustomEdit(Sender).Text+''' and KmType in (4,5) ';
AdoQry_Tmp.Open;
if not AdoQry_Tmp.Eof then
begin
EDT_kmName.Text := AdoQry_Tmp.fieldbyname('KmName').AsString;
end
else
begin
DispInfo('费用科目代码错误,请重新输入!',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end
else
EDT_kmName.Text:='';
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.EDT_kmCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'KmName','会计科目名称','KmCode',
'会计科目代码',' Gl_AccountSubject ','KmType in (4,5)');
end;
procedure TFrm_Ad_Enter_AssetCardUseDept_D.btn_okClick(Sender: TObject);
begin
if (not BlankInStrCheck(EDT_kmCode.Text,'费用科目代码')) or
(not BlankCheck(EDT_kmCode.text,'费用科目代码')) then
begin
EDT_kmCode.SetFocus;
abort;
end;
inherited;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?