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

📄 gl_enter_credence_d.pas

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

Interface  

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

Type
  TFrm_Gl_Enter_Credence_D = Class(TFrm_Base_Entry_Detail)
    Label1: TLabel;
    edt_DocketName: TLinkEdit;
    edt_kmCode: TLinkEdit;
    Label2: TLabel;
    edt_kmName: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    edt_Debit: TEdit;
    edt_Credit: TEdit;
    Label5: TLabel;
    edt_rate: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    edt_fdebit: TEdit;
    edt_fcredit: TEdit;
    Label8: TLabel;
    edt_Amount: TEdit;
    Label9: TLabel;
    edt_Price: TEdit;
    edt_DeptCode: TLinkEdit;
    Label10: TLabel;
    edt_DeptName: TEdit;
    edt_PersonCode: TLinkEdit;
    Label11: TLabel;
    edt_PersonName: TEdit;
    edt_CustomerCode: TLinkEdit;
    Label12: TLabel;
    edt_CustomerName: TEdit;
    edt_VendorCode: TLinkEdit;
    Label13: TLabel;
    edt_VendorName: TEdit;
    edt_ProjectCode: TLinkEdit;
    Label14: TLabel;
    edt_ProjectName: TEdit;
    edt_BalanceTypeCode: TLinkEdit;
    Label15: TLabel;
    edt_BalanceTypeName: TEdit;
    Label16: TLabel;
    edt_Billno: TEdit;
    Label17: TLabel;
    Edt_CashWay: TEdit;
    cmb_CashWay: TLinkEdit;
    procedure btn_okClick(Sender: TObject);
    procedure ExtEdt_ItemCodeButtonClick(Sender: TObject);
    procedure edt_DocketNameKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_DocketNameButtonClick(Sender: TObject);
    procedure edt_kmCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_kmCodeButtonClick(Sender: TObject);
    procedure edt_kmCodeExit(Sender: TObject);
    procedure edt_DeptCodeExit(Sender: TObject);
    procedure edt_PersonCodeExit(Sender: TObject);
    procedure edt_CustomerCodeExit(Sender: TObject);
    procedure edt_VendorCodeExit(Sender: TObject);
    procedure edt_BalanceTypeCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_BalanceTypeCodeButtonClick(Sender: TObject);
    procedure edt_BalanceTypeCodeExit(Sender: TObject);
    procedure edt_DocketNameExit(Sender: TObject);
    procedure cmb_CashWayButtonClick(Sender: TObject);
    procedure cmb_CashWayExit(Sender: TObject);
    procedure cmb_CashWayKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
    procedure edt_ProjectCodeExit(Sender: TObject);
    procedure edt_fdebitExit(Sender: TObject);
    procedure edt_fcreditExit(Sender: TObject);
  private
    LineNo:Integer;//行号
    IsDeptCalculate, IsPersonCalculate, IScustomerCalculate,
        IsVenderCalculate, IsProjectCalculate: integer;
    function ChkKm(Sender: TObject;CalculateName: integer; InfoStr: string=''):boolean;
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveBodyData; Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String);Override;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_Credence_D: TFrm_Gl_Enter_Credence_D;
  iSfcurrency:integer;
implementation

uses Sys_Global, Gl_Enter_Credence;

{$R *.DFM}

{ TFrm_Sal_Enter_SaleOrder_D }

procedure TFrm_Gl_Enter_Credence_D.InitControls;
begin
  Application.ProcessMessages;
  If (status='Add') Then
    SetFocus_Control:=edt_DocketName
  Else
    SetFocus_Control:=edt_DocketName;
  Inherited;
  with AdoQry_Body do
  begin
    edt_DocketName.Text:=fieldbyname('docketName').AsString;
    If (Status='Add') then
    begin
      LineNo:=RecordCount+1;
      edt_kmCode.Text:='';
      edt_kmName.Text:='';
      edt_Debit.Text:='0';
      edt_Credit.Text:='0';
      edt_fdebit.Text:='0';
      edt_fcredit.Text:='0';
      edt_rate.Text:='0';
      edt_Billno.Text:='0';
      edt_Amount.Text:='0';
      edt_Price.Text:='0';
      cmb_CashWay.text:='';
      edt_CashWay.text:='';
    end
    else
    begin
      Edt_DocketName.Text:= fieldbyname('docketName').AsString;
      Edt_kmCode.Text:=fieldbyname('kmCode').AsString;
      Executesql(AdoQry_tmp,'select * from Gl_AccountSubject where kmCode='+quotedstr(Trim(edt_kmCode.text)),0);
      edt_kmName.Text:=AdoQry_tmp.fieldbyname('kmName').asstring;
      edt_kmCode.OnExit(edt_kmCode);
      Edt_Debit.Text:=fieldbyname('debitAmount').AsString;
      Edt_Credit.Text:=fieldbyname('creditAmount').AsString;
      Edt_fdebit.Text:=fieldbyname('fdebitAmount').AsString;
      Edt_fcredit.Text:=fieldbyname('fcreditAmount').AsString;
      Edt_rate.Text:=FloatToStr(fieldbyname('fCurrencyRate').AsFloat);
      Edt_Price.Text:=fieldbyname('Price').AsString;
      Edt_Amount.Text:=fieldbyname('Amount').AsString;
      Edt_DeptCode.Text:=fieldbyname('depArtCode').AsString;
      Executesql(AdoQry_tmp,'select * from Dept where DeptCode='+quotedstr(Trim(edt_DeptCode.text)),0);
      edt_DeptName.Text:=AdoQry_tmp.fieldbyname('DeptName').asstring;
      Edt_PersonCode.Text:=fieldbyname('personEmployeeCode').AsString;
      Executesql(AdoQry_tmp,'select * from Employee where EmployeeCode='+quotedstr(Trim(edt_PersonCode.text)),0);
      edt_PersonName.Text:=AdoQry_tmp.fieldbyname('EmployeeName').asstring;
      Edt_CustomerCode.Text:=fieldbyname('customerCode').AsString;
      Executesql(AdoQry_tmp,'select * from customer where customerCode='+quotedstr(Trim(edt_CustomerCode.text)),0);
      edt_CustomerName.Text:=AdoQry_tmp.fieldbyname('customerName').asstring;
      Edt_VendorCode.Text:=fieldbyname('VendorCode').AsString;
      Executesql(AdoQry_tmp,'select * from Vendor where VendorCode='+quotedstr(Trim(edt_VendorCode.text)),0);
      edt_VendorName.Text:=AdoQry_tmp.fieldbyname('VendorName').asstring;
      Edt_BalanceTypeCode.Text:=fieldbyname('BalanceTypeCode').AsString;
      Executesql(AdoQry_tmp,'select * from BalanceType where BalanceTypeCode='+quotedstr(Trim(edt_BalanceTypeCode.text)),0);
      edt_BalanceTypeName.Text:=AdoQry_tmp.fieldbyname('BalanceTypeName').asstring;
      cmb_CashWay.text:=fieldbyname('CashWay').asstring;
    end;
  end;   
end;

procedure TFrm_Gl_Enter_Credence_D.SaveBodyData;
begin
  If Status='Add' Then
    AdoQry_Body.Append
  Else
    AdoQry_Body.Edit;
  with AdoQry_Body do
  begin
    if status='Add' then 
    fieldbyname('Gl_CredenceLineNo').Asinteger:=lineno;
    fieldbyname('docketName').AsString:=Trim(edt_DocketName.Text);
    fieldbyname('kmCode').AsString:=Trim(edt_kmCode.text);
    fieldbyname('kmName').Asstring:=Trim(edt_kmName.text);
    fieldbyname('debitAmount').Asstring:=Trim(edt_Debit.text);
    fieldbyname('creditAmount').Asstring:=Trim(edt_Credit.text);
    fieldbyname('fdebitAmount').Asstring:=Trim(edt_fdebit.text);
    fieldbyname('fcreditAmount').Asstring:=Trim(edt_fcredit.text);
    fieldbyname('fCurrencyRate').AsString:=Trim(Edt_rate.Text);
    fieldbyname('Price').AsString:=Trim(Edt_Price.Text);
    fieldbyname('Amount').AsString:=Trim(Edt_Amount.Text);
    fieldbyname('Billno').AsString:=Trim(Edt_Billno.Text);
    fieldbyname('depArtCode').AsString:=Trim(Edt_DeptCode.Text);
    fieldbyname('personEmployeeCode').AsString:=Trim(Edt_PersonCode.Text);
    fieldbyname('customerCode').AsString:=Trim(Edt_CustomerCode.Text);
    fieldbyname('VendorCode').AsString:=Trim(Edt_VendorCode.Text);
    fieldbyname('projectCode').AsString:=Trim(Edt_ProjectCode.Text);
    fieldbyname('BalanceTypeCode').AsString:=Trim(Edt_BalanceTypeCode.Text);
    fieldbyname('CashWay').asstring:=cmb_CashWay.text;
    Post;
  end;
end;


procedure TFrm_Gl_Enter_Credence_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;
  if Currentstatus='Add' then
    EnableControls:=' edt_DocketName,edt_kmCode,edt_fdebit,edt_fcredit,edt_Billno,'
                   +' edt_Amount,edt_Price,cmb_CashWay,edt_DeptCode,edt_PersonCode,edt_CustomerCode,edt_VendorCode,edt_ProjectCode,edt_BalanceTypeCode,' ;
  if(CurrentStatus<>'Add')then
    EnableControls:=' edt_DocketName,edt_kmCode,edt_fdebit,edt_fcredit,edt_Billno,'
                   +' edt_Amount,edt_Price,edt_DeptCode,cmb_CashWay,edt_PersonCode,edt_CustomerCode,edt_VendorCode,edt_ProjectCode,edt_BalanceTypeCode,' ;
end;

procedure TFrm_Gl_Enter_Credence_D.btn_okClick(Sender: TObject);
begin
  if (Trim(edt_fdebit.text)<>'0') and (Trim(edt_fcredit.text)<>'0')  then
      begin
        DispInfo('不能同时输入原币借方金额和原币贷方金额!',3);
        edt_fdebit.SetFocus;
        abort;
      end;
  if (StrtoFloat(Edt_Price.Text)<0)  then
  begin
    DispInfo('核算单价不能小于0!',3);
    if Edt_Price.CanFocus then
      Edt_Price.SetFocus;
    abort;
  end;
  if Trim(Edt_Rate.Text)='0'  then
  begin
    DispInfo('汇率不能等于0!',3);
    if Edt_Rate.CanFocus then
      Edt_Rate.SetFocus;
    abort;
  end;
  edt_Debit.Text:=FormatFloat('####0.##',(strtofloat(Trim(edt_fdebit.text))*strtofloat(Trim(edt_rate.text))));
  edt_Credit.Text:=FormatFloat('####0.##',(strtofloat(Trim(edt_fcredit.text))*strtofloat(Trim(edt_rate.text))));
  Edt_FDebit.Text := FormatFloat('###0.##',StrToFloat(Edt_FDebit.TExt));
  Edt_FCredit.Text := FormatFloat('###0.##',StrToFloat(Edt_FCredit.TExt));
  if ChkKm(edt_DeptCode,IsDeptCalculate, '部门标识') or ChkKm(edt_PersonCode,IsPersonCalculate,'个人标识')
      or  ChkKm(edt_CustomerCode,IScustomerCalculate,'客户标识') or ChkKm(edt_VendorCode,IsVenderCalculate,'供应商标识')
      or  ChkKm(Sender,IsProjectCalculate,'项目标识') then
    exit;

  inherited;
end;

procedure TFrm_Gl_Enter_Credence_D.ExtEdt_ItemCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
             '物料代码',' Item ');
end;

procedure TFrm_Gl_Enter_Credence_D.edt_DocketNameKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key=120 then 
  CommOnHint(Sender,AdoQry_Tmp,'docketCode','摘要代码','docketName',
             '摘要名称',' Gl_Docket ');
end;

procedure TFrm_Gl_Enter_Credence_D.edt_DocketNameButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'docketCode','摘要代码','docketName',
             '摘要名称',' Gl_Docket ');
end;

procedure TFrm_Gl_Enter_Credence_D.edt_kmCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;

⌨️ 快捷键说明

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