📄 gl_enter_firstsubjectbalance_d3.pas
字号:
unit Gl_Enter_FirstSubjectBalance_D3;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, Db, AdODB, ExtCtrls, StdCtrls;
Type
TFrm_Gl_Enter_FirstSubjectBalance_D3 = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
edt_kmName: TEdit;
edt_kmCode: TEdit;
edt_fFirstBalance: TEdit;
Label5: TLabel;
edt_AmountBalance: TEdit;
Label6: TLabel;
Label3: TLabel;
edt_FirstBalance: TEdit;
procedure btn_okClick(Sender: TObject);
private
FirstBalance:double;
{ Private declarations }
public
sMonth:integer;
procedure InitControls; Override;
procedure SaveData;Override;
procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
{ Public declarations }
end;
var
Frm_Gl_Enter_FirstSubjectBalance_D3: TFrm_Gl_Enter_FirstSubjectBalance_D3;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Gl_Enter_FirstSubjectBalance_D3.InitControls;
begin
inherited;
setfocus_Control:=edt_FirstBalance;
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:=fieldbyname('kmName').asstring;
edt_fFirstBalance.Text:=floattostr(fieldbyname('fFirstBalance').asfloat);
edt_FirstBalance.Text:=floattostr(fieldbyname('FirstBalance').asfloat);
edt_AmountBalance.Text:=floattostr(fieldbyname('FirstAmountBalance').asfloat);
end;
end;
procedure TFrm_Gl_Enter_FirstSubjectBalance_D3.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,FirstYearBalance,FirstYearfBalance,FirstAmountBalance)'
+' Values('+inttostr(AdoQry_Maintain.fieldbyname('kmid').asinteger)+','
+ Trim(edt_FirstBalance.text)+','
+ Trim(edt_fFirstBalance.text)+','
+ 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 FirstYearBalance='+Trim(edt_FirstBalance.text) +','
+' FirstYearfBalance='+Trim(edt_fFirstBalance.text)+','
+' 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 FirstBalance='+Trim(edt_FirstBalance.text)+','
+' 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(edt_FirstBalance.text);
AdoQry_Maintain.fieldbyname('fFirstBalance').asfloat:=strtofloat(edt_fFirstBalance.text);
end;
procedure TFrm_Gl_Enter_FirstSubjectBalance_D3.SetStatus(CurrentStatus:String;var EnableControls:String);
begin
inherited;
end;
procedure TFrm_Gl_Enter_FirstSubjectBalance_D3.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 Foreignrate as ExchRate from Gl_ForeignCurrencyRate '
+' where Accountperiod='+quotedstr(Month)
+' and currencyCode='+quotedstr(AdoQry_Maintain.fieldbyname('Fcurrecy').asstring);
Executesql(AdoQry_tmp,sqltext,0) ;
edt_FirstBalance.Text:=floattostr(strtofloat(Trim(edt_fFirstBalance.text))*AdoQry_tmp.fieldbyname('ExchRate').asfloat);
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -