我用ehlib3.0做一表格,在表格底部有一合计行,其实就是合计各列的数据,我现在有一个问题,能否用户控制是否进行合计计算,也就是在数据在grideh中显示之后,当用户单击一个按钮时计算合计数,而不是一开始装入数据就将合计数计算出来(注意:是计算而不是显示)。请问能否实现。

解决方案 »

  1.   

    formcreate時
    dbgrideh1.sumlist.active := false;
    按鈕點時;
    dbgrideh1.sumlist.active := true;
    另外;我想知道;
      

  2.   

    这样试试,在单击事件中写入:
    begin
      dgeStaInfo.FooterRowCount := 1;
      dgeStaInfo.SumList.Active := true;
      dgeStaInfo.FieldColumns[dgeStaInfo.Columns[0].FieldName].Footers.Add;
      dgeStaInfo.Columns[0].Footers[0].Value := '员工总数:';
      dgeStaInfo.Columns[0].Footers[0].ValueType := fvtStaticText;
      dgeStaInfo.FieldColumns[dgeStaInfo.Columns[1].FieldName].Footers.Add;
      dgeStaInfo.Columns[1].Footers[0].FieldName := dgeStaInfo.Columns[1].FieldName;
      dgeStaInfo.Columns[1].Footers[0].ValueType := fvtSum;
    end;
      

  3.   

    将ADOquery1的cachesize=20
    将ADOquery1的executeoptions属性设为[eoAsyncFetchNonBlocking]时,执行dbgrideh1.sumlist.active := true;所求出来的数据不对,比实际数据要少几十倍,如一个表有1200条记录,他只统计了40条记录,并且每次统计结果不一样.这是怎么回事呢?
      

  4.   

    对不起,没有说清楚:
    将ADOquery1的cachesize=20
    将ADOquery1的executeoptions属性设为[eoAsyncFetchNonBlocking]时,执行dbgrideh1.sumlist.active := true;所求出来的数据不对,比实际数据要少几十倍,如一个表有1200条记录,他只统计了40条记录,并且每次统计结果不一样.这是怎么回事呢?而表格中 数据是全的,其右侧的拖动条的大小也像40条记录时的差不多,当单击表格时,其拖动条则变小,与1200条记录时相似.
      

  5.   

    8:30就得对啊
    只要设置dbgrideh1.sumlist.active 的值就可以了呀
      

  6.   

    谢谢各位
    关键是在这种情况下,其值就不对了,情况如下:
    将ADOquery1的cachesize=20
    将ADOquery1的executeoptions属性设为[eoAsyncFetchNonBlocking]时。