关于DBGRID的问题(100分)

  • 主题发起人 主题发起人 hxy2000
  • 开始时间 开始时间
H

hxy2000

Unregistered / Unconfirmed
GUEST, unregistred user!
请教怎么在DBGRID中实现在DBGRID中的最后一行统计某一列的总和?
 
用ehilb就可以呀
 
Query中写Sql语句。
用Union加上最后统计的一行

select name, money from mytable
union
select '', sum(money) from mytable
再在Dbgrid中显示Query中的结果就行了
 
单独写一个语句 sum
,然后在下面加个标签label
 
同意GanQuan的观点,DBGrid是数据敏感的,只要相连的数据原能做到,它就能实现
 
用quantumgrid比ehlib强,它的dxDBGrid是最强大的dbgrid类控件.
202.117.210.31有下的.
delphi.mychangshu.com,www.playicq.com也有.
 
你安装一个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;
 
用union是最简单,最好的了
 
多人接受答案了。
 
后退
顶部