我用做了一个B4的QuickRep,现在想在A4的纸张上全部打印。如何才能让QuickRep产生的报表自动按纸张缩放。

解决方案 »

  1.   

    我也遇到了这样的问题,后来不得不把数据库表内容导入到word里面执行,如果你不怕麻烦,用printer对象自己写吧!
      

  2.   

    好困难啊!
    太麻烦了
    不如导入到word里在打印
      

  3.   

    我发现QuickRep是按设定的纸张进行绘制的(QuickRep1.PaintTo(getdc(0),0,0);可看到完整的报表)
    但在它的QRPrint是按打印机的纸张绘制的
    看来只能通过QuickRep绘制的图缩放并打印了
    但是我不确定普通的针式打印机支持图形打印吗?
    不管了,请问还有什么好的报表控件吗?
    来者都加分,我另外还有两个帖子,欢迎大家来取分。
    http://expert.csdn.net/Expert/topic/1815/1815387.xml?temp=.7840082
    http://expert.csdn.net/Expert/topic/1815/1815371.xml?temp=.3520624
      

  4.   

    英雄呀(嘶哑的狂喊)
    期待代码ing
      

  5.   

    呵呵,昨晚搞了qreport3.6.2,可以看到源代码哦
      

  6.   

    QuickRpt单元的第4119行
    Page.PaperSize := QRPrinter.PaperSize;
    屏蔽掉即可如你不是专家版,看不到代码。
    则手动调整打印机,设置默认纸张为较大纸张,并设置缩放以适应
    具体情况看你的打印机是否支持另外如何在程序中改变默认打印机的注册属性(即打印首选项)我还没成功。
    向各位高手请教
    我另设贴子在本论坛,分不是问题。同样请大家不吝赐教,欢迎UP取分。
      

  7.   

    这个问题解决还不够彻底。估计从QRPrinter下手较好,欢迎大家提建议。
      

  8.   

    官方版本:
    ftp://qr4:[email protected]/QR362ProfD5.EXE
    ftp://qr4:[email protected]/QR362ProfD6.EXE
    ftp://qr4:[email protected]/QR362ProfD7.EXE专业版,包括源代码
      

  9.   

    unit QRPrntr,做如下改动
    procedure TPrinterSettings.SetPaperSize(Value : TQRPaperSize);
    begin
    //  if PaperSizeSupported[Value] then 
        FPaperSize := Value
    //  else
    //    if (Value = Default) then
    //      FPaperSize := Default;
    end;
    //  if PaperSizeSupported[Value] then 
    好像是看你的打印机是否支持定义的纸张,具体定义我没看懂,请高手指点
    不过无所谓,屏蔽了它,要的就是不支持也能打印啊
    另外在打印之前设QRPrinter.ReportLoaded := true;如下:
    QRPreview.QRPrinter.ReportLoaded := true; 
    QRPreview.QRPrinter.Print;
    至此问题解决。