对于一个DBGridEh控件,取其中的值,并累加。
例如:
    字段1  字段2  字段3  ......
1   asd    3.2    8.1 
2   ebw    2.9      7
3   aa     1.7     11
.
.
.
n   epl     6      14当query查询后,在DBGridEh中显示,
对这个DBGridEh中的属性为float的字段进行累加
得到值。添加合计列在最后一行。合计      230.1   442.9问题1:我的DBGridEh中的字段是不固定的,所以怎样判断这个字段是float呢?
问题2:我怎样对float字段实现取值并累加呢?

解决方案 »

  1.   

    接分, 不够再接!
    建议用StringGrid做比较方便.
      

  2.   

    问题1:我的DBGridEh中的字段是不固定的,所以怎样判断这个字段是float呢?if Column.field is TFloatField then
    begin
    //可以统计了
    end;问题2:我怎样对float字段实现取值并累加呢?根本不需要,因为Dbgrideh控件可以自动完成!你只要设置DBGridEh的Column属性中的Footer属性就可以了!
      

  3.   

    yczyk(有鬼:兄弟会) :
        我知道有人要这样说,问题是当DBGridEh的字段是固定的时候,才能用
    “设置DBGridEh的Column属性中的Footer”这种方法。我是用select * from 表名
    而且表不固定,有10多了。所以你说那种方法用不上。
    我提问的意思是:能不能对DBGridEh中的数据取值并累加。还有那位兄弟知道呢?
      

  4.   

    我是yczyk(有鬼:兄弟会) ,这是我MM的ID啊!我再回答你的问题啊!
    其实方法有很多,关键是在灵活去用,而且要有效率。
    1、你可以对表中的字段遍历一下,然后对相应的字段的值进行累加!
       var
         Colcount:Integer;
         TotalValue:double;
       begin
         DataSet.First;
         while not dataset.eof do
         begin
           for colcount:=0 to DbGridEh1.columns.count do
           begin
             if DbGridEh1.columns[colcount].fieldname='求累计的字段名' then
                TotalValue:=TotalValue+DbGridEh1.columns[colcount].value
           end; 
           dataset.next;
         end;
       end;
    2、你可以在表打开的时候,判断哪一列是数值列啊,因为在打开的时候列是已知的啊!
       var
         ColCount:integer;
         Curr_Col:TColumnEh;
       begin
         for ColCount:=0 to DbGridEh1.Columns.Count-1 do
         begin 
           Curr_Col:=DbGridEh1.Columns[ColCount];
           if Curr_Col.Field is TFloatField then
           begin
             //动态设置列的汇总属性啊!
           end; 
         end;
       end
      

  5.   

    谢谢,我去看看。能告诉我你的QQ或则是e-mail吗?
    不懂的地方,还要请教您呢?
      

  6.   

    一个个判断:for i:=0 to DBGrid1.DataSource.DataSet.FieldCount-1 do
    begin
      if DBGridEh1.DataSource.DataSet.FieldDefs[i].DataType=ftFloat then
      // ftCurrency,ftInteger等等
      begin
        //增加footer
      end;
    end;剩下的你自己处理吧!
      

  7.   

    问题又来了。如果没固定字段,DBGridEh的footer属性是没有的。
    我怎么动态配置哦
      

  8.   

    你可以用SQL语句中的求和函数,同时对数据库数据进行遍历
      

  9.   

    其实我何必这样呢?
    我把没个表做个界面,固定DBGridEh就行了,我以前就是这样做的。sigh
    没办法,写不出code来,只好用笨办法了。
      

  10.   

    EHLib控件组我用了很久了,算是用的还活吧,有什么问题到QQ上说吧!
    QQ:184421270,请注明CSDN啊!