FastReport在打印报表的时候,如果页数太多,想在打印的时候,每打印100页,打印机停止打印2分钟。
可是程序在win7下运行正常,是先将前100页发送到打印机上,打印机开始打印,然后再暂停2分钟,再接受100页的打印任务。
同样的程序,xp下开始发送的100页的打印任务,打印机不能立马打印,而是等到最后,所有打印任务都发送完毕才开始打印,请问这是怎么回事?哪里有问题。fastReport版本:4.9.20
在fastReport的OnPrintPage下写的暂停代码。

解决方案 »

  1.   

    在打印机设置中的高级中的后台打印,选择立即打印。
    如果还是不行,建议楼主在程序中控件打印页数。fastreport支持选页打印。
    self.frxReport1.PrintOptions.PageNumbers:='1-100';//连续打印self.frxReport1.PrintOptions.PageNumbers:='1,3,5';//选页打印
      

  2.   

    个人觉得net stop spooler ,再net start spooler 一般我是这样手工处理的,真要暂停好像不是fastreport的事情
      

  3.   

    我是先预览了,然后再在预览之后点fastreport上的打印。请问该在哪个事件里写这个暂停?暂停的时候还要弹出对话框来进行计时。
      

  4.   

    这个是在主程序中,不适合在预览中打印。
    self.frxReport1.LoadFromFile(ExtractFilePath(Paramstr (0))+'报表格式一.fr3');
    self.frxReport1.PrintOptions.ShowDialog:=false;
    self.frxReport1.Report.PrepareReport;//取最大页数用循环控制
    self.frxReport1.PrintOptions.PageNumbers:='1-100';//打印1-100页
    self.frxReport1.Report.Print;
    //等待2分钟
    self.frxReport1.PrintOptions.PageNumbers:='101-200';//打印101-200页
    self.frxReport1.Report.Print;当然还要考虑最大页数等。
    即使设置了打印页数,预览会是全部记录,打印时会弹出对话框,不好自动处理。凡事总得有个取舍,楼主自己考虑吧。