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

📄 gl_enter_firstsubjectbalance_d.pas

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

Interface

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

Type
  TFrm_Gl_Enter_FirstSubjectBalance_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    edt_kmName: TEdit;
    edt_kmCode: TEdit;
    Label3: TLabel;
    edt_Debit: TEdit;
    edt_Credit: TEdit;
    Label4: TLabel;
    edt_FirstBalance: TEdit;
    Label5: TLabel;
    edt_AmountBalance: TEdit;
    Label6: TLabel;
    cmb_Balancedir: TComboBox;
    Label7: TLabel;
    procedure btn_okClick(Sender: TObject);
  private
    FirstBalance:double;
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveData;Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_FirstSubjectBalance_D: TFrm_Gl_Enter_FirstSubjectBalance_D;
  stArtYear,stArtMonth:integer;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Gl_Enter_FirstSubjectBalance_D.InitControls;
begin
  inherited;
  setfocus_Control:=edt_Debit;
  case AdoQry_Maintain.fieldbyname('Amountcalculate').asinteger of
   1 : edt_AmountBalance.Enabled:=True;
   0 : edt_AmountBalance.Enabled:=False;
  end;
  with AdoQry_Maintain do
    begin
      edt_kmCode.Text:=fieldbyname('kmCode').asstring;
      edt_kmName.Text:=Trim(fieldbyname('kmName').asstring);
      edt_Debit.Text:=floattostr(fieldbyname('FirstdebitBalance').asfloat);
      edt_Credit.Text:=floattostr(fieldbyname('FirstcreditBalance').asfloat);
      edt_FirstBalance.Text:=floattostr(fieldbyname('FirstBalance').asfloat);
      edt_AmountBalance.Text:=floattostr(fieldbyname('FirstAmountBalance').asfloat);
    end;
  cmb_Balancedir.ItemIndex:=AdoQry_Maintain.fieldbyname('Balancedirection').asinteger-1;
  Executesql(AdoQry_tmp,'select * from Gl_AccountParam',0) ;
  stArtYear:=AdoQry_tmp.fieldbyname('AccountuseYear').asinteger;
  stArtMonth:=AdoQry_tmp.fieldbyname('AccountuseMonth').asinteger;
  edt_Debit.Enabled:=iifValue(stArtMonth>1,True,False);
  edt_Credit.Enabled:=iifValue(stArtMonth>1,True,False);
end;

procedure TFrm_Gl_Enter_FirstSubjectBalance_D.SaveData;
var sqltext:string;
begin
  inherited;
  try
    dbconnect.beginTrans;
    Executesql(AdoQry_tmp,'select * from Gl_AccountSubjectBalance where kmid='+inttostr(AdoQry_Maintain.fieldbyname('kmid').asinteger),0);
    if AdoQry_tmp.RecordCount=0 then 
     begin
       sqltext:='insert into Gl_AccountSubjectBalance(kmid,debitBalance,creditBalance,FirstBalance,Balancedirection,'+iifstring(stArtMonth>=1,'FirstAmountBalance','AmountBalance)')
               +' Values('+inttostr(AdoQry_Maintain.fieldbyname('kmid').asinteger)+','
               +           Trim(edt_Debit.text)+','
               +           Trim(edt_Credit.text)+','
               +           Trim(edt_FirstBalance.text)+','
               +           inttostr(cmb_Balancedir.Itemindex+1)+','
               +           iifstring(AdoQry_Maintain.fieldbyname('Amountcalculate').asinteger=1,Trim(edt_AmountBalance.text),'0')            
               +')';
       Executesql(AdoQry_tmp,sqltext,1);
     end
    else 
     begin
       sqltext:='update Gl_AccountSubjectBalance'
               +' set  debitBalance='+Trim(edt_Debit.text) +','
               +'      creditBalance='+Trim(edt_Credit.text)+','
               +'      FirstBalance='+Trim(edt_FirstBalance.text)+','
               +'      Balancedirection='+inttostr(cmb_Balancedir.Itemindex+1)+','
               +iifstring(stArtMonth>=1,'FirstAmountBalance=','      AmountBalance=')+iifstring(AdoQry_Maintain.fieldbyname('Amountcalculate').asinteger=1,Trim(edt_AmountBalance.text),'0')
               +' where kmid='+inttostr(AdoQry_Maintain.fieldbyname('kmid').asinteger);
       Executesql(AdoQry_tmp,sqltext,1)      ;
     end;
    sqltext:='update #FirstBalance '
           +' set  FirstdebitBalance='+Trim(edt_Debit.text) +','
           +'      FirstcreditBalance='+Trim(edt_Credit.text)+','
           +'      FirstBalance='+Trim(edt_FirstBalance.text)+','
           +'      Balancedirection='+inttostr(cmb_Balancedir.Itemindex+1)+','
           +'      FirstAmountBalance='+iifstring(AdoQry_Maintain.fieldbyname('Amountcalculate').asinteger=1,Trim(edt_AmountBalance.text),'0')
           +' where kmid='+inttostr(AdoQry_Maintain.fieldbyname('kmid').asinteger);
    Executesql(AdoQry_tmp,sqltext,1)         ;
    dbconnect.CommitTrans;
  except
    if dbconnect.InTransaction then dbconnect.RollBackTrans;
    abort;
  end;
  AdoQry_Maintain.fieldbyname('FirstdebitBalance').asfloat:=strtofloat(Trim(edt_Debit.text));
  AdoQry_Maintain.fieldbyname('FirstcreditBalance').asfloat:=strtofloat(Trim(edt_Credit.text));
  AdoQry_Maintain.fieldbyname('FirstAmountBalance').asfloat:=strtofloat(Trim(edt_AmountBalance.text));
  AdoQry_Maintain.fieldbyname('FirstBalance').asfloat:=strtofloat(Trim(edt_FirstBalance.text));
  AdoQry_Maintain.fieldbyname('Balancedirection').asinteger:=cmb_Balancedir.Itemindex+1;
end;

procedure TFrm_Gl_Enter_FirstSubjectBalance_D.SetStatus(CurrentStatus:String;var EnableControls:String);
begin
 inherited;
 
end;

procedure TFrm_Gl_Enter_FirstSubjectBalance_D.btn_okClick(Sender: TObject);
begin
 {case AdoQry_Maintain.fieldbyname('kmproperty').asinteger of 
   1 : FirstBalance:=strtofloat(Trim(edt_Debit.text))-strtofloat(Trim(edt_Credit.text));
   0 : FirstBalance:=strtofloat(Trim(edt_Credit.text))-strtofloat(Trim(edt_Debit.text));
 end; 
 edt_FirstBalance.Text:=floattostr(FirstBalance)  ; }
  inherited;

end;

end.

⌨️ 快捷键说明

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