★★☆ 有没有更快的方法? ☆★★(50分)

  • 主题发起人 主题发起人 ynkmsun
  • 开始时间 开始时间
Y

ynkmsun

Unregistered / Unconfirmed
GUEST, unregistred user!
用这种方法可以得到总页数
QuickRep1.Prepare;
QuickRep1.Printer.PageCount;
但是当记录数上几千时,速度非常慢!
每页可打印的记录数不定,因为用的是定义纸张,客户可以改纸张的高度
请问有没有更快的方法??
 
这么多页,最好使用生成临时文件的方法,否则,内存会被用尽的,特别是机器的性能不高的情况,会更加严重。而且,QuickReport有bug,经常会莫名其妙死机(大概是内存泄漏吧)。
 
我这个软件就是生成临时文件的:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2315604
十万页也没有问题,只要硬盘够大。
 
ChaseSun, 没那么多页,几千条记录,在100页以内,就很慢了
怎么样生成临时文件?速度快吗?
 
用FR即可。
 
可是我有很多报表都用QuickReport做好了,再改成FR工作量太大了
 
1、其实你可参照王寒松的报表控件来做,我也是参照他来做,虽然预鉴时刚开始时速度可能要慢,但还在承受范围之内,第二次再预览就不慢了。如果报表页数多了,它的优势就明显了,我本来想用内存映射文件来做,但觉得够用了,所以不直没有实现内存映射文件的方法。
2、我到现在为止,都没有使用过报表控件来做报表,只是利用TPrinter类来写报表,并且TQReport类有bug,动不动就死机,我单位有一个危房鉴定软件,一看就知道用了QReport来做的报表,如果第二次进行打印,就会发生死机的现象,因为这些控件bug的存在(也许是内存泄漏吧),我一直都不敢用,只好自己用TPrinter类来写了。不要怕难,写过后,就觉得自己真的有成就感。
 
我的“房地产开发估价管理系统”有13000多行代码,实际有5000行代码是打印(包括预览、页面设置代码)代码,你说,这要花多少功夫,王寒松的报表控件也不过是5000行代码(不过,他的控件里面还有其它的技巧,值得我们学习)。所以,好好学习王大侠的报表控件吧,收益不浅的。
 
只查询出一个最小可以唯一标识的字段做为代表,从而得出记录数,不必全部查出
 
建议FASTREPORT
 
后退
顶部