RT
解决方案 »
- Delphi怎么实现编辑多条.新手提问
- 一个关于BitBtn的问题?
- 如何在SQL存储蓄过程里执行一条组合的SQL语句(也就是执行一个字符串)。
- 如何把一个string转化为一个ihtmldocument2
- 求,word文件打印成彩色图片的方法
- 为什么几天没来发的帖子就不见了呢?
- 说说ADO几个主要组件的作用?
- 大家请再来帮帮忙
- 请问设置ControlStyle属性为何无效?
- 看来是要被炒了.老是出错.........方兄和狂兄帮忙吧!否则死翘翘了.......才有这点分.
- 请问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!别忘了加分啊!