你安装一个InfoPower2k(或InfoPower3k)的套件,使用里面的wwDBGrid,然后设置options
里的dgshowfooter为True,在UpdateFooter的事件中写如下的语句:
procedure TForm_Zhcx.wwDBGrid1UpdateFooter(Sender: TObject);
begin
if b_str <> '' then
begin
if b_tabname <> '' then
with DataModule2_Ckkc.Query_Zhcxhj do
begin
Close;
Sql.Clear;
Sql.Add('select sum(gjsl) gjsl,sum(je) je from tc_wzmcb a,tc_ckkcmxz b');
Sql.Add(b_tabname);
Sql.Add('where a.wznb=b.wznb and ywxz=''1'' ');
Sql.Add(b_tj);
Sql.Add(' and ');
Sql.Add(b_str);
Prepare;
Open;
end
else
with DataModule2_Ckkc.Query_Zhcxhj do
begin
Close;
Sql.Clear;
Sql.Add('select sum(gjsl) gjsl,sum(je) je from tc_wzmcb a,tc_ckkcmxz b');
Sql.Add('where a.wznb=b.wznb and ywxz=''1'' and ');
Sql.Add(b_str);
Prepare;
Open;
end;
wwDBGrid1.ColumnByName('wzbh').FooterValue:='合 计';
wwDBGrid1.ColumnByName('gjsl').FooterValue:=FloatToStrF(DataModule2_Ckkc.Query_zhcxhj.FieldByName('gjsl').asfloat,ffFixed,10, 2);
wwDBGrid1.ColumnByName('je').FooterValue:=FloatToStrF(DataModule2_Ckkc.Query_zhcxhj.FieldByName('je').asfloat,ffFixed,10, 2);
end;
end;