📄 sal_enter_saleorder.pas
字号:
unit Sal_Enter_SaleOrder;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Body, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask, ExtEdit, linkedit, jpeg;
Type
TFrm_Sal_Enter_SaleOrder = Class(TFrm_Base_Entry_Body)
Label1: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Edt_SloNo: TEdit;
Label15: TLabel;
MEdt_CreateDate: TMaskEdit;
Edt_TaxRate_Percent: TEdit;
Edt_RemArk: TEdit;
AdoQry_BodySloNo: TStringField;
AdoQry_BodySloLineNo: TIntegerField;
AdoQry_BodyItemCode: TStringField;
AdoQry_BodySloQty: TFloatField;
AdoQry_BodyNoTaxPrice: TFloatField;
AdoQry_BodyNoTaxAmount: TFloatField;
AdoQry_BodyTaxPrice: TFloatField;
AdoQry_BodyTaxAmount: TFloatField;
AdoQry_BodySloLineDate: TDateTimeField;
AdoQry_BodySloLineStatus: TIntegerField;
AdoQry_BodySloLineRemArk: TStringField;
AdoQry_BodyUomName: TStringField;
Edt_TotalNoTaxAmount: TEdit;
Edt_TotalTaxAmount: TEdit;
Label4: TLabel;
Label16: TLabel;
Lab_ShipAddressName: TLabel;
Lab_SaleTermName: TLabel;
Lab_CurrencyName: TLabel;
Lab_SaleDeptName: TLabel;
Lab_CustomerName: TLabel;
Lab_SaleEmployeeName: TLabel;
AdoQry_BodyItemName: TStringField;
AdoQry_BodyDiSCountRate: TFloatField;
AdoQry_BodyDiSCountAmount: TFloatField;
AdoQry_BodySloCheck: TIntegerField;
Label2: TLabel;
Edt_RemArk1: TEdit;
Edt_SaleTypeName: TEdit;
Edt_CurrencyName: TEdit;
Edt_SaleDeptName: TEdit;
Edt_SaleEmployeeName: TEdit;
Edt_SaleTermName: TEdit;
Edt_CustomerName: TEdit;
Edt_ShipModeName: TEdit;
Edt_ShipAddressName: TEdit;
AdoQry_BodyShipQty: TFloatField;
AdoQry_BodyPrepareShipQty: TFloatField;
AdoQry_BodyLastOperationTime: TDateTimeField;
Edt_CustomerCode: TLinkEdit;
Edt_ShipAddresSCode: TLinkEdit;
Edt_PayTermCode: TLinkEdit;
Edt_ShipModeCode: TLinkEdit;
Edt_CurrencyCode: TLinkEdit;
Edt_SaleTypeCode: TLinkEdit;
Edt_SaleDeptCode: TLinkEdit;
Edt_SaleEmployeeCode: TLinkEdit;
Label11: TLabel;
Label17: TLabel;
edt_CustomerPmno: TEdit;
Label18: TLabel;
edt_referenceno: TEdit;
AdoQry_BodyShipDays: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure Edt_ShipAddresSCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_PayTermCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_ShipModeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_CustomerCodeExit(Sender: TObject);
procedure Edt_SaleTypeCodeExit(Sender: TObject);
procedure Edt_CurrencyCodeExit(Sender: TObject);
procedure Edt_TotalNoTaxAmountExit(Sender: TObject);
procedure Edt_TotalTaxAmountExit(Sender: TObject);
procedure Act_PreviewExecute(Sender: TObject);
procedure Act_PrintExecute(Sender: TObject);
procedure Act_DeleteLineExecute(Sender: TObject);
procedure Edt_SloNoExit(Sender: TObject);
procedure Edt_ShipAddresSCodeExit(Sender: TObject);
procedure Edt_PayTermCodeExit(Sender: TObject);
procedure Edt_ShipModeCodeExit(Sender: TObject);
procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
procedure Act_ModifyExecute(Sender: TObject);
procedure Edt_TaxRate_PercentExit(Sender: TObject);
procedure Edt_SaleTypeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_SaleDeptCodeExit(Sender: TObject);
procedure Edt_SaleEmployeeCodeExit(Sender: TObject);
procedure Act_InsertLineExecute(Sender: TObject);
procedure Edt_CustomerCodeEnter(Sender: TObject);
procedure Edt_ShipAddresSCodeButtonClick(Sender: TObject);
procedure Edt_PayTermCodeButtonClick(Sender: TObject);
procedure Edt_ShipModeCodeButtonClick(Sender: TObject);
procedure Edt_SaleTypeCodeButtonClick(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
private
Enter_CustomerCode,CurrentFormStatus:String;
DeletedSloLine : String;
// procedure SaveSa_SaleOrderHistory(AdoConnection:TAdoConnection;SloNo:string;userCode:string;hisType:integer);
// procedure SaveSa_SaleOrderLineHistory(AdoConnection:TAdoConnection;SloNo:string;SloLineNo:integer;userCode:string;hisType:integer);
procedure GetCustomerItem(CustomerCode:String);
{ Private declarations }
public
TmpTaxAmount:string;
ExchRate : Double; //外币汇率
procedure SetStatus(CurrentStatus:String;var AnswerStatus,EnableControls:String); Override;
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Sal_Enter_SaleOrder: TFrm_Sal_Enter_SaleOrder;
TaxRate_Percent,CustomerCode,CurrencyCode:string;
implementation
uses Sys_Global, Sal_Enter_SaleOrder_D, Sal_Enter_SaleOrder_P;
{$R *.DFM}
{ TFrm_Sal_Enter_SaleOrder }
procedure TFrm_Sal_Enter_SaleOrder.InitControls;
var
SqlText:string;
begin
inherited;
DeletedSloLine := QuotedStr('');
Edt_CustomerName.Enabled :=False;
Edt_SaleDeptName.Enabled :=False;
Edt_ShipAddressName.Enabled :=False;
Edt_SaleEmployeeName.Enabled :=False;
Edt_SaleTermName.Enabled :=False;
Edt_CurrencyName.Enabled :=False;
Edt_SaleTypeName.Enabled :=False;
Edt_ShipModeName.Enabled :=False;
Edt_TotalNoTaxAmount.Enabled :=False;
Edt_TotalTaxAmount.Enabled :=False;
Edt_TaxRate_Percent.Text:='17';
Application.ProcessMessages;
With AdoQry_Head do
begin
if Status<>'Add' then
begin
Edt_SloNo.Text :=fieldbyname('SloNo').AsString;
SqlText:=' Select Sa_SaleOrder.CustomerCode,'
+' Customer.CustomerName, '
+' sa_SaleOrder.referenceno, '
+' sa_SaleOrder.customerPmno, '
+' Sa_SaleOrder.CustomerCode+'' ''+Customer.CustomerName As CustomerFalg, '
+' CreateDate, '
+' Sa_SaleOrder.SloNo,Sa_SaleOrder.SaleTypeCode,SaleTypeName,'
+' Sa_SaleOrder.SaleDeptCode,Dept.DeptName, '
+' Sa_SaleOrder.SaleDeptCode+'' ''+Dept.DeptName As SaleDeptFalg,'
+' Sa_SaleOrder.SaleEmployeeCode,Employee1.EmployeeName, '
+' Sa_SaleOrder.SaleEmployeeCode+'' ''+Employee1.EmployeeName As SaleEmployeeFalg,'
+' Sa_SaleOrder.CurrencyCode,Currency.CurrencyName,'
+' Sa_SaleOrder.CurrencyCode+'' ''+Currency.CurrencyName As CurrencyFalg, '
+' sa_SaleOrder.TaxRate_Percent,Sa_SaleOrder.PayTermCode,PayTerm.PayTermName, '
+' Sa_SaleOrder.PayTermCode+'' ''+PayTerm.PayTermName AS SaleTermFlag, '
+' sa_SaleOrder.CreateEmployeeCode,Employee.EmployeeName, '
+' sa_SaleOrder.CreateEmployeeCode+'' ''+Employee.EmployeeName as createEmployeefalg, '
+' sa_SaleOrder.ShipModeCode,ShipMode.ShipModeName, '
+' sa_SaleOrder.ShipModeCode+'' ''+ShipMode.ShipModeName as ShipModefalg, '
+' sa_SaleOrder.ShipAddresSCode,customerShipAddress.ShipAddressName, '
+' sa_SaleOrder.ShipAddresSCode+'' ''+customerShipAddress.ShipAddressName as ShipAddressfalg ,'
+' Sa_SaleOrder.remArk,TotalNoTaxAmount,TotalTaxAmount,EditDate,EdItEmployeeCode ,RemArk1'
+' From Sa_SaleOrder '
+' Left Join PayTerm On Sa_SaleOrder.PayTermCode=PayTerm.PayTermCode'
+' Join Customer On Sa_SaleOrder.CustomerCode=Customer.CustomerCode '
+' Left Join Dept On Sa_SaleOrder.SaleDeptCode=Dept.DeptCode '
+' Left Join Employee Employee1 On Sa_SaleOrder.SaleEmployeeCode=Employee1.EmployeeCode '
+' Join Currency On Sa_SaleOrder.CurrencyCode=Currency.CurrencyCode '
+' Left Join Employee On Sa_SaleOrder.CreateEmployeeCode=Employee.EmployeeCode '
+' Left Join ShipMode On Sa_SaleOrder.ShipModeCode=ShipMode.ShipModeCode '
+' Left Join SaleType On Sa_SaleOrder.SaleTypeCode=SaleType.SaleTypeCode '
+' Left Join CustomerShipAddress On Sa_SaleOrder.ShipAddresSCode=CustomerShipAddress.ShipAddresSCode '
+'where Sa_SaleOrder.SloNo='''+Trim(AdoQry_Head.fieldbyname('SloNo').AsString)+'''';
AdoQry_tmp.Close;
AdoQry_tmp.SQL.clear;
AdoQry_tmp.SQL.text:=SqlText;
AdoQry_tmp.Open ;
With AdoQry_tmp Do
begin
Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('CreateDate').asdatetime);
Edt_SaleDeptCode.Text:=fieldbyname('SaleDeptCode').AsString;
Edt_SaleTypeCode.Text:=fieldbyname('SaleTypeCode').AsString;
Edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').AsString;
Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
Edt_TaxRate_Percent.Text:=fieldbyname('TaxRate_Percent').AsString;
Edt_ShipModeCode.Text:=fieldbyname('ShipModeCode').AsString;
Edt_ShipAddresSCode.Text:=fieldbyname('ShipAddresSCode').AsString;
Edt_PayTermCode.Text:=fieldbyname('PayTermCode').AsString;
Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
Edt_TotalNoTaxAmount.Text:=fieldbyname('TotalNoTaxAmount').AsString;
Edt_TotalTaxAmount.Text:=fieldbyname('TotalTaxAmount').AsString;
TmpTaxAmount:=Edt_TotalTaxAmount.Text;
Lab_SaleDeptName.Caption:=fieldbyname('DeptName').AsString;
Lab_SaleEmployeeName.Caption:=fieldbyname('EmployeeName').AsString;
Lab_CurrencyName.Caption:=fieldbyname('CurrencyName').AsString;
// Lab_ShipModeName.Caption:=fieldbyname('ShipModeName').AsString;
Lab_SaleTermName.Caption:=fieldbyname('PayTermName').AsString;
Lab_ShipAddressName.Caption:=fieldbyname('ShipAddressName').AsString;
Lab_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
Edt_SaleDeptName.Text:=fieldbyname('DeptName').AsString;
Edt_SaleEmployeeName.Text:=fieldbyname('EmployeeName').AsString;
Edt_CurrencyName.Text:=fieldbyname('CurrencyName').AsString;
Edt_ShipModeName.Text:=fieldbyname('ShipModeName').AsString;
Edt_SaleTermName.Text:=fieldbyname('PayTermName').AsString;
Edt_ShipAddressName.Text:=fieldbyname('ShipAddressName').AsString;
Edt_CustomerName.text:=fieldbyname('CustomerName').AsString;
Edt_SaleTypeName.text:=fieldbyname('SaleTypeName').AsString;
Edt_RemArk1.text:=fieldbyname('RemArk1').AsString;
edt_CustomerPmno.Text:=fieldbyname('customerPmno').asstring;
edt_referenceno.Text:=fieldbyname('referenceno').asstring;
end;
end
Else
begin
if CheckAllTypeOrderNoSet(DbConnect,2) then
begin
Edt_SloNo.Text := GetAllTypeOrderNo(DbConnect,2);
Edt_SloNo.Enabled := False;
if Edt_CustomerCode.CanFocus then
Edt_CustomerCode.SetFocus;
end
else
begin
Edt_SloNo.Enabled := True;
if Edt_SloNo.CanFocus then
Edt_SloNo.SetFocus;
Edt_SloNo.Text :='';
end;
Edt_CustomerCode.Text:='';
//Edt_CustomerName.Text:='';
MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',Date);
Edt_TaxRate_Percent.Text:='17';
Edt_SaleDeptCode.Text:='';
Lab_SaleDeptName.Caption:='';
Edt_SaleTypeCode.Text:='';
Edt_SaleEmployeeCode.Text:='';
Lab_SaleEmployeeName.Caption:='';
Edt_CurrencyCode.Text:='';
Lab_CurrencyName.Caption:='';
Edt_ShipModeCode.Text:='';
// Lab_ShipModeName.Caption:='';
Edt_ShipAddresSCode.Text:='';
Lab_ShipAddressName.Caption:='';
Edt_PayTermCode.Text:='';
Lab_SaleTermName.Caption:='';
Edt_RemArk.Text:='';
Edt_TotalNoTaxAmount.Text:='0';//fieldbyname('TotalNoTaxAmount').AsString;
Edt_TotalTaxAmount.Text:='0';//fieldbyname('TotalNoTaxAmount').AsString;
Edt_SaleDeptName.Text:='';
Edt_SaleEmployeeName.Text:='';
Edt_CurrencyName.Text:='';
Edt_ShipModeName.Text:='';
Edt_SaleTermName.Text:='';
Edt_ShipAddressName.Text:='';
Edt_CustomerName.text:='';
Edt_SaleTypeName.text:='';
Edt_RemArk1.text:='';
edt_CustomerPmno.Text:='';
edt_referenceno.Text:='';
end;
end;
AdoQry_Body.Close;
if UpperCase(Status)=UpperCase('Add') then
SqlText:='Select Top 0 Sa_SaleOrderLine.*,Item.ItemName,Uom.UomName'
+' From Sa_SaleOrderLine '
+' Join Item On Sa_SaleOrderLine.ItemCode=Item.ItemCode '
+' left Join Uom On Item.UomCode=Uom.UomCode '
else
SqlText:='Select Sa_SaleOrderLine.*,Item.ItemName ,Uom.UomName'
+' From Sa_SaleOrderLine '
+' Join Item On Sa_SaleOrderLine.ItemCode=Item.ItemCode '
+' And Sa_SaleOrderLine.SloNo='''+Trim(AdoQry_Head.fieldbyname('SloNo').AsString)+''''
+' left Join Uom On Item.UomCode=Uom.UomCode ';
AdoQry_Body.Close;
AdoQry_Body.SQL.Text:=SqlText;
AdoQry_Body.Open;
Act_InsertLine.Enabled := True;
Act_DeleteLine.Enabled := True;
end;
procedure TFrm_Sal_Enter_SaleOrder.SaveData;
var
SqlText:String;
begin
inherited;
//zhuzhongfu
//Edit Date:2002.02.23
IF (CurrentFormStatus='Add') and (CheckAllTypeOrderNoSet(DbConnect,2)) then
Edt_SloNo.Text := GetAllTypeOrderNo(DbConnect,2);
IF Trim(Edt_SloNo.Text)='' Then
begin
DispInfo('销售订单号不能为空!',3);
Edt_SloNo.SetFocus;
Abort;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -