⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sal_enter_backshiporder.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 4 页
字号:
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 + -