用table产生报表数据源吧。
如果用query产生报表数据源
就会出现内存泄露,这是qreport
的bus

解决方案 »

  1.   

    谁说的
    我做过一个旅馆的系统
    都是用ADOQUERY
    一天要打印一百多张
    怎么就没出问题你的预览窗体是不是自己写的?
    没必要吧
      

  2.   

    噢,居然用delphi的报表控件做报表,偷懒啊?哈哈哈~~打印出来的效果难看死了!
    我是用api打印的,自己做程序不好看点么?
      

  3.   

    to yy1234j(响良牙) 大概你是大虾,说的话我看不太懂
    请问你的API打印是什么意思????
    能实现QR的功能????
    QR做出来可不是蒙人的,虽然BUG很多
      

  4.   

    怎么都不解决问题?
    在QuickReport 3.0 内我已解决
    但在3.5 Profession内我无法解决
      

  5.   

    把quickreport升级一下试试,
    我用quickreport做的报表,绑定一个数据源,两千多张也没什么问题啊。注意一下windows虚拟内存,开大一点。用API直接打印的问题很多,换了打印机之后,格式很有可能就变掉了,不建议使用
      

  6.   

    d5中的QReport是有点不好用,D6中我没有发现有什么大问题,你是不是自定义预览Form了啊?如果是的话会比较麻烦!
      

  7.   


    Prepare的作用是把報表讀到QRPrinter對象中,而不直接輸出到設備上(包括表印机、顯示熒幕等)。對輸入到QRPrinter對象中報表的操作,只需要對QRPrinter進行對應的操作即可。範例如下:
    begin
       MyReport.Prepare;
       try
          MyReport.QRPrinter.SaveToFile('MyReport.qrp');
       finally
          MyReport.QRPrinter.Free;
       end;
       MyReport.QRPrinter := nil;
    end;
    QRPrinter對象可以輸出到包括文件在内的設備上(包括表印机和列印預覽),記得要釋放QRPrinter對象。
    你處理時速度非常慢的原因正是用Prepare存儲了報表對象,但是沒有使用。而是又直接把報表顯示了一次,相當於開啓了一個報表,加上QRPrinter對象沒有釋放,導致上述結果是顯而易見的。QuickReport Component因爲使用數據集組件而發生異常是很普遍的現象,所以我們一般在處理此類問題時都是使用了QRPrinter的。