//初始化表的設置
procedure TSumAccountFormShow(Sender: TObject);
begin
//設置表格表頭顯示與寬度
stringgridCells[]:=是否平衡;
stringgridCells[]:=期初借方;
stringgridCells[]:=期初貸方;
stringgridCells[]:=本期發生借方;
stringgridCells[]:=本期發生貸方;
stringgridCells[]:=期末借方;
stringgridCells[]:=期末貸方;
stringgridCells[]:=合計;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridColWidths[]:=;
stringgridRowHeights[]:=;
stringgridRowHeights[]:=;
end;
//在初始化時統計工作的完成
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;
[] [] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/24971.html