如何截取Quickrep预览页中的打印事件?(100分)

  • 主题发起人 主题发起人 jack0424
  • 开始时间 开始时间
J

jack0424

Unregistered / Unconfirmed
GUEST, unregistred user!
希望实现:
1,将其打印按钮变灰,不允许打印
2,或用户按下打印按钮后,自定义打印过程。
 
自定义预览打印不就行了,可以为所欲为!!!
在QReport.OnPreview中
yourform.QPreview.QRPrinter := TQRPrinter(Sender)
就OK了,试试!
 
论坛里自定义打印预览窗口的问题很多,你可以找一拭.
我找的一个
1.首先在自己的报表窗体中引用字定义的预览窗体单元。
2.在interface部分的uses中引用qrprntr单元(系统本身的)。
3.在自己报表的OnPreview事件中添加以下代码:
application.CreateForm(Tmypreview,mypreview);
mypreview.QRPreview1.QRPrinter := TQRPrinter(Sender);
mypreview.CurRep := self;
Mypreview.show;
mypreview是你自定义的预览窗体。
 
Thank you both.
不过我觉得采用继承TQRStandardPreview的方法比较容易。
TmQRStandardPreview= class(TQRStandardPreview)
procedure PrintClick(Sender: TObject);
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.QuickRep1Preview(Sender: TObject);
var v: TmQRStandardPreview;
begin
v := TmQRStandardPreview.CreatePreview(self,TQRPrinter(Sender));// .Create(self);
v.LastPage.Enabled := False;
v.Show ;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.Preview ;
end;

{ TmQRStandardPreview }
procedure TmQRStandardPreview.PrintClick(Sender: TObject);
begin
if messagedlg('really want print?',mtconfirmation, [mbyes,mbno],0)=mrno then
exit;
inherited;
end;
 
后退
顶部