//在初始化时统计工作的完成 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; [] [] [] [] [] |