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

📄 ar_enter_gatheringinvoice_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Ar_Enter_GatheringInvoice_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Detail, Db, AdODB, ExtCtrls, StdCtrls, Mask, ExtEdit;

Type
  TFrm_Ar_Enter_GatheringInvoice_D = Class(TFrm_Base_Entry_Detail)
    Label2: TLabel;
    Label3: TLabel;
    medt_Sdate: TMaskEdit;
    Label5: TLabel;
    edt_Amount: TEdit;
    Label6: TLabel;
    edt_reMainAmount: TEdit;
    Label9: TLabel;
    edt_CancelAmount: TEdit;
    Edt_Invoiceno: TExtEdit;
    Label1: TLabel;
    Label4: TLabel;
    edt_SaleDeptCode: TExtEdit;
    edt_SaleDeptName: TExtEdit;
    edt_SaleEmployeeCode: TExtEdit;
    edt_SaleEmployeeName: TExtEdit;
    procedure btn_okClick(Sender: TObject);
    procedure Edt_InvoicenoExit(Sender: TObject);
    procedure Edt_InvoicenoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveBodyData; Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String);Override;
    { Public declarations }
  end;

var
  Frm_Ar_Enter_GatheringInvoice_D: TFrm_Ar_Enter_GatheringInvoice_D;

implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Ar_Enter_GatheringInvoice_D.InitControls;
var
  SqlText:String;
begin
  Inherited;
   edt_CancelAmount.SetFocus;
  with AdoQry_Body do
  begin
    edt_Invoiceno.text:=fieldbyname('Billno').asstring;
    edt_SaleDeptCode.Text:=fieldbyname('SaleDeptCode').asstring;
    edt_SaleDeptName.Text:=fieldbyname('DeptName').asstring;
    edt_SaleEmployeeCode.Text:=fieldbyname('SaleEmployeeCode').asstring;
    edt_SaleEmployeeName.Text:=fieldbyname('EmployeeName').asstring;
    medt_Sdate.Text:=IIfString(fieldbyname('Billdate').asstring='',formatdatetime('yyyy.mm.dd',Date),fieldbyname('BillDate').AsString);
    edt_Amount.Text:=floattostr(fieldbyname('TotalAmount').asfloat);
    edt_reMainAmount.Text:=floattostr(fieldbyname('reMainTotalAmount').asfloat);
    edt_CancelAmount.Text:=floattostr(fieldbyname('thiSCancelAmount').asfloat);
  end;
end;

procedure TFrm_Ar_Enter_GatheringInvoice_D.SetStatus(CurrentStatus:String;var EnableControls:String);
begin
  inherited;
  if Currentstatus='Add' then
  enablecontrols:='cmb_BillType,cmb_Billno,medt_Sdate,medt_edate,edt_Amount,edt_reMainAmount,edt_TotaldiSCount,edt_thisdiSCount,edt_CancelAmount,'
  else
  enablecontrols:='edt_CancelAmount,'
end;

procedure TFrm_Ar_Enter_GatheringInvoice_D.SaveBodyData;
begin
  inherited;
  if status='Add' then
   AdoQry_Body.Append
  else AdoQry_Body.Edit;
  with AdoQry_Body do
   begin
     fieldbyname('Billno').asstring:=edt_Invoiceno.Text;
     fieldbyname('SaleDeptCode').asstring:=edt_SaleDeptCode.Text;
     fieldbyname('DeptName').asstring:=edt_SaleDeptName.Text;
     fieldbyname('SaleEmployeeCode').asstring:=edt_SaleEmployeeCode.Text;
     fieldbyname('EmployeeName').asstring:=edt_SaleEmployeeName.Text;
     fieldbyname('Billdate').asstring:=medt_Sdate.Text;
     fieldbyname('TotalAmount').asfloat:=strtofloat(edt_Amount.Text);
     fieldbyname('reMainTotalAmount').asfloat:=strtofloat(edt_reMainAmount.text);
     fieldbyname('thiSCancelAmount').asfloat:=strtofloat(edt_CancelAmount.text);
     post;
   end;
end;

procedure TFrm_Ar_Enter_GatheringInvoice_D.btn_okClick(Sender: TObject);
begin
  if strtofloat(Trim(edt_CancelAmount.text))>strtofloat(Trim(edt_reMainAmount.text)) then
    begin
      DispInfo('本次核销金额不能大于余额!',3);
      edt_CancelAmount.SetFocus;
      abort;
    end;  
  inherited;
end;

procedure TFrm_Ar_Enter_GatheringInvoice_D.Edt_InvoicenoExit(
  Sender: TObject);
var sqltext:string;
begin
  inherited;
  sqltext:='select *,DeptName,EmployeeName from sa_SaleInvoice '
          +' left join Dept on sa_SaleInvoice.SaleDeptCode=Dept.DeptCode'
          +' left join Employee on sa_SaleInvoice.SaleEmployeeCode=Employee.EmployeeCode '
          +' where Invoiceno='+quotedstr(edt_Invoiceno.text);
  Executesql(AdoQry_tmp,sqltext,0);
  edt_SaleDeptCode.Text:=AdoQry_tmp.fieldbyname('SaleDeptCode').asstring;
  edt_SaleDeptName.Text:=AdoQry_tmp.fieldbyname('DeptName').asstring;
  edt_SaleEmployeeCode.Text:=AdoQry_tmp.fieldbyname('SaleEmployeeCode').asstring;
  edt_SaleEmployeeName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
  medt_Sdate.Text:=AdoQry_tmp.fieldbyname('createdate').asstring;
  edt_Amount.Text:=AdoQry_tmp.fieldbyname('TotaltaxAmount').asstring;
  edt_reMainAmount.text:=floattostr(AdoQry_tmp.fieldbyname('TotaltaxAmount').asfloat-AdoQry_tmp.fieldbyname('CancelAmount').asfloat)
end;

procedure TFrm_Ar_Enter_GatheringInvoice_D.Edt_InvoicenoKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key=120 then
      CommonHint(Sender,AdoQry_tmp,'createdate','单据日期','Invoiceno','发票号',
            'sa_SaleInvoice',' CancelAmount<TotaltaxAmount');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -