我在编程序的时候碰到这么一个问题,我用dbgrid来显示一个数据库,其中数据库有一个合计项,要求用户在改变某一列数值的时候,这列数值自动累加到合计项中去。我从数据库中提取数据来进行加法运算,但是随着我改变数据库的当前记录位置,dbgrid也跟着改变当前位置。这样等到我算完合计项后,dbgrid本来聚焦的那个网格的位置就改变了。我想计算合计项,而dbgrid的聚焦的那个网格位置不作改变,不知应该怎么办。我想着直接从dbgrid中提取数据(提取一个小格中的数据),不知怎么实现?dbgrid中没有对应每个网格的属性和方法,我用TCustomGrid中的属性和方法,但是老提示没定义。dbgrid不就是从TCustomGrid继承过来的吗?怎么没法用。望各位高手指点一二,不胜感激。急用。
对行合计用计算字段,
对列合计找个第三方控件如ehlib
你可以这样做。
一:
var CurrID:integer;
CurrID:=qrQuery.RecNo;//记下计算前的记录号
//统计列
//打开表
qrQuery.RecNo:=CurrID;
另一种方法:
假设表中有一字段为"name"
var name:string;
name:=qrQuery.FieldByName('name').asstring;
//统计列
//打开表
qrQuery.Locate('name',name,[]);