QRPreview1.QRPrinter := qrickrep1.qrprinter;

解决方案 »

  1.   

    可是为什么qrprinter=()呀?
    这是什么意思呀?
      

  2.   

    是不是我还要设置一下printer setting呀?
    那么怎么设置呀?
      

  3.   

    或者你先不要急着去做保存操作,你试一下你的代码能否实现在qrpreview里面的预览再说
      

  4.   

    你得不到什么结果?
    我这都可以呀。一点问题没有,可以得到BMP。
      

  5.   

    是吗?
    你的是d5?
    我得qq是5733173,过来聊聊呀
      

  6.   

    你应该自己做一个打印预览的预览的窗体,然后在其中加上存为BMP的功能;
    unit UnitMyPreview;interfaceuses
      Windows, Messages, SysUtils, Classes,
     Graphics, Controls, Forms, Dialogs,
      ComCtrls, ToolWin, qrprntr,Quickrpt,  //qrhtml
    StdCtrls, ExtCtrls,qrextra, Buttons, ImgList;type
      TFrmMyPreview = class(TForm)
        ToolBar1: TToolBar;
        ToolButton1: TToolButton;
        ToolButton2: TToolButton;
        ToolButton3: TToolButton;
        ToolButton4: TToolButton;
        ToolButton5: TToolButton;
        ToolButton6: TToolButton;
        ToolButton7: TToolButton;
        ToolButton8: TToolButton;
        ToolButton10: TToolButton;
        ToolButton11: TToolButton;
        ToolButton12: TToolButton;
        ToolButton13: TToolButton;
        ToolButton14: TToolButton;
        ToolButton15: TToolButton;
        ToolButton16: TToolButton;
        ToolButton17: TToolButton;
        Panel1: TPanel;
        ProgressBar1: TProgressBar;
        Panel2: TPanel;
        QRPreview1: TQRPreview;
        OpenDlg1: TOpenDialog;
        SaveDlg1: TSaveDialog;
        ImageList1: TImageList;
        SpeedButton1: TSpeedButton;
        procedure QRPreview1PageAvailable(Sender: TObject; PageNum: Integer);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure ToolButton2Click(Sender: TObject);
        procedure ToolButton3Click(Sender: TObject);
        procedure ToolButton4Click(Sender: TObject);
        procedure ToolButton6Click(Sender: TObject);
        procedure ToolButton17Click(Sender: TObject);
        procedure ToolButton7Click(Sender: TObject);
        procedure ToolButton8Click(Sender: TObject);
        procedure SpeedButton1Click(Sender: TObject);
        procedure ToolButton11Click(Sender: TObject);
        procedure ToolButton12Click(Sender: TObject);
        procedure ToolButton14Click(Sender: TObject);
        procedure ToolButton15Click(Sender: TObject);
        procedure QRPreview1ProgressUpdate(Sender: TObject; Progress: Integer);
        procedure SaveDlg1TypeChange(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        FPageCount : integer;  // 生 成 报 表 的 总 页 数  public
        { Public declarations }
        CurRep : TQuickRep;    // 所 预 览 的 报 表
    procedure UpdatePanelShow;
      end;var
      FrmMyPreview: TFrmMyPreview;implementation{$R *.DFM}procedure TFrmMyPreview.UpdatePanelShow;
    begin   // 更 新 显 示
         Panel2.Caption := 
    ' 第 '+inttostr(QRPreview1.PageNumber)+
       ' 页  总 '+inttostr(FPageCount)+' 页';
    end;procedure TFrmMyPreview.QRPreview1PageAvailable(Sender: TObject;
      PageNum: Integer);
    begin
    //get pagecount
         FPageCount := PageNum ;
         UpdatePanelShow;end;procedure TFrmMyPreview.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
        CurRep := nil;
        action:=cafree;
    end;procedure TFrmMyPreview.ToolButton2Click(Sender: TObject);
    begin  //ZoomToFit  缩 放 至 全 屏
         QRPreview1.ZoomToFit;
    end;procedure TFrmMyPreview.ToolButton3Click(Sender: TObject);
    begin //ZoomTo100%  缩 放 至 实 际 大 小
         QRPreview1.Zoom:=100;
    end;procedure TFrmMyPreview.ToolButton4Click(Sender: TObject);
    begin //ZoomToWidth  缩 放 至 页 宽
        QRPreview1.ZoomToWidth;
    end;procedure TFrmMyPreview.ToolButton6Click(Sender: TObject);
    begin //First page
         QRPreview1.PageNumber := 1;
         UpdatePanelShow;
    end;procedure TFrmMyPreview.ToolButton17Click(Sender: TObject);
    begin//next page
         QRPreview1.PageNumber := QRPreview1.PageNumber-1;
         if QRPreview1.PageNumber =0 then
            QRPreview1.PageNumber:=1;
         UpdatePanelShow;
    end;procedure TFrmMyPreview.ToolButton7Click(Sender: TObject);
    begin
         //prior page
         QRPreview1.PageNumber := QRPreview1.PageNumber+1;
         UpdatePanelShow;
    end;procedure TFrmMyPreview.ToolButton8Click(Sender: TObject);
    begin //Last page
         QRPreview1.PageNumber := FPageCount;
         UpdatePanelShow;
    end;procedure TFrmMyPreview.SpeedButton1Click(Sender: TObject);
    begin
        Close;
    end;procedure TFrmMyPreview.ToolButton11Click(Sender: TObject);
    begin
        //print setup
         QRPreview1.QRPrinter.PrintSetup;
    end;procedure TFrmMyPreview.ToolButton12Click(Sender: TObject);
    begin
        //print
        QRPreview1.QRPrinter.Print;
    end;procedure TFrmMyPreview.ToolButton14Click(Sender: TObject);
    begin
    //save button
        if SaveDlg1.Execute then
        begin
         if (SaveDlg1.FIlterIndex <>1)and(CurRep = nil)then Exit;
         case SaveDlg1.FilterINdex of
            //--*.QR
         1: QRPreview1.QRPrinter.Save(SaveDlg1.FileName);
            //--*.TXT
         //2: //CurRep.ExportToFilter
    //(TQRAsciiExportFilter.Create(SaveDlg1.FileName));
            //--*.HTM
         //3: //CurRep.ExportToFilter
    //(TQRHTMLExportFilter.Create(SaveDlg1.FileName));
            //--*.CSV
         //4: CurRep.ExportToFilter
    //(TQRCSVExportFilter.Create(SaveDlg1.FileName));
         end;
        end;
    end;procedure TFrmMyPreview.ToolButton15Click(Sender: TObject);
    begin
    //load button
         if OpenDlg1.Execute then
            QRPreview1.QRPrinter.Load(OpenDlg1.FileName);
    end;procedure TFrmMyPreview.QRPreview1ProgressUpdate(Sender: TObject;
      Progress: Integer);
    begin
        //updage progress bar
        ProgressBar1.Position := Progress;
        if progress=100 then
            progressbar1.Position :=0;
    end;procedure TFrmMyPreview.SaveDlg1TypeChange(Sender: TObject);
    begin
        //set DefaultExt property of Savedialog
         with SaveDlg1 do
         case FilterIndex of
         0: DefaultExt := '.QR';
         1: DefaultExt := '.TXT';
         2: DefaultExt := '.HTM';
         3: DefaultExt := '.CSV';
         end;
    end;procedure TFrmMyPreview.FormCreate(Sender: TObject);
    begin
        top:=0;
    end;end.
      

  7.   

    你看看这段码,那里错了?
    procedure TForm1.Button1Click(Sender: TObject);
    var meta: tmetafile;
    beginmeta:=tmetafile.create;
    QuickReport2.Preview;
    QuickReport2.prepare;
    meta := QuickReport2.QRPrinter.GetPage(1);
    image1.Canvas.Draw(0,0,meta);
    META.FREEend;