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

📄 sal_enter_othersaleinvoice.pas

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