熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

經典案例 財務管理系統(10)[3]

2013-11-23 17:46:17  來源: Delphi編程 

  //在初始化時統計工作的完成

  procedure TSumAccountforinitial;

  begin

  //根據不同的狀態設置SQL代碼以計算不同的平衡情況

  adoqueryClose;

  adoquerySQLClear;

  adoquerySQLAdd(select 科目代碼 科目名稱);

  adoquerySQLAdd((case when 余額方向=借方 then 期初余額 else end 累計借方));

  adoquerySQLAdd(as 期初借方);

  adoquerySQLAdd((case when 余額方向=貸方 then 期初余額 else end 累計貸方));

  adoquerySQLAdd( as 期初貸方);

  adoquerySQLAdd(累計借方 as 本期發生借方累計貸方 as 本期發生貸方);

  adoquerySQLAdd( case when 余額方向=借方 then 期初余額 else end as 期末借方);

  adoquerySQLAdd( case when 余額方向=貸方 then 期初余額 else end as 期末貸方);

  adoquerySQLAdd( from 帳簿初始化表 where 累計借方<> or 累計貸方<> or 期初余額<>);

  adoqueryOpen;

  //統計數據

  sumtable;

  end;

  //在正式使用時統計工作的完成

  procedure TSumAccountforuse;

  begin

  //根據不同的狀態設置SQL代碼以計算不同的平衡情況

  adoqueryClose;

  adoquerySQLClear;

  adoquerySQLAdd(select a科目代碼 b科目名稱);

  adoquerySQLAdd((case when a余額方向=借方 then 期初余額 else end ));

  adoquerySQLAdd( as 期初借方);

  adoquerySQLAdd((case when a余額方向=貸方 then 期初余額 else end));

  adoquerySQLAdd(as 期初貸方);

  adoquerySQLAdd(本期借方合計 as 本期發生借方 本期貸方合計 as 本期發生貸方);

  adoquerySQLAdd(case when a余額方向=借方 then 余額 else end as 期末借方);

  adoquerySQLAdd(case when a余額方向=貸方 then 余額 else end as 期末貸方);

  adoquerySQLAdd( from 本期匯總帳簿 as a 科目表 as b );

  adoquerySQLAdd( where a科目代碼 = b科目代碼 and (本期借方合計<> );

  adoquerySQLAdd( or 本期貸方合計<> or 期初余額<> or 余額<>));

  adoqueryOpen;

  //統計數據

  sumtable;

  end;

  //對數據進行統計

  procedure TSumAccountsumtable;

  var

  counti:integer;

  valvalvalvalvalval:double;

  begin

  //計算平衡表中的記錄數

  count:=datasourceDataSetRecordCount;

  //統計信息判斷是否試算平衡

  val:=;

  val:=;

  val:=;

  val:=;

  val:=;

  val:=;

  while not datasourceDataSetEof do

  begin

  val:=strtofloat(dbgridFields[]Text)+val;

  val:=strtofloat(dbgridFields[]Text)+val;

  val:=strtofloat(dbgridFields[]Text)+val;

  val:=strtofloat(dbgridFields[]Text)+val;

  val:=strtofloat(dbgridFields[]Text)+val;

  val:=strtofloat(dbgridFields[]Text)+val;

  datasourceDataSetNext;

  end;

[]  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25050.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.