📄 gl_enter_credence_d.pas
字号:
unit Gl_Enter_Credence_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Detail, Db, AdODB, ExtCtrls, StdCtrls, Mask, ExtEdit, linkedit;
Type
TFrm_Gl_Enter_Credence_D = Class(TFrm_Base_Entry_Detail)
Label1: TLabel;
edt_DocketName: TLinkEdit;
edt_kmCode: TLinkEdit;
Label2: TLabel;
edt_kmName: TEdit;
Label3: TLabel;
Label4: TLabel;
edt_Debit: TEdit;
edt_Credit: TEdit;
Label5: TLabel;
edt_rate: TEdit;
Label6: TLabel;
Label7: TLabel;
edt_fdebit: TEdit;
edt_fcredit: TEdit;
Label8: TLabel;
edt_Amount: TEdit;
Label9: TLabel;
edt_Price: TEdit;
edt_DeptCode: TLinkEdit;
Label10: TLabel;
edt_DeptName: TEdit;
edt_PersonCode: TLinkEdit;
Label11: TLabel;
edt_PersonName: TEdit;
edt_CustomerCode: TLinkEdit;
Label12: TLabel;
edt_CustomerName: TEdit;
edt_VendorCode: TLinkEdit;
Label13: TLabel;
edt_VendorName: TEdit;
edt_ProjectCode: TLinkEdit;
Label14: TLabel;
edt_ProjectName: TEdit;
edt_BalanceTypeCode: TLinkEdit;
Label15: TLabel;
edt_BalanceTypeName: TEdit;
Label16: TLabel;
edt_Billno: TEdit;
Label17: TLabel;
Edt_CashWay: TEdit;
cmb_CashWay: TLinkEdit;
procedure btn_okClick(Sender: TObject);
procedure ExtEdt_ItemCodeButtonClick(Sender: TObject);
procedure edt_DocketNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_DocketNameButtonClick(Sender: TObject);
procedure edt_kmCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_kmCodeButtonClick(Sender: TObject);
procedure edt_kmCodeExit(Sender: TObject);
procedure edt_DeptCodeExit(Sender: TObject);
procedure edt_PersonCodeExit(Sender: TObject);
procedure edt_CustomerCodeExit(Sender: TObject);
procedure edt_VendorCodeExit(Sender: TObject);
procedure edt_BalanceTypeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_BalanceTypeCodeButtonClick(Sender: TObject);
procedure edt_BalanceTypeCodeExit(Sender: TObject);
procedure edt_DocketNameExit(Sender: TObject);
procedure cmb_CashWayButtonClick(Sender: TObject);
procedure cmb_CashWayExit(Sender: TObject);
procedure cmb_CashWayKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
procedure edt_ProjectCodeExit(Sender: TObject);
procedure edt_fdebitExit(Sender: TObject);
procedure edt_fcreditExit(Sender: TObject);
private
LineNo:Integer;//行号
IsDeptCalculate, IsPersonCalculate, IScustomerCalculate,
IsVenderCalculate, IsProjectCalculate: integer;
function ChkKm(Sender: TObject;CalculateName: integer; InfoStr: string=''):boolean;
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveBodyData; Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String);Override;
{ Public declarations }
end;
var
Frm_Gl_Enter_Credence_D: TFrm_Gl_Enter_Credence_D;
iSfcurrency:integer;
implementation
uses Sys_Global, Gl_Enter_Credence;
{$R *.DFM}
{ TFrm_Sal_Enter_SaleOrder_D }
procedure TFrm_Gl_Enter_Credence_D.InitControls;
begin
Application.ProcessMessages;
If (status='Add') Then
SetFocus_Control:=edt_DocketName
Else
SetFocus_Control:=edt_DocketName;
Inherited;
with AdoQry_Body do
begin
edt_DocketName.Text:=fieldbyname('docketName').AsString;
If (Status='Add') then
begin
LineNo:=RecordCount+1;
edt_kmCode.Text:='';
edt_kmName.Text:='';
edt_Debit.Text:='0';
edt_Credit.Text:='0';
edt_fdebit.Text:='0';
edt_fcredit.Text:='0';
edt_rate.Text:='0';
edt_Billno.Text:='0';
edt_Amount.Text:='0';
edt_Price.Text:='0';
cmb_CashWay.text:='';
edt_CashWay.text:='';
end
else
begin
Edt_DocketName.Text:= fieldbyname('docketName').AsString;
Edt_kmCode.Text:=fieldbyname('kmCode').AsString;
Executesql(AdoQry_tmp,'select * from Gl_AccountSubject where kmCode='+quotedstr(Trim(edt_kmCode.text)),0);
edt_kmName.Text:=AdoQry_tmp.fieldbyname('kmName').asstring;
edt_kmCode.OnExit(edt_kmCode);
Edt_Debit.Text:=fieldbyname('debitAmount').AsString;
Edt_Credit.Text:=fieldbyname('creditAmount').AsString;
Edt_fdebit.Text:=fieldbyname('fdebitAmount').AsString;
Edt_fcredit.Text:=fieldbyname('fcreditAmount').AsString;
Edt_rate.Text:=FloatToStr(fieldbyname('fCurrencyRate').AsFloat);
Edt_Price.Text:=fieldbyname('Price').AsString;
Edt_Amount.Text:=fieldbyname('Amount').AsString;
Edt_DeptCode.Text:=fieldbyname('depArtCode').AsString;
Executesql(AdoQry_tmp,'select * from Dept where DeptCode='+quotedstr(Trim(edt_DeptCode.text)),0);
edt_DeptName.Text:=AdoQry_tmp.fieldbyname('DeptName').asstring;
Edt_PersonCode.Text:=fieldbyname('personEmployeeCode').AsString;
Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_PersonCode.text)),0);
edt_PersonName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
Edt_CustomerCode.Text:=fieldbyname('customerCode').AsString;
Executesql(AdoQry_tmp,'select * from customer where customerCode='+quotedstr(Trim(edt_CustomerCode.text)),0);
edt_CustomerName.Text:=AdoQry_tmp.fieldbyname('customerName').asstring;
Edt_VendorCode.Text:=fieldbyname('VendorCode').AsString;
Executesql(AdoQry_tmp,'select * from Vendor where VendorCode='+quotedstr(Trim(edt_VendorCode.text)),0);
edt_VendorName.Text:=AdoQry_tmp.fieldbyname('VendorName').asstring;
Edt_BalanceTypeCode.Text:=fieldbyname('BalanceTypeCode').AsString;
Executesql(AdoQry_tmp,'select * from BalanceType where BalanceTypeCode='+quotedstr(Trim(edt_BalanceTypeCode.text)),0);
edt_BalanceTypeName.Text:=AdoQry_tmp.fieldbyname('BalanceTypeName').asstring;
cmb_CashWay.text:=fieldbyname('CashWay').asstring;
end;
end;
end;
procedure TFrm_Gl_Enter_Credence_D.SaveBodyData;
begin
If Status='Add' Then
AdoQry_Body.Append
Else
AdoQry_Body.Edit;
with AdoQry_Body do
begin
if status='Add' then
fieldbyname('Gl_CredenceLineNo').Asinteger:=lineno;
fieldbyname('docketName').AsString:=Trim(edt_DocketName.Text);
fieldbyname('kmCode').AsString:=Trim(edt_kmCode.text);
fieldbyname('kmName').Asstring:=Trim(edt_kmName.text);
fieldbyname('debitAmount').Asstring:=Trim(edt_Debit.text);
fieldbyname('creditAmount').Asstring:=Trim(edt_Credit.text);
fieldbyname('fdebitAmount').Asstring:=Trim(edt_fdebit.text);
fieldbyname('fcreditAmount').Asstring:=Trim(edt_fcredit.text);
fieldbyname('fCurrencyRate').AsString:=Trim(Edt_rate.Text);
fieldbyname('Price').AsString:=Trim(Edt_Price.Text);
fieldbyname('Amount').AsString:=Trim(Edt_Amount.Text);
fieldbyname('Billno').AsString:=Trim(Edt_Billno.Text);
fieldbyname('depArtCode').AsString:=Trim(Edt_DeptCode.Text);
fieldbyname('personEmployeeCode').AsString:=Trim(Edt_PersonCode.Text);
fieldbyname('customerCode').AsString:=Trim(Edt_CustomerCode.Text);
fieldbyname('VendorCode').AsString:=Trim(Edt_VendorCode.Text);
fieldbyname('projectCode').AsString:=Trim(Edt_ProjectCode.Text);
fieldbyname('BalanceTypeCode').AsString:=Trim(Edt_BalanceTypeCode.Text);
fieldbyname('CashWay').asstring:=cmb_CashWay.text;
Post;
end;
end;
procedure TFrm_Gl_Enter_Credence_D.SetStatus(CurrentStatus: String;
var EnableControls: String);
begin
inherited;
if Currentstatus='Add' then
EnableControls:=' edt_DocketName,edt_kmCode,edt_fdebit,edt_fcredit,edt_Billno,'
+' edt_Amount,edt_Price,cmb_CashWay,edt_DeptCode,edt_PersonCode,edt_CustomerCode,edt_VendorCode,edt_ProjectCode,edt_BalanceTypeCode,' ;
if(CurrentStatus<>'Add')then
EnableControls:=' edt_DocketName,edt_kmCode,edt_fdebit,edt_fcredit,edt_Billno,'
+' edt_Amount,edt_Price,edt_DeptCode,cmb_CashWay,edt_PersonCode,edt_CustomerCode,edt_VendorCode,edt_ProjectCode,edt_BalanceTypeCode,' ;
end;
procedure TFrm_Gl_Enter_Credence_D.btn_okClick(Sender: TObject);
begin
if (Trim(edt_fdebit.text)<>'0') and (Trim(edt_fcredit.text)<>'0') then
begin
DispInfo('不能同时输入原币借方金额和原币贷方金额!',3);
edt_fdebit.SetFocus;
abort;
end;
if (StrtoFloat(Edt_Price.Text)<0) then
begin
DispInfo('核算单价不能小于0!',3);
if Edt_Price.CanFocus then
Edt_Price.SetFocus;
abort;
end;
if Trim(Edt_Rate.Text)='0' then
begin
DispInfo('汇率不能等于0!',3);
if Edt_Rate.CanFocus then
Edt_Rate.SetFocus;
abort;
end;
edt_Debit.Text:=FormatFloat('####0.##',(strtofloat(Trim(edt_fdebit.text))*strtofloat(Trim(edt_rate.text))));
edt_Credit.Text:=FormatFloat('####0.##',(strtofloat(Trim(edt_fcredit.text))*strtofloat(Trim(edt_rate.text))));
Edt_FDebit.Text := FormatFloat('###0.##',StrToFloat(Edt_FDebit.TExt));
Edt_FCredit.Text := FormatFloat('###0.##',StrToFloat(Edt_FCredit.TExt));
if ChkKm(edt_DeptCode,IsDeptCalculate, '部门标识') or ChkKm(edt_PersonCode,IsPersonCalculate,'个人标识')
or ChkKm(edt_CustomerCode,IScustomerCalculate,'客户标识') or ChkKm(edt_VendorCode,IsVenderCalculate,'供应商标识')
or ChkKm(Sender,IsProjectCalculate,'项目标识') then
exit;
inherited;
end;
procedure TFrm_Gl_Enter_Credence_D.ExtEdt_ItemCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
'物料代码',' Item ');
end;
procedure TFrm_Gl_Enter_Credence_D.edt_DocketNameKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
if key=120 then
CommOnHint(Sender,AdoQry_Tmp,'docketCode','摘要代码','docketName',
'摘要名称',' Gl_Docket ');
end;
procedure TFrm_Gl_Enter_Credence_D.edt_DocketNameButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'docketCode','摘要代码','docketName',
'摘要名称',' Gl_Docket ');
end;
procedure TFrm_Gl_Enter_Credence_D.edt_kmCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -