📄 gl_enter_firstsubjectbalance_d1.pas
字号:
unit Gl_Enter_FirstSubjectBalance_D1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls;
Type
TFrm_Gl_Enter_FirstSubjectBalance_D1 = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
edt_kmName: TEdit;
edt_kmCode: TEdit;
Label3: TLabel;
edt_fdebit: TEdit;
edt_fcredit: TEdit;
Label4: TLabel;
edt_fFirstBalance: TEdit;
Label5: TLabel;
edt_AmountBalance: TEdit;
Label6: TLabel;
Label7: TLabel;
edt_Debit: TEdit;
edt_Credit: TEdit;
Label8: TLabel;
edt_FirstBalance: TEdit;
Label9: TLabel;
cmb_Balancedir: TComboBox;
Label10: TLabel;
Label11: TLabel;
Edt_ExchRate: TEdit;
procedure btn_okClick(Sender: TObject);
private
FirstBalance:double;
fFirstBalance:double;
{ Private declarations }
public
stArtYear,stArtMonth:integer;
procedure InitControls; Override;
procedure SaveData;Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
{ Public declarations }
end;
var
Frm_Gl_Enter_FirstSubjectBalance_D1: TFrm_Gl_Enter_FirstSubjectBalance_D1;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Gl_Enter_FirstSubjectBalance_D1.InitControls;
var SqlText : String;
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_fdebit.Text:=floattostr(fieldbyname('FirstfdebitBalance').asfloat);
edt_fcredit.Text:=floattostr(fieldbyname('FirstfcreditBalance').asfloat);
edt_fFirstBalance.Text:=floattostr(fieldbyname('fFirstBalance').asfloat);
edt_Debit.Text:=floattostr(fieldbyname('FirstdebitBalance').asfloat);
edt_Credit.Text:=floattostr(fieldbyname('FirstcreditBalance').asfloat);
edt_FirstBalance.Text:=floattostr (fieldbyname('FirstBalance').asfloat);
Edt_ExchRate.Text := FloatToStr(fieldbyname('FCurrencyRate').AsFloat);
edt_AmountBalance.Text:=floattostr(fieldbyname('FirstAmountBalance').asfloat);
end;
Executesql(AdoQry_tmp,'select * from Gl_AccountParam',0) ;
stArtYear:=AdoQry_tmp.fieldbyname('AccountuseYear').asinteger;
stArtMonth:=AdoQry_tmp.fieldbyname('AccountuseMonth').asinteger;
ExecuteSql(AdoQry_Tmp,'select * from Currency where IsMaster=1 and CurrencyCode='+QuotedStr(AdoQry_Maintain.fieldbyname('Fcurrecy').AsString),0);
If AdoQry_tmp.RecordCount>0 then
begin
Edt_ExchRate.Text := '1';
Edt_ExchRate.Enabled := False;
end
else
begin
If AdoQry_Maintain.fieldbyname('Fcurrecy').AsString='' then
begin
Edt_ExchRate.Text := '1';
Edt_ExchRate.Enabled := False;
end
else
begin
// Executesql(AdoQry_tmp,'select dateName(yy,getdate())+''.''+dateName(mm,getdate()) as nMonth',0);
sqltext:='select ExchRate from ExchRate '
+' where Convert(int,SubString(ExchMonth,1,4))='+IntToStr(StArtYear)
+' and Convert(int,SubString(ExchMonth,6,2))='+IntToStr(StArtMonth)
+' and currencyCode='+quotedstr(AdoQry_Maintain.fieldbyname('Fcurrecy').asstring);
ExecuteSQl(AdoQry_tmp,SQlText,0);
If Trim(Edt_ExchRate.Text) = '0' then
If AdoQry_tmp.RecordCount>0 then
Edt_ExchRate.Text := FloatToStr(AdoQry_Tmp.fieldbyname('ExchRate').AsFloat);
Edt_ExchRate.Enabled := True;
end;
end;
cmb_Balancedir.ItemIndex:=AdoQry_Maintain.fieldbyname('Balancedirection').asinteger-1;
edt_fdebit.Enabled:=iifValue(stArtMonth>1,True,False);
edt_fcredit.Enabled:=iifValue(stArtMonth>1,True,False);
end;
procedure TFrm_Gl_Enter_FirstSubjectBalance_D1.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, '
+' fdebitBalance,fcreditBalance, '
+' FirstBalance,FirstfBalance,FCurrencyRate, '
+' Balancedirection,endBalance,endFBalance,endBalanceDirection,'+iifstring(stArtMonth>13,'AmountBalance','FirstAmountBalance')+')'
+' Values('+inttostr(AdoQry_Maintain.fieldbyname('kmid').asinteger)+','
+ Trim(edt_Debit.text)+','
+ Trim(edt_Credit.text)+','
+ Trim(edt_fdebit.text)+','
+ Trim(edt_fcredit.text)+','
+ Trim(edt_FirstBalance.text)+','
+ Trim(edt_fFirstBalance.text)+','
+ Trim(Edt_ExchRate.Text)+','
+ inttostr(cmb_Balancedir.Itemindex+1)+','
+ Trim(edt_FirstBalance.text)+','
+ Trim(edt_fFirstBalance.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)+','
+' fdebitBalance='+Trim(edt_fdebit.text)+','
+' fcreditBalance='+Trim(edt_fcredit.text)+','
+' FirstBalance='+Trim(edt_FirstBalance.text)+','
+' endBalance='+Trim(Edt_FirstBalance.Text)+','
+' FCurrencyRate='+Trim(Edt_ExchRate.Text)+','
+' FirstfBalance='+Trim(edt_fFirstBalance.text)+','
+' endFBalance='+Trim(Edt_FFirstBalance.Text)+','
+' Balancedirection='+inttostr(cmb_Balancedir.Itemindex+1)+','
+' endBalanceDirection='+IntToStr(Cmb_BalanceDir.ItemIndex+1)+','
+iifstring(stArtMonth>13,' AmountBalance= ',' 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) ;
end;
sqltext:='update #FirstBalance '
+' set FirstdebitBalance='+Trim(edt_Debit.text) +','
+' FirstcreditBalance='+Trim(edt_Credit.text)+','
+' FirstBalance='+Trim(edt_FirstBalance.text)+','
+' endBalance='+Trim(Edt_FirstBalance.Text)+','
+' FirstfdebitBalance='+Trim(edt_fdebit.text)+','
+' FirstfcreditBalance='+Trim(edt_fcredit.text)+','
+' FCurrencyRate='+Trim(Edt_ExchRate.Text)+','
+' fFirstBalance='+Trim(edt_fFirstBalance.text)+','
+' endFBalance='+Trim(Edt_FFirstBalance.Text)+','
+' Balancedirection='+inttostr(cmb_Balancedir.Itemindex+1)+','
+' endBalanceDirection = '+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('FirstfdebitBalance').asfloat:=strtofloat(Trim(edt_fdebit.text));
AdoQry_Maintain.fieldbyname('FirstfcreditBalance').asfloat:=strtofloat(Trim(edt_fcredit.text));
AdoQry_Maintain.fieldbyname('FirstAmountBalance').asfloat:=strtofloat(Trim(edt_AmountBalance.text));
AdoQry_Maintain.fieldbyname('FirstBalance').asfloat:=strtofloat(Trim(edt_FirstBalance.text));
AdoQry_Maintain.fieldbyname('fFirstBalance').asfloat:=strtofloat(Trim(edt_fFirstBalance.text));
AdoQry_Maintain.fieldbyname('endBalance').asfloat:=strtofloat(Trim(edt_FirstBalance.text));
AdoQry_Maintain.fieldbyname('endFBalance').asfloat:=strtofloat(Trim(edt_fFirstBalance.text));
AdoQry_Maintain.fieldbyname('FCurrencyRate').asfloat:=strtofloat(Trim(edt_ExchRate.text));
AdoQry_Maintain.fieldbyname('Balancedirection').asinteger:=cmb_Balancedir.ItemIndex+1;
AdoQry_Maintain.fieldbyname('endBalancedirection').asinteger:=cmb_Balancedir.ItemIndex+1;
end;
procedure TFrm_Gl_Enter_FirstSubjectBalance_D1.SetStatus(CurrentStatus:String;var EnableControls:String);
begin
inherited;
end;
procedure TFrm_Gl_Enter_FirstSubjectBalance_D1.btn_okClick(Sender: TObject);
var Month:string;
sqltext:string;
begin
{ Executesql(AdoQry_tmp,'select dateName(yy,getdate())+''.''+dateName(mm,getdate()) as nMonth',0);
Month:=AdoQry_tmp.fieldbyname('nMonth') .asstring;
sqltext:='select ExchRate from ExchRate '
+' where ExchMonth='+quotedstr(Month)
+' and currencyCode='+quotedstr(AdoQry_Maintain.fieldbyname('Fcurrecy').asstring);
Executesql(AdoQry_tmp,sqltext,0) ;
if AdoQry_tmp.RecordCount=0 then
begin
DispInfo('无当月该外币的汇率资料!',3);
Edt_Fdebit.SetFocus;
ModalResult := MrNone;
abort;
end;
}
If Trim(Edt_ExchRate.TExt)='0' then
begin
DispInfo('汇率不能为0!',3);
if Edt_ExchRate.CanFocus then
Edt_ExchRate.SetFocus;
ModalResult := MrNone;
abort;
end;
edt_Debit.Text:=floattostr(strtofloat(Trim(edt_fdebit.text))*StrToFloat(Edt_ExchRate.Text));
edt_Credit.Text:=floattostr(strtofloat(Trim(edt_fcredit.text))*StrToFloat(Edt_ExchRate.Text));
edt_FirstBalance.Text:= floattostr(strtofloat(Trim(edt_fFirstBalance.text))*StrToFloat(Edt_ExchRate.Text));
{ case AdoQry_Maintain.fieldbyname('kmproperty').asinteger of
1 :
begin
FirstBalance:=strtofloat(Trim(edt_Debit.text))-strtofloat(Trim(edt_Credit.text));
fFirstBalance:=strtofloat(Trim(edt_fdebit.text))-strtofloat(Trim(edt_fcredit.text));
end;
0 :
begin
FirstBalance:=strtofloat(Trim(edt_Credit.text))-strtofloat(Trim(edt_Debit.text));
fFirstBalance:=strtofloat(Trim(edt_fcredit.text))-strtofloat(Trim(edt_fdebit.text));
end;
end;
edt_FirstBalance.Text:=floattostr(FirstBalance) ; }
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -