很简单,当你报表预览完毕后,你关闭了报表,可你这时候又要打印。此时报表不存在了,当然后发生错误。QuickRep1.Print;根本就不用写,预览的时候就可以打印的。

解决方案 »

  1.   

    QuickRep1.Preview的界面里不是已经有个打印按钮,为什么要在加一句QuickRep1.Print,
    在Preview 的同时打印。print有可能在Preview 的同时不能创建后台打印线程。
      
      

  2.   

    谢谢大家,是Delphi5,打印驱动有(其实和打印没关系的,早被硬件抽象了),不可能是打印机的问题,大家可否从 NT和98的区别入手?
      

  3.   

    我用的是
      Form2:=Tform2.create(application);
      Form2.QuickRep1.Preview;
    单独这条语句就会出错!
      

  4.   

    也就是说,当我的Form2你加上了QuickRep控件后,当:
       
         Form2:=Tform2.create(application);也会出错,删掉就马上好了!
         
        好像在我的NT下编译后,含有报表控件的窗体都无法创建了,不是Print和Preview的问题,
    因为只要不是动态创建QuickRep,当你的窗体建立时,报表也随之创建了。单独Print也可以的。
      

  5.   

    可能是窗体创建的有问题 你可以试一试这样
    application.createform(TForm2,From2);
    form2.showmodal;
    我有时调用上面你写的窗体创建语句时就有问题,改了我写的问题就不见了,什么原因我也不太清楚