📄 sal_enter_othersaleinvoice.pas
字号:
unit Sal_Enter_OtherSaleInvoice;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Body, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
ExtCtrls, ComCtrls, ToolWin, StdCtrls, ExtEdit, Mask;
Type
TFrm_Sal_Enter_OtherSaleInvoice = Class(TFrm_Base_Entry_Body)
Label1: TLabel;
Label3: TLabel;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label14: TLabel;
Label15: TLabel;
MEdt_CreateDate: TMaskEdit;
Lab_CurrencyName: TLabel;
Edt_CurrencyCode: TExtEdit;
Edt_TotalTaxAmount: TEdit;
Label17: TLabel;
Edt_CustomerName: TLabel;
Edt_CustomerCode: TExtEdit;
Lab_SaleTermName: TLabel;
Edt_SaleTermCode: TExtEdit;
Edt_RemArk: TEdit;
Label2: TLabel;
Label18: TLabel;
Label19: TLabel;
Edt_InvoiceNo: TEdit;
Edt_AssessorEmployeeCode: TEdit;
Cx_Assess: TComboBox;
Edt_CreateEmployeeCode: TExtEdit;
Label20: TLabel;
Label4: TLabel;
Label5: TLabel;
Edt_CustomerBank: TEdit;
Edt_CustomerBankActNo: TEdit;
Edt_ExchangeRate: TEdit;
Label6: TLabel;
Edit1: TEdit;
Label7: TLabel;
Label9: TLabel;
Label12: TLabel;
Edit2: TEdit;
Edit3: TEdit;
AdoQry_BodyInvoiceNo: TStringField;
AdoQry_BodyShipNo: TStringField;
AdoQry_BodyShipLineNo: TIntegerField;
AdoQry_BodyItemCode: TStringField;
AdoQry_BodyShipQty: TFloatField;
AdoQry_BodyTaxPrice: TFloatField;
AdoQry_BodyTaxAmount: TFloatField;
AdoQry_BodyDiSCountRate: TFloatField;
AdoQry_BodyDiSCountAmount: TFloatField;
AdoQry_BodyItemName: TStringField;
AdoQry_BodyUomName: TStringField;
AdoQry_BodyNoTaxPrice: TFloatField;
AdoQry_BodyNoTaxAmount: TFloatField;
procedure Edt_SaleTermCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_SaleTermCodeExit(Sender: TObject);
procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
procedure Cx_AssesSChange(Sender: TObject);
procedure Act_DeleteLineExecute(Sender: TObject);
procedure Act_PreviewExecute(Sender: TObject);
procedure Act_PrintExecute(Sender: TObject);
procedure Act_NewExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Edt_CustomerCodeExit(Sender: TObject);
procedure Edt_CurrencyCodeExit(Sender: TObject);
private
CurrentFormStatus:String;
{ Private declarations }
public
procedure InitForm(AdOConnection:TAdOConnection;FormStatus:String;
AdoQuery:TAdoQuery);Override;
procedure InitControls; Override;
procedure SetStatus(CurrentStatus:String;var AnswerStatus,EnableControls:String); Override;
procedure SaveHeadData; Override;//把表头控件值写入缓存,不要Post
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Sal_Enter_OtherSaleInvoice: TFrm_Sal_Enter_OtherSaleInvoice;
implementation
uses Sys_Global,Sal_Enter_OtherSaleInvoiceH, Sal_Enter_OtherSaleInvoice_D;
{$R *.DFM}
{ TFrm_Sal_Enter_SaleInvoice }
procedure TFrm_Sal_Enter_OtherSaleInvoice.InitForm(AdOConnection: TAdOConnection;
FormStatus: String; AdoQuery: TAdoQuery);
var
SqlText,ShipNo:String;
begin
inherited;
If FormStatus='Add' then
CurrentFormStatus:='Add'
else
If FormStatus='Edit' then
CurrentFormStatus:='Edit'
else
If FormStatus='ReadOnly' then
CurrentFormStatus:='Query';
if CurrentFormStatus ='Add' then
begin
MEdt_CreateDate.Text :=FormatDateTime('YYYY.MM.DD',Date());
Cx_Assess.ItemIndex :=0;
Edt_AssessorEmployeeCode.Text :='';
Edt_CreateEmployeeCode.Text :=UserCode;
With AdoQry_Head do
begin
Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
Edt_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
Edt_SaleTermCode.Text:=fieldbyname('SaleTermCode').AsString;
Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
Edt_TotalTaxAmount.Text:=fieldbyname('TotalTaxAmount').AsString;
Edit1.Text :=fieldbyname('CurrencyName').AsString;
Edit2.Text:=fieldbyname('CustomerName').AsString;
Edit3.Text:=fieldbyname('PayTermName').AsString;
Edt_ExchangeRate.Text:=fieldbyname('ExchangeRate').AsString;
Edt_InvoiceNo.Text:=fieldbyname('InvoiceNo').AsString;
Lab_CurrencyName.Caption:=fieldbyname('CurrencyName').AsString;
Lab_SaleTermName.Caption:=fieldbyname('PayTermName').AsString;
SqlText:=' Select Top 0 Sa_SaleInvoiceLine.*,Item.ItemName,Uom.UomName '
+' From Sa_SaleInvoiceLine '
+' Join Item '
+' On Item.ItemCode=Sa_SaleInvoiceLine.ItemCode '
+' Join Uom '
+' On Item.UomCode=Uom.UomCode '
+' where InvoiceNo= '''+fieldbyname('InvoiceNo').AsString+''' ' ;
AdoQry_Body.Close;
AdoQry_Body.SQL.Text:=SqlText;
AdoQry_Body.Open;
end
end
else
begin
With AdoQry_Head do
begin
Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
Edt_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
Edt_CreateEmployeeCode.Text:=fieldbyname('CreateEmployeeCode').AsString;
MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('CreateDate').asdatetime);
Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
Edt_SaleTermCode.Text:=fieldbyname('SaleTermCode').AsString;
Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
Edt_TotalTaxAmount.Text:=fieldbyname('TotalTaxAmount').AsString;
Edit1.Text :=fieldbyname('CurrencyName').AsString;
Edit2.Text:=fieldbyname('CustomerName').AsString;
Edit3.Text:=fieldbyname('PayTermName').AsString;
Edt_ExchangeRate.Text:=fieldbyname('ExchangeRate').AsString;
Edt_InvoiceNo.Text:=fieldbyname('InvoiceNo').AsString;
Edt_AssessorEmployeeCode.Text:=fieldbyname('AssessorEmployeeCode').AsString;
Cx_Assess.ItemIndex :=fieldbyname('Assess').AsInteger;
Lab_CurrencyName.Caption:=fieldbyname('CurrencyName').AsString;
Lab_SaleTermName.Caption:=fieldbyname('PayTermName').AsString;
SqlText:=' Select Sa_SaleInvoiceLine.*,Item.ItemName,Uom.UomName '
+' From Sa_SaleInvoiceLine '
+' Join Item '
+' On Item.ItemCode=Sa_SaleInvoiceLine.ItemCode '
+' Join Uom '
+' On Item.UomCode=Uom.UomCode '
+' where InvoiceNo= '''+fieldbyname('InvoiceNo').AsString+''' ' ;
AdoQry_Body.Close;
AdoQry_Body.SQL.Text:=SqlText;
AdoQry_Body.Open;
end;
end;
end;
procedure TFrm_Sal_Enter_OtherSaleInvoice.InitControls;
begin
If Status<>'Add' then
begin
CurrentFormStatus:='PArtEdit';
SetFocus_Control:=Edt_CustomerCode;
end
Else
begin
CurrentFormStatus:='Add';
end;
If Status='Query' Then
begin
Caption:='其它销售开票明细';
Pnl_Title.Caption:='其它销售开票明细';
end;
inherited;
end;
procedure TFrm_Sal_Enter_OtherSaleInvoice.Edt_SaleTermCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'PayTermName','付款条款名称','PayTermCode',
'付款条款代号',' PayTerm ');
end;
procedure TFrm_Sal_Enter_OtherSaleInvoice.Edt_SaleTermCodeExit(Sender: TObject);
begin
inherited;
If Trim(Edt_SaleTermCode.text)='' then
begin
DispInfo('付款条款不能为空!',3);
Edt_SaleTermCode.SetFocus;
Abort;
end
else
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select * from PayTerm where PayTermCode='''+Trim(Edt_SaleTermCode.text)+''' ';
AdoQry_Tmp.Open;
if AdoQry_Tmp.Eof then
begin
DispInfo('付款条款输入错误!',3);
Edt_SaleTermCode.SetFocus;
Abort;
end;
end;
Edit3.Text :=Lab_SaleTermName.Caption;
end;
procedure TFrm_Sal_Enter_OtherSaleInvoice.AdoQry_BodyAfterPost(DataSet: TDataSet);
var
TotalNoTaxAmount,TotalTaxAmount:double;
BookMArk:String;
begin
inherited;
TotalNoTaxAmount:=0;
TotalTaxAmount:=0;
if AdoQry_Body.RecordCount >0 then
BookMArk:=AdoQry_Body.BookMArk;
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
TotalTaxAmount:= TotalTaxAmount +AdoQry_Body.fieldbyname('TaxAmount').asfloat;
AdoQry_Body.Next;
end;
if AdoQry_Body.RecordCount >0 then
AdoQry_Body.BookMArk:=BookMArk;
Edt_TotalTaxAmount.Text:= floattostr(TotalTaxAmount);
end;
procedure TFrm_Sal_Enter_OtherSaleInvoice.SetStatus(CurrentStatus: String;
var AnswerStatus, EnableControls: String);
begin
inherited;
if Currentstatus='Add' then
begin
AnswerStatus:='Add';
EnableControls:='Edt_SlipNo,Edt_CustomerCode,Edt_CustomerName,'//Edt_CreateEmployeeCode,'
+' MEdt_CreateDate, Edt_SaleDeptCode, Edt_SaleType,'
+' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
+' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_SaleTermCode,'
+' Edt_RemArk,Edt_InvoiceNo,Cx_Assess,Edt_AssessorEmployeeCode,';
end
Else If Pos('Edit',CurrentStatus)>0 Then
begin
AnswerStatus:='PArtEdit';
EnableControls:=' Edt_CustomerCode,Edt_CustomerName,'//Edt_CreateEmployeeCode,'
+' MEdt_CreateDate, Edt_SaleDeptCode, Edt_SaleType,'
+' Edt_SaleEmployeeCode, Edt_CurrencyCode, Edt_TaxRate_Percent,'
+' Edt_ShipModeCode, Edt_ShipAddresSCode, Edt_SaleTermCode,'
+' Edt_RemArk,Edt_InvoiceNo,Cx_Assess,Edt_AssessorEmployeeCode,';
end;
end;
procedure TFrm_Sal_Enter_OtherSaleInvoice.Cx_AssesSChange(Sender: TObject);
begin
inherited;
if Cx_Assess.ItemIndex =0 then
Edt_AssessorEmployeeCode.Text :=''
else
Edt_AssessorEmployeeCode.Text := userCode;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -