DBGridEh中的Footer的自动计算很方便。但是有些特殊的要求如何自定义计算?
如:fvtCount时,不统计重复的项目,计算Sum时,只计算特定列的值显示在Footer栏中。

解决方案 »

  1.   

    i 是某个字段 
    DBGridEh1.Columns[i].Footers[0].ValueType :=  fvtsatictext;
    DBGridEh1.Columns[i].Footers[0].Value := inttostr(计算公式);
      

  2.   

    举一个例子:如我Columns[0]中的数据为0的个数。或者统计Columns[1]中所有用户的个数(要去除重复的),根据Columns[3]中的条件计算Columns[4]的金额!
      

  3.   

    DBGridEh1.Columns[0].Footers[0].ValueType :=  fvtsatictext;
    DBGridEh1.Columns[0].Footers[0].Value := 0;
    ********************
      ADOQuery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add('select 用户 from 表 GROUP BY 用户' );
       ADOQuery1.Open;DBGridEh1.Columns[1].Footers[0].ValueType :=  fvtsatictext;
    DBGridEh1.Columns[1].Footers[0].Value := inttostr(ADOQuery1.RecordCount) ;************************
    第3个说得不清楚
      

  4.   

    楼上的还不符合我的要求,我要求自定义的计算与DBGridEh的计算是一个计算机制。
    当DBGridEh响应Filter时,会自动重新计算。我查看了DBGridEh的源代码,在DBSumlst中,是计算当前的数据集得来的。可能需要重写其实现方法。
    在SumListRecalcAll事件中似乎可以,但一时还没有成功。
      

  5.   

    有谁知道SumListRecalcAll怎么用吗,每次都出现错误
      

  6.   

    demo里有你想要的所有东西好好看看demo吧!
      

  7.   

    就是Demo中没有找到我要的东西!!