怎么用delphi代码实现DBGrid双击加入字段,并且设置字段汇总的功能呀? 
我的代码如下:
    iFieldCount := DM.EditADOQuery.FieldCount;
    for i:= 1 to iFieldCount do
    begin
        DBGridEh1.Columns[i-1].FieldName := DM.EditADOQuery.Fields[i-1].Name;
        if i <> 1 then
          DBGridEh1.Columns[i-1].Footer.ValueType := fvtSum;
    End;
编译没有问题,运行时出错。不知道该怎么写才对。

解决方案 »

  1.   

    先设置dbgrideh的footerrowcount:=1
    procedure TForm1.DBGridEh1DblClick(Sender: TObject);
    var
      i,iFieldCount : Integer;
    begin
      iFieldCount := ADOQuery1.FieldCount;
      for i := 0 to iFieldCount-1 do
      begin
        DBGridEh1.Columns.Add;
        DBGridEh1.Columns[i].FieldName := ADOQuery1.Fields[i].FieldName;
        if i >0 then
          DBGridEh1.Columns[i].Footer.ValueType := fvtSum;
        DBGridEh1.SumList.Active := True;
      end;                    
    end;
      

  2.   

    自己搞定
        DBGridEh1.Columns.AddAllColumns(true);    //添加Columns
        for i:= 1 to DM.AccoutEnterADOSp.FieldCount-1 do
            DBGridEh1.Columns[i].Footer.ValueType := fvtSum;
      

  3.   

    DBGridEh1.Columns[i-1].FieldName := DM.EditADOQuery.Fields[i-1].Name;
    中应该是DM.EditADOQuery.Fields[i-1].FieldName;    begin
        DBGridEh1.SumList.Active := true;
        iFieldCount := qry.FieldCount;
        for i:= 1 to iFieldCount do
        begin
            if i <> 1 then
            begin
              DBGridEh1.Columns[i-1].Footer.ValueType := fvtSum;
              DBGridEh1.Columns[i-1].Footer.WordWrap := true;
            end;
        End;
    end;
      

  4.   

    有一个新问题我有一个汇总表,行数一定是3的倍数。就是第三行是1、2的和,第六行是4、5的和,。这样的话,footer汇总出来的数据就不准确了,怎么让footer只汇总3的倍数行的数据呢?
      

  5.   

    可能比较难,自己计算后,在给它赋值,用fvtStaticText
      

  6.   

    我用的EhLib是2.5版,有很多问题的!