估计是你那个i的初值有问题,可能一开始它就大于7了,你应该在打印前把它置成0。其实有更简便的办法不用变量的,用这一句就行了——
if QuickRep1.RecordNumber mod 7 = 0 then QuickRep1.NewPage;
if QuickRep1.RecordNumber mod 7 = 0 then QuickRep1.NewPage;
解决方案 »
- 气死人的妹妹~~终于运行通过,改为调试问题了Can not perform this operation on a closed dataset
- 能获取adoquery里的表格吗
- 请问哪有视频处理的资料下载?如 VideoCapture控件
- 100分求一个思路~~~~
- 求冻结键盘的代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 送分
- 兄弟们帮我找下这个错误在哪里啊,我自己找不到了啊,调试通不过,说in旁边有语法错误
- 在DELPHI中怎样调用AUTOCAD并打开指定文件????
- ado执行sql没有返回,也不报错
- 多层中数据更新的问题
- ****如何用QuickReport把Memo字段打印出来****
- Install Shield For Dephi
我发现我的报表能进行分页,但我有
本业小计和页脚同时存在,应该怎样设计?
而且我的页脚想跟在数据后面,不能离开太远
像下面: 产品销售报表 1/2页产品名称 销售额 产品名称 销售额
电视机 100 收音机 200
冰箱 400 洗衣机 600 本页合计 1,300 (如何显示?现在显示不了)
单位:AAA 填开人:Zilo (每页离开太远?)
产品销售报表 2/2 页产品名称 销售额 产品名称 销售额
自行车 150 录相机 1500
熨斗 450 VCD机 600
本页合计 2,700
总 计 4,000 (末页才有?)
单位:AAA 填开人:Zilo (离开太远?)怎样解决这问题?
你用的哪种方法?如果是你一开始的用法,还是得仔细看看那个i的值到底是如何变化的,你试的时候有没有试过第一次就进行预览而不是打印?(我怀疑你是先打印过一次之后i的值没有重置)先解决你上一个问题吧。可以用ChildBand来处理,不要用PageFooter或是SummaryBand。
给DetailBand加一个ChildBand,名为ChildBand1,作为本页合计;
给ChildBand1再加一个ChildBand2,作总计用;
再给ChildBand2加一个ChildBand3,作页脚。你看一下下面的代码应该就明白怎么做了,注意为了简便,我把ChildBand1的BeforePrint事件指向了ChildBand3的BeforePrint事件。也就是说你只要控制住每个Band打印的时机就可以了。procedure TForm1.ChildBand2BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
PrintBand := QuickRep1.RecordNumber = QuickRep1.RecordCount;//全部记录打印完毕
end;procedure TForm1.ChildBand3BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
PrintBand := (QuickRep1.RecordNumber mod 7 = 0)//这里还是假定每页打7条记录
or (QuickRep1.RecordNumber = QuickRep1.RecordCount);
end;procedure TForm1.ChildBand3AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
if BandPrinted and (QuickRep1.RecordNumber < QuickRep1.RecordCount) then QuickRep1.NewPage;
end;