是这样的,我用 Delphi7 + FR3.0 + Access 制作了一张主-从报表,有一个MasterData和一个DetailData,两个是相互关联的,而且报表的格式也是主表在上面,从表在下面。现在问题在于,需要在主表里面把从表的某个字段的平均值,计算并显示出来,这个Memo的表达式是[AVG(<frxDBDataset2."投标总价">,DetailData1,3)] 。但是我怎么都不成功,除非把这个Memo的位置移到从表下面去,才能有结果显示出来,不然放在主表里面,就无法显示计算结果。我还试过MemoAfterData,MemoAfterPrint,MemoBeforeData,MemoBeforePrint方法,都不能使这个Memo在主表就计算并显示出来,除非把这个Memo放在从表下面,等从表所有数据都显示完后就能计算并显示出来了。我估计是由于Fast Report的工作机制是由上至下的提取数据并计算、显示,而不是先整体计算后再显示出来。现在我该怎么办啊?如果FR不能解决问题,那能否在Access端在录入数据的时候就自动进行这种自动
并把结果写入数据表中呢?

解决方案 »

  1.   

    To:  glad369设置了“二次报表”果然可以打印出值,但是又有了新问题,就是当我使用如下语句procedure Memo60OnAfterData(Sender: TfrxComponent);
    begin
         Memo26.memo := Memo60.memo;
    end;把从表的平均值(Memo60)统计出来后传回到MasterData里面的Memo26显示出来。
    我的报表是很多页的那种,在运行2次运算的时候,preview出来,会发现所有的Memo26都错位了一次。就是说把下面一页的Memo60的值传到上页的Memo26去了,而不是本页Memo60与Memo26之间的传值.这个该如何是好啊?谢谢先