📄 ap_enter_nopayinvoice_d.pas
字号:
unit Ap_Enter_NoPayInvoice_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, Mask, linkedit;
Type
TFrm_Ap_Enter_NoPayInvoice_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edt_ApInvoiceNo: TEdit;
MEdt_ApInvoiceDate: TMaskEdit;
LEdt_VendorCode: TLinkEdit;
Edt_VendorName: TEdit;
Label5: TLabel;
LEdt_CurrencyCode: TLinkEdit;
Edt_CurrencyName: TEdit;
Label6: TLabel;
Edt_ApInvoiceAmount: TEdit;
Label7: TLabel;
Edt_ApInvoiceTax: TEdit;
Label8: TLabel;
Edt_ApPayedAmount: TEdit;
Label9: TLabel;
Edt_EmployeeCode: TEdit;
Label10: TLabel;
Edt_ApInvoiceInputDate: TEdit;
Edt_EmployeeName: TEdit;
Label12: TLabel;
Edt_ApInvoiceRemArk: TEdit;
Label4: TLabel;
Edt_ExchRate: TEdit;
procedure LEdt_VendorCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure LEdt_VendorCodeButtonClick(Sender: TObject);
procedure LEdt_VendorCodeExit(Sender: TObject);
procedure LEdt_VendorCodeChange(Sender: TObject);
procedure LEdt_CurrencyCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure LEdt_CurrencyCodeButtonClick(Sender: TObject);
procedure LEdt_CurrencyCodeExit(Sender: TObject);
procedure LEdt_CurrencyCodeChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure Edt_ApInvoiceAmountExit(Sender: TObject);
procedure Edt_ApInvoiceRemArkEnter(Sender: TObject);
procedure MEdt_ApInvoiceDateExit(Sender: TObject);
private
{ Private declarations }
VendorTaxRate_Percent:integer; //缺省税率
ServerDate:string; //
Function IsMasterCurrency(Currency:string):boolean;//是否本位币 1:为 本位币 0:为非本位币;
public
{ Public declarations }
protected
procedure InitControls; Override;
procedure SaveData; Override;
end;
var
Frm_Ap_Enter_NoPayInvoice_D: TFrm_Ap_Enter_NoPayInvoice_D;
implementation
uses Sys_Global, Ap_Enter_NoPayInvoice;
{$R *.DFM}
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeKeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
if(Key=120)then
CommonHint(Sender,AdoQry_Tmp,'VendorName','供应商名称','VendorCode',
'供应商代码','Vendor','VendorUsable=1');
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeButtonClick(
Sender: TObject);
begin
inherited;
CommonHint(Sender,AdoQry_Tmp,'VendorName','供应商名称','VendorCode',
'供应商代码','Vendor','VendorUsable=1');
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeExit(
Sender: TObject);
begin
inherited;
if activecontrol.Name='btn_Cancel' then
abort;
if Trim(LEdt_VendorCode.text)='' then
begin
DispInfo('供应商代码不能为空!',3);
LEdt_VendorCode.setfocus;
abort;
end;
VendorTaxRate_Percent:=0;
with AdoQry_Tmp do
begin
Close;
sql.clear;
sql.text:=' select Vendor.VendorName, Vendor.VendorTaxRate_Percent'
+' ,Vendor.CurrencyCode,Currency.CurrencyName'
+' from Vendor left join Currency on Currency.CurrencyCode=Vendor.CurrencyCode'
+' where VendorCode='''+Trim(LEdt_VendorCode.text)+''''
+' and VendorUsable=1';
open;
if recordCount<>0 then
begin
Edt_VendorName.text:=fieldbyname('VendorName').asstring;
VendorTaxRate_Percent:=fieldbyname('VendorTaxRate_Percent').asinteger;
LEdt_CurrencyCode.text:=fieldbyname('CurrencyCode').asstring;
Edt_CurrencyName.text:=fieldbyname('CurrencyName').asstring;
end
else
begin
DispInfo('此供应商代码不存在或没有生效!',3);
LEdt_VendorCode.setfocus;
abort;
end;
Close;
end;
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeChange(
Sender: TObject);
begin
inherited;
if Trim(LEdt_VendorCode.text)='' then
Edt_VendorName.text:='';
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeKeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
if(Key=120)then
CommonHint(Sender,AdoQry_Tmp,'CurrencyName','币种名称','CurrencyCode','币种代码','Currency');
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeButtonClick(
Sender: TObject);
begin
inherited;
CommonHint(Sender,AdoQry_Tmp,'CurrencyName','币种名称','CurrencyCode','币种代码','Currency');
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeExit(
Sender: TObject);
begin
inherited;
if activecontrol.Name='btn_Cancel' then
abort;
if Trim(LEdt_CurrencyCode.text)='' then
begin
DispInfo('货币代码不为空请输入!',3);
LEdt_CurrencyCode.setfocus;
abort;
end;
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add('select CurrencyName from Currency where CurrencyCode='''+Trim(LEdt_CurrencyCode.text)+'''');
open;
if recordCount<>0 then
Edt_CurrencyName.text:=fieldbyname('CurrencyName').asstring
else
begin
DispInfo('货币代码不存在请重新输入!',3);
LEdt_CurrencyCode.setfocus;
abort;
end;
Close;
end;
Edt_ExchRate.text:='';
if IsMasterCurrency(Trim(LEdt_CurrencyCode.text)) then
begin
Edt_ExchRate.text:='1';
Edt_ExchRate.Enabled :=False;
Edt_ApInvoiceAmount.setfocus;
end
else
begin
with AdoQry_Tmp do
begin
Close;
sql.clear;
sql.text:=' select ExchRate.ExchRate as ExchRate'
+' from ExchRate '
+' where ExchRate.CurrencyCode='''+Trim(LEdt_CurrencyCode.text)+''''
+' and ExchRate.ExchMonth='''+copy(MEdt_ApInvoiceDate.text,1,7)+'''';
open;
if recordCount<>0 then
begin
Edt_ExchRate.text:=fieldbyname('ExchRate').asstring;
Edt_ExchRate.Enabled :=False;
Edt_ApInvoiceAmount.setfocus;
end
else
begin
Edt_ExchRate.Enabled:=True;
Edt_ExchRate.setfocus;
end;
Close;
end;
end;
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeChange(
Sender: TObject);
begin
inherited;
if Trim(LEdt_CurrencyCode.text)='' then
Edt_CurrencyName.text:='';
end;
procedure TFrm_Ap_Enter_NoPayInvoice_D.InitControls;
begin
inherited;
Executesql(AdoQry_Tmp,'select CONVERT(chAr(10),getdate(),102 ) as date1',0);
ServerDate:=AdoQry_Tmp.fieldbyname('date1').asstring;
if status='Add' then
begin
Edt_ApInvoiceNo.setfocus;
Edt_ApInvoiceNo.Text:='';
MEdt_ApInvoiceDate.Text:=ServerDate ;
LEdt_VendorCode.Text:='';
LEdt_CurrencyCode.Text:='';
Edt_ExchRate.text:='';
Edt_ApInvoiceAmount.Text:='0';
Edt_ApInvoiceTax.Text:='0';
Edt_ApPayedAmount.text:='0';
Edt_ApInvoiceRemArk.text:='系统初始化';
Edt_EmployeeCode.Text:=UserCode;
Edt_ApInvoiceInputDate.text:= ServerDate ;
if Edt_ApPayedAmount.ReadOnly then
Edt_ApPayedAmount.ReadOnly:=False;
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.text:='select EmployeeName from Employee where EmployeeCode='''+UserCode+'''';
open;
Edt_EmployeeName.text:=fieldbyname('EmployeeName').asstring;
Close;
end;
end
else
begin
with AdoQry_Maintain do
begin
//MEdt_ApInvoiceDate.setfocus;
Edt_ApInvoiceNo.setfocus;
Edt_ApInvoiceNo.Text:=fieldbyname('ApInvoiceNo').asstring;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -