若使用QuickRep可在onNeedData,onStartPage和onBeforePrint加入相关程式
解决方案 »
- delphi 技术越牛,寿命越短,工资不一定越高--谢谢
- Delphi关联表
- 高手指点:cxgrid焦点怎样才能移到从表上.研究了很长时间,最后没办法模拟键盘向下做的.
- 如何在Dll中得到此Dll所在的路径(如同Exe中得到此Exe的路径为ExtractFilePath(Application.ExeName))
- 如何启动和关闭windows2000?
- 一个关于文件读取的问题?
- 为什么我在 DELPHI5.0 中不能正确显示出 ORACLE 中的中文字符?
- 用过indy的兄弟进来看看
- delphi运行条件提问
- 动态可修改字段
- 简单任务之菜鸟版:怎样截取字符串???
- 关于DBEdit输入实数的问题
gril?!...%$%$^$^%&
具体解决办法:
在DetailBand.BeforPrint事件中写如下代码:
if (I mod 10 = 0) then //I 为DetailBand所连DATASET的记录值
DetailBand.Height:=DetailBand.Height*2;
在AfterPrint事件中写如下代码:
DetailBand.Height:=DetailBand.Height div 2;
也可在DetailBand后加一ChildBand,并在ChildBand.BeforePring中写如下代码:
if (I mod 10 = 0) then //I 为DetailBand所连DATASET的当前记录值
Printable:=true;
如你还有不清楚可查QuickReport的帮助,Knolwedge Base中的frequently asked question.
另外第一页的纸张大小还不一样。
关于加空行解决方法建立临时表与在QuickRep的事件中写代码都可以,但临时表数据大时显得很慢,我用的是Access数据库。 在此还感谢各位的热心帮助!
to Delfly:
请问用临时表如何解决我说的分页问题?注意:纸张大小、格式不一样。
*“ gril?!...%$%$^$^%& “ *
girl 不可以吗?强烈反对性别歧视!
我想若不用临时表,你可在做两个报表,各增加一个做计数标记(如iFlag),在Detail_Band的Afterprint事件中自增,在Beforeprint事件中根据iFlag的值判断是否打印.对于表一,iFlag<=10时打印;对于表二,iFlag>10时打印。至于单号、公司名称等可在表一的Title_Band上打印,纸张等等都可各自设置了。最后在打印钮上连续调用两个报表的Print方法。
若用临时表就干脆生成两个临时表,一个保存前10条纪录,另一个保存其余的纪录,这个可以在循环插到临时表时实现。最后和上面一样,也用两个报表实现。
有点笨,但很实用。
再一次向你道歉。
to Delfly:
你也不用太内疚,说笑而已,我这人一大好处,不爱记仇,放心!而且也不太在乎别人的看法。
还要多谢你不惜笔墨的帮助。
Tanks!