ehlib的dbgrideh可以在每个columns底部作统计,包括avg,sum等等。但是这个只能针对静态的统计字段。我对查询的数据表和字段采取了动态选择的方式,但不知道如何对每个动态出现的columns的统计值。望各位大虾多多指教,小弟在此谢谢了。

解决方案 »

  1.   

    DBGridEh1.Columns[0].Footer.ValueType := fvtSum;
      

  2.   

    我的sql语句查询的不限于一张数据表,同时查询字段也不一定。但是只用一个EBGridEh控件。楼上兄弟说的方法,试过了,不行。不知道要对EBGridEh控件的属性要作什么设置。
      

  3.   

    用以下的语句,试试。
     sum:= DBSumList1.SumCollection.Items[0].SumValue
      

  4.   

    对于多表统计其实和单表统计是一样的,不管怎么样你统计也是对某一字段做统计,多表也只不过是对条件选择的一个要求, 比如:
         select sum(tab1.price) as zprice from tab1 inner join on tab2 where(select ...) tab1.**=tab2.**
          道理是一样的,不知道你能否明白....
      

  5.   

    可能我表达的多表查询不是很明确,我的多表查询是指sql语句中的查询表不定,不如:
    select field1,field2...,fieldn from table1 where ...
    但条件变化后,相应的sql语句也变化,包括数据表和查询字段,如:
    select field[0],field[1],...,field[n] from table2(或则是from tablen) where ...
    这样做,是为了简化程序中DBGridEh和Query控件的使用,我用一个DBGridEh控件与DataModule中的
    DataSource相连,DataSource与Query相连,而Query与DataBase连接:
    DBGridEh1.DataSource:=DataModule1.DataSource1;
    DataSource1.DataSet:=Query1;
    Query1.DatabaseName:=newdb1(SQL Server数据库名);
    Sql语句在程序执行时动态生成,包括数据表,字段,查询条件。
    这样只用了一个Query、一个DataSource、一个DBGridEh控件。
    也方便以后修改。