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

📄 ap_enter_nopayinvoice_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Ap_Enter_NoPayInvoice_D;

Interface

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

Type
  TFrm_Ap_Enter_NoPayInvoice_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edt_ApInvoiceNo: TEdit;
    MEdt_ApInvoiceDate: TMaskEdit;
    LEdt_VendorCode: TLinkEdit;
    Edt_VendorName: TEdit;
    Label5: TLabel;
    LEdt_CurrencyCode: TLinkEdit;
    Edt_CurrencyName: TEdit;
    Label6: TLabel;
    Edt_ApInvoiceAmount: TEdit;
    Label7: TLabel;
    Edt_ApInvoiceTax: TEdit;
    Label8: TLabel;
    Edt_ApPayedAmount: TEdit;
    Label9: TLabel;
    Edt_EmployeeCode: TEdit;
    Label10: TLabel;
    Edt_ApInvoiceInputDate: TEdit;
    Edt_EmployeeName: TEdit;
    Label12: TLabel;
    Edt_ApInvoiceRemArk: TEdit;
    Label4: TLabel;
    Edt_ExchRate: TEdit;
    procedure LEdt_VendorCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure LEdt_VendorCodeButtonClick(Sender: TObject);
    procedure LEdt_VendorCodeExit(Sender: TObject);
    procedure LEdt_VendorCodeChange(Sender: TObject);
    procedure LEdt_CurrencyCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure LEdt_CurrencyCodeButtonClick(Sender: TObject);
    procedure LEdt_CurrencyCodeExit(Sender: TObject);
    procedure LEdt_CurrencyCodeChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn_okClick(Sender: TObject);
    procedure Edt_ApInvoiceAmountExit(Sender: TObject);
    procedure Edt_ApInvoiceRemArkEnter(Sender: TObject);
    procedure MEdt_ApInvoiceDateExit(Sender: TObject);
  private
    { Private declarations }
    VendorTaxRate_Percent:integer;                     //缺省税率
    ServerDate:string;                                  //
    Function IsMasterCurrency(Currency:string):boolean;//是否本位币 1:为 本位币 0:为非本位币;
  public
    { Public declarations }
  protected
    procedure InitControls; Override;
    procedure SaveData; Override;
  end;

var
  Frm_Ap_Enter_NoPayInvoice_D: TFrm_Ap_Enter_NoPayInvoice_D;

implementation

uses Sys_Global, Ap_Enter_NoPayInvoice;

{$R *.DFM}

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if(Key=120)then
    CommonHint(Sender,AdoQry_Tmp,'VendorName','供应商名称','VendorCode',
      '供应商代码','Vendor','VendorUsable=1');
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeButtonClick(
  Sender: TObject);
begin
  inherited;
   CommonHint(Sender,AdoQry_Tmp,'VendorName','供应商名称','VendorCode',
      '供应商代码','Vendor','VendorUsable=1');
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeExit(
  Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    abort;
  if  Trim(LEdt_VendorCode.text)='' then
  begin
    DispInfo('供应商代码不能为空!',3);
    LEdt_VendorCode.setfocus;
    abort;
  end;
  VendorTaxRate_Percent:=0;
  with AdoQry_Tmp do
  begin
    Close;
    sql.clear;
    sql.text:=' select Vendor.VendorName, Vendor.VendorTaxRate_Percent'
             +' ,Vendor.CurrencyCode,Currency.CurrencyName'
             +' from Vendor left join Currency on Currency.CurrencyCode=Vendor.CurrencyCode'
             +' where VendorCode='''+Trim(LEdt_VendorCode.text)+''''
             +' and  VendorUsable=1';
    open;
    if recordCount<>0 then
    begin
      Edt_VendorName.text:=fieldbyname('VendorName').asstring;
      VendorTaxRate_Percent:=fieldbyname('VendorTaxRate_Percent').asinteger;
      LEdt_CurrencyCode.text:=fieldbyname('CurrencyCode').asstring;
      Edt_CurrencyName.text:=fieldbyname('CurrencyName').asstring;
    end
    else
    begin
      DispInfo('此供应商代码不存在或没有生效!',3);
      LEdt_VendorCode.setfocus;
      abort;
    end;
    Close;
  end;
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_VendorCodeChange(
  Sender: TObject);
begin
  inherited;
  if Trim(LEdt_VendorCode.text)='' then
    Edt_VendorName.text:='';
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if(Key=120)then
    CommonHint(Sender,AdoQry_Tmp,'CurrencyName','币种名称','CurrencyCode','币种代码','Currency');

end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommonHint(Sender,AdoQry_Tmp,'CurrencyName','币种名称','CurrencyCode','币种代码','Currency');
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeExit(
  Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    abort;
  if Trim(LEdt_CurrencyCode.text)='' then
  begin
    DispInfo('货币代码不为空请输入!',3);
    LEdt_CurrencyCode.setfocus;
    abort;
  end;
  with AdoQry_tmp do
  begin
    Close;
    sql.clear;
    sql.Add('select CurrencyName from Currency where CurrencyCode='''+Trim(LEdt_CurrencyCode.text)+'''');
    open;
    if recordCount<>0 then
      Edt_CurrencyName.text:=fieldbyname('CurrencyName').asstring
    else
    begin
      DispInfo('货币代码不存在请重新输入!',3);
      LEdt_CurrencyCode.setfocus;
      abort;
    end;
    Close;
  end;
  Edt_ExchRate.text:='';
  if IsMasterCurrency(Trim(LEdt_CurrencyCode.text)) then
  begin
    Edt_ExchRate.text:='1';
    Edt_ExchRate.Enabled :=False;
    Edt_ApInvoiceAmount.setfocus;
  end
  else
  begin
    with AdoQry_Tmp do
    begin
      Close;
      sql.clear;
      sql.text:=' select ExchRate.ExchRate as ExchRate'
               +' from  ExchRate '
               +' where ExchRate.CurrencyCode='''+Trim(LEdt_CurrencyCode.text)+''''
               +' and ExchRate.ExchMonth='''+copy(MEdt_ApInvoiceDate.text,1,7)+'''';
      open;
      if recordCount<>0 then
      begin
        Edt_ExchRate.text:=fieldbyname('ExchRate').asstring;
        Edt_ExchRate.Enabled :=False;
        Edt_ApInvoiceAmount.setfocus;
      end
      else
      begin
        Edt_ExchRate.Enabled:=True;
        Edt_ExchRate.setfocus;
      end;
      Close;
    end;
  end;
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.LEdt_CurrencyCodeChange(
  Sender: TObject);
begin
  inherited;
  if Trim(LEdt_CurrencyCode.text)='' then
    Edt_CurrencyName.text:='';
end;

procedure TFrm_Ap_Enter_NoPayInvoice_D.InitControls;
begin
  inherited;

  Executesql(AdoQry_Tmp,'select CONVERT(chAr(10),getdate(),102 ) as date1',0);
  ServerDate:=AdoQry_Tmp.fieldbyname('date1').asstring;
  if status='Add' then
  begin
    Edt_ApInvoiceNo.setfocus;
    Edt_ApInvoiceNo.Text:='';
    MEdt_ApInvoiceDate.Text:=ServerDate ;
    LEdt_VendorCode.Text:='';
    LEdt_CurrencyCode.Text:='';
    Edt_ExchRate.text:='';
    Edt_ApInvoiceAmount.Text:='0';
    Edt_ApInvoiceTax.Text:='0';
    Edt_ApPayedAmount.text:='0';
    Edt_ApInvoiceRemArk.text:='系统初始化';
    Edt_EmployeeCode.Text:=UserCode;
    Edt_ApInvoiceInputDate.text:= ServerDate ;
    if  Edt_ApPayedAmount.ReadOnly then
     Edt_ApPayedAmount.ReadOnly:=False;
    with AdoQry_tmp do
    begin
      Close;
      sql.clear;
      sql.text:='select EmployeeName from Employee where EmployeeCode='''+UserCode+'''';
      open;
      Edt_EmployeeName.text:=fieldbyname('EmployeeName').asstring;
      Close;
    end;
  end
  else
  begin
    with AdoQry_Maintain do
    begin
      //MEdt_ApInvoiceDate.setfocus;
      Edt_ApInvoiceNo.setfocus;
      Edt_ApInvoiceNo.Text:=fieldbyname('ApInvoiceNo').asstring;

⌨️ 快捷键说明

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