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

📄 gl_qry_balance.pas

📁 一个MRPII系统源代码版本
💻 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 + -