打印预览问题,高分相送 QuickRep1.Preview;运行时出现的预览窗口是delphi的,标志还在顶上有没有方法可以去掉这个标志??听说可以自己做预览窗体,怎么做哪,各位高手,麻烦指点!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载预览窗口,我有代码全部给你。unit printpreview;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, SUIForm, ComCtrls, ToolWin, SUIToolBar, QRPrntr, ImgList, QuickRpt;type TfrmPrintPreview = class(TForm) frmMain: TsuiForm; QRPreview: TQRPreview; suiToolBar1: TsuiToolBar; btnZoomToFit: TToolButton; ImageList: TImageList; btnZoom100: TToolButton; btnZoomToWidth: TToolButton; btnFirst: TToolButton; btnNext: TToolButton; btnPrior: TToolButton; btnLast: TToolButton; btnPrintSetup: TToolButton; btnPrint: TToolButton; btnSave: TToolButton; btnOpen: TToolButton; btnClose: TToolButton; ToolButton3: TToolButton; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; OpenDialog: TOpenDialog; SaveDialog: TSaveDialog; StatusBar: TStatusBar; procedure btnZoomToFitClick(Sender: TObject); procedure btnZoom100Click(Sender: TObject); procedure btnZoomToWidthClick(Sender: TObject); procedure btnFirstClick(Sender: TObject); procedure btnPriorClick(Sender: TObject); procedure btnNextClick(Sender: TObject); procedure btnLastClick(Sender: TObject); procedure btnPrintSetupClick(Sender: TObject); procedure btnPrintClick(Sender: TObject); procedure btnSaveClick(Sender: TObject); procedure btnOpenClick(Sender: TObject); procedure btnCloseClick(Sender: TObject); procedure QRPreviewPageAvailable(Sender: TObject; PageNum: Integer); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } FPageCount : integer; procedure UpdatePanelShow; public { Public declarations } CurRep : TQuickRep; end;//var // frmPrintPreview: TfrmPrintPreview;implementation{$R *.dfm}procedure TfrmPrintPreview.btnZoomToFitClick(Sender: TObject);begin QRPreview.ZoomToFit;end;procedure TfrmPrintPreview.btnZoom100Click(Sender: TObject);begin QRPreview.Zoom:=100;end;procedure TfrmPrintPreview.btnZoomToWidthClick(Sender: TObject);begin QRPreview.ZoomToWidth;end;procedure TfrmPrintPreview.btnFirstClick(Sender: TObject);begin QRPreview.PageNumber := 1; UpdatePanelShow;end;procedure TfrmPrintPreview.btnPriorClick(Sender: TObject);begin QRPreview.PageNumber := QRPreview.PageNumber-1; if QRPreview.PageNumber =0 then QRPreview.PageNumber:=1; UpdatePanelShow;end;procedure TfrmPrintPreview.btnNextClick(Sender: TObject);begin QRPreview.PageNumber := QRPreview.PageNumber+1; UpdatePanelShow;end;procedure TfrmPrintPreview.btnLastClick(Sender: TObject);begin QRPreview.PageNumber := FPageCount; UpdatePanelShow;end;procedure TfrmPrintPreview.btnPrintSetupClick(Sender: TObject);begin QRPreview.QRPrinter.PrintSetup;end;procedure TfrmPrintPreview.btnPrintClick(Sender: TObject);begin QRPreview.QRPrinter.Print;end;procedure TfrmPrintPreview.btnSaveClick(Sender: TObject);begin if SaveDialog.Execute then begin if (SaveDialog.FIlterIndex <>1)and(CurRep = nil)then Exit; QRPreview.QRPrinter.Save(SaveDialog.FileName); end;end;procedure TfrmPrintPreview.btnOpenClick(Sender: TObject);begin if OpenDialog.Execute then QRPreview.QRPrinter.Load(OpenDialog.FileName);end;procedure TfrmPrintPreview.btnCloseClick(Sender: TObject);begin Close;end;procedure TfrmPrintPreview.UpdatePanelShow;begin StatusBar.Panels.Items[0].Text:='总 '+inttostr(FPageCount)+' 页'; StatusBar.Panels.Items[1].Text:=' 第 '+inttostr(QRPreview.PageNumber)+ ' 页';end;procedure TfrmPrintPreview.QRPreviewPageAvailable(Sender: TObject; PageNum: Integer);begin FPageCount := PageNum ; UpdatePanelShow;end;procedure TfrmPrintPreview.FormClose(Sender: TObject; var Action: TCloseAction);begin CurRep := nil; Action := caFree;end;end.另外在你的qreport的onpreview中加上procedure TfrmJtda.QRep1Preview(Sender: TObject);begin with TfrmPrintPreview.Create(Application) do begin QRep1.Prepare; QRep1.PreviewModeless; QRPreview.QRPrinter := QRep1.QRPrinter ; CurRep := QRep1; ShowModal; end;end; 楼上的兄弟,我的代码和你差不多,但是为什么预览时为空白,打印可以打出内容?我跟了一下,Showmodal后没有Pagecount。 pagecount要在rep.prepare 后才有值 不好意思,再问一下,我的预览现在不是出不来,而是显示两次了:(在:procedure TfrmJtda.QRep1Preview(Sender: TObject);begin with TfrmPrintPreview.Create(Application) do begin QRep1.Prepare; QRep1.PreviewModeless; QRPreview.QRPrinter := QRep1.QRPrinter ; CurRep := QRep1; ShowModal; end;end;调试中,运行至QRep1.PreviewModeless;时就跳至with TfrmPrintPreview.Create(Application) do,重新生成了一遍。 我的delphi2010里咋没有Excel相关的控件了呢? Delphi中如何实现模糊查询? 如何用UP和Down键实现Tab和shft Tab功能?急 cxgrid给单元格赋值问题,分不够再加。 【麻烦大家一下】青岛到底怎么样 如何用QuickReport做这样的报表,分数不过,可以另开问题加分~ 关于学习Delphi的疑问! INTRAWEB编程自动下载! 请教一个小小的问题 dll问题------------新手(new) dbgrid中下拉框的问题 删除记录得问题?
unit printpreview;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, SUIForm, ComCtrls, ToolWin, SUIToolBar, QRPrntr,
ImgList, QuickRpt;type
TfrmPrintPreview = class(TForm)
frmMain: TsuiForm;
QRPreview: TQRPreview;
suiToolBar1: TsuiToolBar;
btnZoomToFit: TToolButton;
ImageList: TImageList;
btnZoom100: TToolButton;
btnZoomToWidth: TToolButton;
btnFirst: TToolButton;
btnNext: TToolButton;
btnPrior: TToolButton;
btnLast: TToolButton;
btnPrintSetup: TToolButton;
btnPrint: TToolButton;
btnSave: TToolButton;
btnOpen: TToolButton;
btnClose: TToolButton;
ToolButton3: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
StatusBar: TStatusBar;
procedure btnZoomToFitClick(Sender: TObject);
procedure btnZoom100Click(Sender: TObject);
procedure btnZoomToWidthClick(Sender: TObject);
procedure btnFirstClick(Sender: TObject);
procedure btnPriorClick(Sender: TObject);
procedure btnNextClick(Sender: TObject);
procedure btnLastClick(Sender: TObject);
procedure btnPrintSetupClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnOpenClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure QRPreviewPageAvailable(Sender: TObject; PageNum: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
FPageCount : integer;
procedure UpdatePanelShow;
public
{ Public declarations }
CurRep : TQuickRep;
end;//var
// frmPrintPreview: TfrmPrintPreview;implementation{$R *.dfm}procedure TfrmPrintPreview.btnZoomToFitClick(Sender: TObject);
begin
QRPreview.ZoomToFit;
end;procedure TfrmPrintPreview.btnZoom100Click(Sender: TObject);
begin
QRPreview.Zoom:=100;
end;procedure TfrmPrintPreview.btnZoomToWidthClick(Sender: TObject);
begin
QRPreview.ZoomToWidth;
end;procedure TfrmPrintPreview.btnFirstClick(Sender: TObject);
begin
QRPreview.PageNumber := 1;
UpdatePanelShow;
end;procedure TfrmPrintPreview.btnPriorClick(Sender: TObject);
begin
QRPreview.PageNumber := QRPreview.PageNumber-1;
if QRPreview.PageNumber =0 then
QRPreview.PageNumber:=1;
UpdatePanelShow;
end;procedure TfrmPrintPreview.btnNextClick(Sender: TObject);
begin
QRPreview.PageNumber := QRPreview.PageNumber+1;
UpdatePanelShow;
end;procedure TfrmPrintPreview.btnLastClick(Sender: TObject);
begin
QRPreview.PageNumber := FPageCount;
UpdatePanelShow;
end;procedure TfrmPrintPreview.btnPrintSetupClick(Sender: TObject);
begin
QRPreview.QRPrinter.PrintSetup;
end;procedure TfrmPrintPreview.btnPrintClick(Sender: TObject);
begin
QRPreview.QRPrinter.Print;
end;procedure TfrmPrintPreview.btnSaveClick(Sender: TObject);
begin
if SaveDialog.Execute then
begin
if (SaveDialog.FIlterIndex <>1)and(CurRep = nil)then Exit;
QRPreview.QRPrinter.Save(SaveDialog.FileName);
end;
end;procedure TfrmPrintPreview.btnOpenClick(Sender: TObject);
begin
if OpenDialog.Execute then
QRPreview.QRPrinter.Load(OpenDialog.FileName);
end;procedure TfrmPrintPreview.btnCloseClick(Sender: TObject);
begin
Close;
end;procedure TfrmPrintPreview.UpdatePanelShow;
begin
StatusBar.Panels.Items[0].Text:='总 '+inttostr(FPageCount)+' 页';
StatusBar.Panels.Items[1].Text:=' 第 '+inttostr(QRPreview.PageNumber)+ ' 页';
end;procedure TfrmPrintPreview.QRPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
begin
FPageCount := PageNum ;
UpdatePanelShow;
end;procedure TfrmPrintPreview.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
CurRep := nil;
Action := caFree;
end;
end.
另外在你的qreport的onpreview中加上procedure TfrmJtda.QRep1Preview(Sender: TObject);
begin
with TfrmPrintPreview.Create(Application) do
begin
QRep1.Prepare;
QRep1.PreviewModeless;
QRPreview.QRPrinter := QRep1.QRPrinter ;
CurRep := QRep1;
ShowModal;
end;
end;
我跟了一下,Showmodal后没有Pagecount。
在:
procedure TfrmJtda.QRep1Preview(Sender: TObject);
begin
with TfrmPrintPreview.Create(Application) do
begin
QRep1.Prepare;
QRep1.PreviewModeless;
QRPreview.QRPrinter := QRep1.QRPrinter ;
CurRep := QRep1;
ShowModal;
end;
end;
调试中,运行至QRep1.PreviewModeless;时就跳至with TfrmPrintPreview.Create(Application) do,重新生成了一遍。