我在fastrepot中想对分组出来的记录进行统计,如下:
name   count
生铁   10   (生铁1+生铁2)
 生铁1   2
 生铁2   8
钢      5
 钢1    3
 钢2    2
我采用了在group header中放上sum(adoquery.count),可是结果为0

解决方案 »

  1.   

    统计不能放在group footer里
      

  2.   

    groupheader band 的footerband 屬性設置沒。
      

  3.   

    在打印按钮的界面中统计,先对table进行查询,在用while not table1。eof do统计,将统计结果用label显示出来,在打印按钮中将它的值传递过去就可以
    form2.qrlabel1.caption:=(form1.)label1.caption;
    括号中的不用写
      

  4.   

    关注,我也立刻要用到!顺便再提一个问题!在fastreport设计报表中修改的数据能否保存到数据库中?望高手指点!
      

  5.   

    把group footer的位置放到masterdata栏的上面看可不可以
    我的问题比你的好像复杂一点
    分组报表统计功能怎样做,我出600分求助
    名称  数量 
    11a   3    
    11a   4
    11a   5
    12a   4
    12a   6
    12a   8
    12a   10
    分组统计报表应该如下:
    名称             数量 
    11a              3    
    11a              4
    11a              5
    平均值           4
    绝对标准偏差:   0.707
    (绝对标准偏差=sqrt(Sum((各条记录-平均值)*(各条记录-平均值)))/记录条数-1)
    (上面的就是绝对标准偏差=((Sqrt((3-4)*(3-4)+(4-4)*(4-4)+(5-4)*(5-4))/2))
    12a   4
    12a   6
    12a   8
    12a   10
    同上
    请高手帮忙解决,我用fastreport和rmreport两种报表都试过了,
    我在Memoview中这样写
    sngavgs :=0;
    sngavgs :=Avg(["数量"],MasterData1);  //求平均值,正确   
    sngv    :=0;
    sngv :=Sum((["数量"]-sngavgs),MasterData1);//各条记录与平均值的差值的和,得到结果不正确,得到的结果是:当前组的数量和与前一组的数量和的差(如果用上面的数据则11a的绝对标准偏差是12,12a的绝对标准偏差是16),感到很奇怪
     Memo42.Lines.Add(FormatFloat('0.000',sngv));
    报表自带的函数中没有Sqrt函数,我该怎样做?
    请求高手帮助,谢谢各位了!!!!!!!!
      

  6.   

    用 ROLLUP 汇总数据
    在生成包含小计和合计的报表时,ROLLUP 运算符很有用。ROLLUP 运算符生成的结果集类似于 CUBE 运算符所生成的结果集。有关更多信息,请参见用 CUBE 汇总数据。 CUBE 和 ROLLUP 之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
    ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。 
    例如,简单表 Inventory 中包含:Item                 Color                Quantity                   
    -------------------- -------------------- -------------------------- 
    Table                Blue                 124                        
    Table                Red                  223                        
    Chair                Blue                 101                        
    Chair                Red                  210                        下列查询将生成小计报表:SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
                ELSE ISNULL(Item, 'UNKNOWN')
           END AS Item,
           CASE WHEN (GROUPING(Color) = 1) THEN 'ALL'
                ELSE ISNULL(Color, 'UNKNOWN')
           END AS Color,
           SUM(Quantity) AS QtySum
    FROM Inventory
    GROUP BY Item, Color WITH ROLLUPItem                 Color                QtySum                     
    -------------------- -------------------- -------------------------- 
    Chair                Blue                 101.00                     
    Chair                Red                  210.00                     
    Chair                ALL                  311.00                     
    Table                Blue                 124.00                     
    Table                Red                  223.00                     
    Table                ALL                  347.00                     
    ALL                  ALL                  658.00                     (7 row(s) affected)如果查询中的 ROLLUP 关键字更改为 CUBE,那么 CUBE 结果集与上述结果相同,只是在结果集的末尾还会返回下列两行:ALL                  Blue                 225.00                     
    ALL                  Red                  433.00                     CUBE 操作为 Item 和 Color 中值的可能组合生成行。例如,CUBE 不仅报告与 Item 值 Chair 相组合的 Color 值的所有可能组合(Red、Blue 和 Red + Blue),而且报告与 Color 值 Red 相组合的 Item 值的所有可能组合(Chair、Table 和 Chair + Table)。对于 GROUP BY 子句中右边的列中的每个值,ROLLUP 操作并不报告左边一列(或左边各列)中值的所有可能组合。例如,ROLLUP 并不对每个 Color 值报告 Item 值的所有可能组合。ROLLUP 操作的结果集具有类似于 COMPUTE BY 所返回结果集的功能;然而,ROLLUP 具有下列优点: ROLLUP 返回单个结果集;COMPUTE BY 返回多个结果集,而多个结果集会增加应用程序代码的复杂性。
    ROLLUP 可以在服务器游标中使用;COMPUTE BY 不可以。
    有时,查询优化器为 ROLLUP 生成的执行计划比为 COMPUTE BY 生成的更为高效。 
      

  7.   

    在group header中放上sum(adoquery.count),这样没有效果啊
      

  8.   

    放在footers上面,注意,你还可以把fastreport编译成中文,2.5中就是自带中文支持。
    count同样