📄 sal_enter_backshiporder.pas
字号:
unit Sal_Enter_BackShipOrder;
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, linkedit, jpeg;
Type
TFrm_Sal_Enter_BackShipOrder = Class(TFrm_Base_Entry_Body)
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
MEdt_CreateDate: TMaskEdit;
Lab_CurrencyName: TLabel;
Lab_SaleDeptName: TLabel;
Edt_TaxRate_Percent: TEdit;
Edt_TotalNoTaxAmount: TEdit;
Edt_TotalTaxAmount: TEdit;
Label16: TLabel;
Label17: TLabel;
Edt_CustomerName: TLabel;
Lab_SaleEmployeeName: TLabel;
Lab_SaleTermName: TLabel;
lab_ShipModeName: TLabel;
Lab_ShipAddressName: TLabel;
Edt_RemArk: TEdit;
Label20: TLabel;
Edt_CurrencyName: TEdit;
Edt_SaleEmployeeName: TEdit;
Edt_SaleDeptName: TEdit;
Edt_ShipModeName: TEdit;
Edt_SaleTermName: TEdit;
lab_CustomerName: TEdit;
Edt_ShipAddressName: TEdit;
Edt_SaleTypeName: TEdit;
Edt_RemArk1: TEdit;
Edt_CustomerCode: TLinkEdit;
Edt_ShipAddresSCode: TLinkEdit;
Edt_PayTermCode: TLinkEdit;
Edt_ShipModeCode: TLinkEdit;
Edt_CurrencyCode: TLinkEdit;
Edt_SaleDeptCode: TLinkEdit;
Edt_SaleEmployeeCode: TLinkEdit;
Edt_SaleTypeCode: TLinkEdit;
Edt_InvBillNo: TEdit;
AdoQry_BodyInvBillNo: TStringField;
AdoQry_BodyInvBillId: TFloatField;
AdoQry_BodyInvBillLINENO: TStringField;
AdoQry_BodyItemCode: TStringField;
AdoQry_BodyInvBillAmount: TFloatField;
AdoQry_BodyInvBillNoTaxAmount: TFloatField;
AdoQry_BodyInvBillnoTaxAmountc: TFloatField;
AdoQry_BodyInvBillAmountC: TFloatField;
AdoQry_BodyInvBillQty: TFloatField;
AdoQry_BodyInvBillPrice: TFloatField;
AdoQry_BodyInvBillNoTaxPrice: TFloatField;
AdoQry_BodyInvBillPriceC: TFloatField;
AdoQry_BodyInvBillNoTaxPriceC: TFloatField;
AdoQry_BodyDiSCountRate: TFloatField;
AdoQry_BodyDiSCountAmount: TFloatField;
AdoQry_BodySloNo: TStringField;
AdoQry_BodySloLineNo: TIntegerField;
AdoQry_BodyItemName: TStringField;
AdoQry_BodyUomName: TStringField;
Label11: TLabel;
Edt_WhCode: TLinkEdit;
Edt_WhName: TEdit;
Edt_WhPositionName: TEdit;
Edt_WhPositionCode: TLinkEdit;
Label18: TLabel;
Label19: TLabel;
AdoQry_BodyBatchNo: TStringField;
AdoQry_BodyBilllineremArk: TStringField;
procedure FormCreate(Sender: TObject);
procedure Edt_SaleTypeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_SaleTypeCodeExit(Sender: TObject);
procedure Edt_TaxRate_PercentExit(Sender: TObject);
procedure Edt_PayTermCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_PayTermCodeExit(Sender: TObject);
procedure Edt_ShipModeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_ShipModeCodeExit(Sender: TObject);
procedure Edt_ShipAddresSCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_ShipAddresSCodeExit(Sender: TObject);
procedure Act_SaveExecute(Sender: TObject);
procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
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 Edt_CurrencyCodeExit(Sender: TObject);
procedure Edt_SaleEmployeeCodeExit(Sender: TObject);
procedure Edt_CustomerCodeExit(Sender: TObject);
procedure Edt_SaleDeptCodeExit(Sender: TObject);
procedure Act_InsertLineExecute(Sender: TObject);
procedure Act_ModifyExecute(Sender: TObject);
procedure Edt_ShipAddresSCodeButtonClick(Sender: TObject);
procedure Edt_PayTermCodeButtonClick(Sender: TObject);
procedure Edt_ShipModeCodeButtonClick(Sender: TObject);
procedure Edt_SaleTypeCodeButtonClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Edt_WhCodeExit(Sender: TObject);
procedure Edt_WhPositionCodeExit(Sender: TObject);
procedure Edt_WhCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_WhCodeButtonClick(Sender: TObject);
procedure Edt_WhPositionCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_WhPositionCodeButtonClick(Sender: TObject);
procedure AdoQry_BodyInvBillQtyGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
procedure AdoQry_BodyInvBillAmountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
procedure AdoQry_BodyInvBillNoTaxAmountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
procedure AdoQry_BodyDiSCountAmountGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
private
CurrentFormStatus:String;
{ Private declarations }
public
ExchRate : Double;
BillTypeCode :String;
procedure InitForm(AdOConnection:TAdOConnection;FormStatus:String;
AdoQuery:TAdoQuery);Override;
procedure InitControls; Override;
procedure SetStatus(CurrentStatus:String;var AnswerStatus,EnableControls:String); Override;
{ Public declarations }
end;
var
Frm_Sal_Enter_BackShipOrder: TFrm_Sal_Enter_BackShipOrder;
TaxRate_Percent,CustomerCode:String;
implementation
uses Sal_Enter_BackShipOrder_D, Sys_Global, Sal_Enter_BackShipOrder_C1,
Sal_Enter_BackShipOrderH, Sal_Enter_BackShipOrder_P;
{$R *.DFM}
{ TFrm_Sal_Enter_ShipOrder }
procedure TFrm_Sal_Enter_BackShipOrder.InitForm(AdOConnection: TAdOConnection;
FormStatus: String; AdoQuery: TAdoQuery);
var
SqlText,SloNo:String;
I:integer;
begin
Application.ProcessMessages;
inherited;
If FormStatus='Add' then
begin
CurrentFormStatus:='Add';
if (CheckAllTypeOrderNoSet(DbConnect,4)) then
Edt_InvBillNo.Text := GetAllTypeOrderNo(DbConnect,4);
MEdt_CreateDate.Text :=FormatDateTime('YYYY.MM.DD',Date());
Edt_CustomerCode.Text :=Frm_Sal_Enter_BackShipOrder_C1.CustomerCode;
Edt_CustomerName.Caption :=Frm_Sal_Enter_BackShipOrder_C1.CustomerName;
LAb_CustomerName.Text :=Frm_Sal_Enter_BackShipOrder_C1.CustomerName;
AdoQuery.First;
while not AdoQuery.Eof do
begin
If AdoQuery.fieldbyname('TmpField').AsInteger=1 Then
begin
SloNo:=AdoQuery.fieldbyname('InvBillNo').asstring;
break;
end;
AdoQuery.Next;
end;
SqlText:=' Select InvOutBill.*,Warehouse.WhName,WhPosition.WhPositionName,CustomerName,SaleType.SaleTypeName,'
+' InvOutBill.CustomerCode+'' ''+ CustomerName as CustomerFalg,'
+' DeptName,'
+' InvOutBill.DeptCode+'' ''+DeptName As DeptFalg, '
+' Employee.EmployeeName, '
+' SaleEmployeeCode+'' ''+Employee.EmployeeName As EmployeeFalg, '
+' CurrencyName,'
+' InvOutBill.CurrencyCode+'' ''+CurrencyName As CurrencyFalg, '
+' PayTerm.PayTermName as SaleTermName, '
+' InvOutBill.PayTermCode+'' ''+PayTermName As SaleTermFalg,'
+' tt.EmployeeName, '
+' Sal_EmployeeCode+'' ''+tt.EmployeeName As EmployeeFalg1, '
+' ShipModeName,'
+' InvOutBill.ShipModeCode+'' ''+ShipModeName As ShipModeFalg,'
+' ShipAddressName, '
+' InvOutBill.ShipAddresSCode+'' ''+ShipAddressName As ShipAddressFalg'
+' From InvOutBill Join Customer '
+' On InvOutBill.CustomerCode=Customer.CustomerCode '
+' Left Join Warehouse on InvOutBill.WhCode=Warehouse.WhCode '
+' Left Join WhPosition on InvOutBill.WhCode=WhPosition.WhCode '
+' and InvOutBill.WhPositionCode=WhPosition.WhPositionCode '
+' Left Join Dept '
+' On InvOutBill.DeptCode=Dept.DeptCode '
+' Left Join Employee '
+' On InvOutBill.SaleEmployeeCode=Employee.EmployeeCode '
+' left Join Currency '
+' On InvOutBill.CurrencyCode=Currency.CurrencyCode '
+' Left Join PayTerm '
+' On InvOutBill.PayTermCode=PayTerm.PayTermCode '
+' left Join Employee tt '
+' On InvOutBill.Sal_EmployeeCode=tt.EmployeeCode '
+' left Join ShipMode '
+' On InvOutBill.ShipModeCode=ShipMode.ShipModeCode '
+' left Join SaleType '
+' On SaleType.SaleTypeCode=InvOutBill.SaleType '
+' Left Join CustomerShipAddress '
+' On InvOutBill.ShipAddresSCode=CustomerShipAddress.ShipAddresSCode '
+' where InvBillNo='''+SloNo+'''';
AdoQry_tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text :=SqlText;
AdoQry_Tmp.Open;
with AdoQry_Tmp do
begin
Edt_SaleDeptCode.Text:=fieldbyname('DeptCode').AsString;
Edt_SaleTypeCode.Text:=fieldbyname('SaleType').AsString;
Edt_SaleTypeName.Text:=fieldbyname('SaleTypeName').AsString;
Edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').AsString;
Edt_WhCode.Text := fieldbyname('WhCode').AsString;
Edt_WhName.Text := fieldbyname('WhName').AsString;
Edt_WhPositionCode.Text := fieldbyname('WhPositionCode').AsString;
Edt_WhPositionName.Text := fieldbyname('WhPositionName').AsString;
Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
Edt_TaxRate_Percent.Text:=fieldbyname('InvBillTaxRate').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;
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('SaleTermName').AsString;
Lab_ShipAddressName.Caption:=fieldbyname('ShipAddressName').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('SaleTermName').AsString;
Edt_ShipAddressName.Text:=fieldbyname('ShipAddressName').AsString;
end;
SqlText:=' Select Top 0 InvOutBill.InvBillNo,InvOutBillLine.* ,Item.ItemName,Uom.UomName,'
+' Warehouse.WhName,WhPosition.WhPositionName '
+' From InvOutBillLine '
+' Join InvOutBill on InvOutBillLine.InvBillId=InvOutBill.InvBillId '
+' Left Join Item '
+' On InvOutBillLine.ItemCode=Item.ItemCode '
+' Left Join Uom '
+' On Item.UomCode=Uom.UomCode '
+' Left Join Warehouse '
+' On Warehouse.WhCode=InvOutBill.WhCode '
+' left Join WhPosition '
+' On (InvOutBill.WhCode=WhPosition.WhCode '
+' And InvOutBill.WhPositionCode=WhPosition.WhPositionCode) ';
AdoQry_Body.Close;
AdoQry_Body.SQL.Text:=SqlText;
AdoQry_Body.Open;
AdoQuery.First;
I:=1;
While Not AdoQuery.Eof Do
begin
If AdoQuery.fieldbyname('TmpField').AsInteger=1 Then
begin
AdoQry_Body.Append;
AdoQry_Body.fieldbyname('InvBillLineNo').AsInteger:=I;
AdoQry_Body.fieldbyname('SloNo').AsString:=AdoQuery.fieldbyname('InvBillNo').AsString;
AdoQry_Body.fieldbyname('SloLineNo').AsString:=AdoQuery.fieldbyname('InvBillLineNo').AsString;
AdoQry_Body.fieldbyname('UomName').AsString:=AdoQuery.fieldbyname('UomName').AsString;
AdoQry_Body.fieldbyname('ItemCode').AsString:=AdoQuery.fieldbyname('ItemCode').AsString;
AdoQry_Body.fieldbyname('ItemName').AsString:=AdoQuery.fieldbyname('ItemName').AsString;
AdoQry_Body.fieldbyname('InvBillQty').AsFloat:=-AdoQuery.fieldbyname('InvBillQty').AsFloat;
AdoQry_Body.fieldbyname('InvBillPrice').AsString:=AdoQuery.fieldbyname('InvBillPrice').AsString;
AdoQry_Body.fieldbyname('InvBillAmount').AsFloat:=-AdoQuery.fieldbyname('InvBillAmount').AsFloat;
AdoQry_Body.fieldbyname('InvBillNoTaxPrice').AsString:=AdoQuery.fieldbyname('InvBillNoTaxPrice').AsString;
AdoQry_Body.fieldbyname('InvBillNoTaxAmount').AsFloat:=-AdoQuery.fieldbyname('InvBillNoTaxAmount').AsFloat;
AdoQry_Body.fieldbyname('DiSCountRate').AsString:=AdoQuery.fieldbyname('DiSCountRate').AsString;
AdoQry_Body.fieldbyname('DiSCountAmount').AsFloat:=-AdoQuery.fieldbyname('DiSCountAmount').AsFloat;
AdoQry_Body.fieldbyname('BillLineRemArk').AsString:=AdoQuery.fieldbyname('BillLineRemArk').AsString;
// AdoQry_Body.fieldbyname('CheckFlag').AsInteger:=0;
AdoQry_Body.Post;
I:=I+1;
end;
AdoQuery.Next;
end;
DataSource.DataSet:=AdoQry_Body;
end
else
begin
If FormStatus='Edit' then
begin
CurrentFormStatus:='Edit';
With AdoQry_Head do
begin
Edt_InvBillNo.Text :=fieldbyname('InvBillNo').AsString;
Edt_CustomerCode.Text:=fieldbyname('CustomerCode').AsString;
Edt_CustomerName.Caption:=fieldbyname('CustomerName').AsString;
LAb_CustomerName.Text:=fieldbyname('CustomerName').AsString;
MEdt_CreateDate.Text:=Formatdatetime('yyyy.mm.dd',fieldbyname('InvBillDate').asdatetime);
Edt_SaleDeptCode.Text:=fieldbyname('DeptCode').AsString;
Edt_SaleTypeCode.Text:=fieldbyname('SaleType').AsString;
Edt_SaleTypeName.Text:=fieldbyname('SaleTypeName').AsString;
Edt_WhCode.Text := fieldbyname('WhCode').AsString;
Edt_WhName.Text := fieldbyname('WhName').AsString;
Edt_WhPositionCode.Text := fieldbyname('WhPositionCode').AsString;
Edt_WhPositionName.Text := fieldbyname('WhPositionName').AsString;
Edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').AsString;
Edt_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
Edt_TaxRate_Percent.Text:=fieldbyname('InvBillTaxRate').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_RemArk1.Text:=fieldbyname('RemArk1').AsString;
Edt_TotalNoTaxAmount.Text:=FloatToStr(-fieldbyname('TotalInvBillNoTaxAmount').AsFloat);
Edt_TotalTaxAmount.Text:=FloatToStr(-fieldbyname('TotalInvBillAmount').AsFloat);
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;
Edt_SaleDeptName.Text:=fieldbyname('DeptName').AsString;
Edt_SaleEmployeeName.Text:=fieldbyname('EmployeeName').AsString;
Edt_CurrencyName.Text:=fieldbyname('CurrencyName').AsString;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -