📄 gl_qry_balance.pas
字号:
unit Gl_Qry_Balance;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Qry, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
StdCtrls, ExtCtrls, ComCtrls, ToolWin;
Type
TFrm_Gl_Qry_Balance = Class(TFrm_Base_Qry)
AdoQry_MainkmCode: TStringField;
AdoQry_MainkmName: TStringField;
AdoQry_MaindebitFirstBalance: TFloatField;
AdoQry_MaincreditFirstBalance: TFloatField;
AdoQry_MaindebitAmount: TFloatField;
AdoQry_MaincreditAmount: TFloatField;
AdoQry_MainenddebitAmount: TFloatField;
AdoQry_MainendcreditAmount: TFloatField;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
procedure InitForm(AdOConnection:TAdOConnection;ShowExtendColumn:Boolean);Override;
{ Public declarations }
end;
var
Frm_Gl_Qry_Balance: TFrm_Gl_Qry_Balance;
implementation
uses Sys_Global,Gl_Qry_Balance_C;
{$R *.DFM}
procedure TFrm_Gl_Qry_Balance.InitForm(AdOConnection:TAdOConnection;ShowExtendColumn:Boolean);
var sqltext:string;
Month:string;
kmlevel:integer;
currencyCode:string;
index:integer;
cre:string;
begin
Application.ProcessMessages;
inherited;
Month:='';
kmlevel:=0;
index:=0;
currencyCode:='';
with TFrm_Gl_Qry_Balance_C.Create(self) do
begin
try
AdoQry_tmp.Connection:=dbconnect;
showmodal;
if modalResult=mrok then
begin
Month:=medts.Text;
kmlevel:=strtoint(Trim(edt_kmlevel.text));
currencyCode:=getCode(cmb_Currency.text);
index:=cmb_Currency.ItemIndex;
cre:=cmb_Currency.Text;
end;
finally
Frm_Gl_Qry_Balance_C.Free;
Frm_Gl_Qry_Balance_C:=nil;
end;
end;
if (Month='') then abort;
if index<=1 then
sqltext:='select kmCode, '
+' kmName, '
+' case when Balancedirection=1 then FirstBalance '
+' else 0 end as debitFirstBalance, '
+' case when Balancedirection=2 then FirstBalance '
+' else 0 end as creditFirstBalance, '
+' debitBalance as debitAmount, '
+' creditBalance as creditAmount, '
+' case when kmproperty=1 then FirstBalance+debitBalance-creditBalance '
+' else 0 '
+' end as enddebitAmount, '
+' case when kmproperty=2 then FirstBalance+creditBalance-creditBalance '
+' else 0 '
+' end as endcreditAmount '
+' into #BalanceQry '
+' from Gl_AccountSubject '
+' left join Gl_AccountSubjectBalance on Gl_AccountSubject.kmid=Gl_AccountSubjectBalance.kmid '
+' and Gl_AccountSubjectBalance.AccountperiodYear='+copy(Month,1,4)
+' and Gl_AccountSubjectBalance.AccountperiodMonth= '+copy(Month,6,2)
+' where Gl_AccountSubject.kmlevel<='+inttostr(kmlevel)
+iifstring(index=0,' ',' and Gl_AccountSubject.fcurrecycalculate=0')
else
sqltext:='select kmCode, '
+' kmName, '
+' case when Balancedirection=1 then FirstfBalance '
+' else 0 end as debitFirstBalance, '
+' case when Balancedirection=2 then FirstfBalance '
+' else 0 end as creditFirstBalance, '
+' fdebitBalance as debitAmount, '
+' fcreditBalance as creditAmount, '
+' case when kmproperty=1 then FirstfBalance+fdebitBalance-fcreditBalance '
+' else 0 '
+' end as enddebitAmount, '
+' case when kmproperty=2 then FirstfBalance+fcreditBalance-fcreditBalance '
+' else 0 '
+' end as endcreditAmount '
+' into #BalanceQry '
+' from Gl_AccountSubject '
+' left join Gl_AccountSubjectBalance on Gl_AccountSubject.kmid=Gl_AccountSubjectBalance.kmid '
+' and Gl_AccountSubjectBalance.AccountperiodYear='+copy(Month,1,4)
+' and Gl_AccountSubjectBalance.AccountperiodMonth= '+copy(Month,6,2)
+' where Gl_AccountSubject.kmlevel<='+inttostr(kmlevel)
+' and Gl_AccountSubject.fcurrecycalculate=1';
Executesql(AdoQry_tmp,sqltext,1);
selectfromsql:='select * from #BalanceQry';
Orderbyfields:=' kmCode';
Executesql(AdoQry_Main,'select * from #BalanceQry Order by kmCode',0);
lbl_Condition.Caption:='会计期间: '+Month+' / 科目级长: '+inttostr(kmlevel)+' / 货币: '+cre;
end;
procedure TFrm_Gl_Qry_Balance.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Gl_Qry_Balance:=nil;
end;
procedure TFrm_Gl_Qry_Balance.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
try
Executesql(AdoQry_tmp,'drop table #BalanceQry',1);
except
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -