Delphi 的DBGridEH 中,几个列栏位值相加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 的DBGridEH 中,几个列栏位值相加相关的知识,希望对你有一定的参考价值。

如图所示: 我希望 列 总金额里面 自动显示: 1月+2月+3月+4月......的值 怎么做??

要么sql语句里 加一个left join
要么DBGridEH 的OnDrawDataCell 判断一下
如果该列是12月 就累加前11月 总金额显示在总金额里追问

ONDRAWDATACELL,怎么判断,,求代码

追答

OnDrawDataCell已经失效 换用OnDrawColumnCell吧

假如 你的 1月 2月 。。。。。
对应的字段是 Y1 Y2 。。。。
也就是说 sql语句是 select Z ,Y1,Y2,Y2....... ,Y12 from table ...
Z是总金额字段
用 adoquery打开
执行
K1:=0; //类全局变量
adoquery.close;
adoquery.sql.text:=sql;
adoquery.open;

假如你希望 当12月的OnDrawColumnCell发生时 统计数据
那样的话 你可以在 OnDrawColumnCell里写
if K1< adoquery.RecNo then
begin
K1:= adoquery.RecNo;
if Column.Field.FieldName='Y12' then
begin
adoquery.edit;
adoquery.fieldByname('Z').value:= adoquery.fieldByname('Y1').asFloat+adoquery.fieldByname('Y2').asFloat...........adoquery.fieldByname('Y12').asFloat;
adoquery.post;
end;
end;

以上只是笨办法 K1的存在只是为了确保每行只统计一次 否则程序要死循环

参考技术A 用sql server写好

以上是关于Delphi 的DBGridEH 中,几个列栏位值相加的主要内容,如果未能解决你的问题,请参考以下文章

delphi DBGridEh 问题

delphi DBGridEH控件的checkbox如何判断是不是选中,求指导 !

delphi dbgrideh导入excel 中

delphi 把EXCEL数据导入到DBGRIDEH

你好,请教个问题,就是delphi中DBGridEh的统计行数据如何实现的

delphi 在DbGridEh中显示TreeView 效果