RT
解决方案 »
- 怎么判断是不是UTF8编码?
- idUDP做点对点,穿透NAT问题
- 数据库只能新增,无法更新与删除!
- 如何就是把一个二进制文件中的每一个字节 异或 11
- 想把一个Memo里的文本存入文件!
- 找工作(DELPHI程序员)
- 一个运行的程序,无缘无故退出,没有任何异常或警告提示,这是什么样的状况呀?
- 用fastreport进行打印时,我用 frReport1.ShowReport;怎么显示不出报表来。
- 急!一个ADOQUERY控件的问题.
- DBGrid控件中的小按钮问题!
- 请问mediaplayer怎样想winamp那样调节音频??(回答好了再加分)
- 高分求教如何使用InstallShield制作安装程序!!!
在detail的beforeprint 中:
pagetotal:=pagetotal+字段的值
total:=tatal+字段的值
固定每一页要打多少行,在换页的时候将字段的值pagetotal,total值去出来,然后将pagetotal清零
比如在PAGEFOOTER的BEFOREPRINT事件中判断、累加:页合计、累计
不过你的要求只要在页脚放一个QRExpr,将其RESETAFTERPRINT设为TRUE,就可以分页汇总.
在将HASSUMMARY设为TRUE,也放一个QRExpr,在最后页可以求出合计
type
TCounter = class
FCountByPage: Integer; // 每页的记录数
FValueByPage: Extended; // 每页的统计值 (例如合计金额)
FCountByPrint: Integer; // 所有打印的记录数
FValueByPrint: Extended; // 所有打印的数值
public
procedure Init(level: Integer); // 初始化统计变量
procedure AddValue(value: Integer; Level: Integer); overload; // 增加统计记录数
procedure AddValue(value: Extended; Level: Integer): overload; // 增加统计金额
procedure NewPage; // 对页统计变量进行相应的初始化
end; 在DetailBand的AfterPrint事件中增加 TCounter.AddValue 调用
在PageFooter的AfterPrint事件中或者PageHeader的BeforePrint事件中增加 TCounter.NewPage 调用 注意:如果使用了预览后打印,要在预览完成后对 TCounter 进行初始化,否则打印时,统计的数值会累加两次.如果统计比较简单,可以采用QRExpr控件,不过数据集是TStoredProc 时,好像不是太好用。
总计可在HasSummary加入QRExpr,但切记QRExpr2.ResetAfterPrint:= False;
Ok!别忘了加分啊!