Delphi快速报告-总页数
我正在应用程序中使用QuickReports,希望页脚中有“第x页,共x页”。最好的方法是什么?一种解决方案是在预览期间计算页数,这样当您将其发送到打印机时,您可以将其放在页脚中。首先准备文档,这样系统本身就知道将生成多少页。您可以使用一个系统变量(手边没有QR来告诉您确切的名称) 例如:Delphi快速报告-总页数,delphi,quickreports,Delphi,Quickreports,我正在应用程序中使用QuickReports,希望页脚中有“第x页,共x页”。最好的方法是什么?一种解决方案是在预览期间计算页数,这样当您将其发送到打印机时,您可以将其放在页脚中。首先准备文档,这样系统本身就知道将生成多少页。您可以使用一个系统变量(手边没有QR来告诉您确切的名称) 例如: procedure TForm1.Click(Sender: TObject); begin //this actually run the report in memory to //calcul
procedure TForm1.Click(Sender: TObject);
begin
//this actually run the report in memory to
//calculate things like total page count
Report1.Prepare;
Report1.Print; //or PreviewModal;
end;
FTotalPages在保存TQuickRep组件的Form2中声明
public
{ Public declarations }
FTotalPages: Integer;
请注意,必须在Prepare之后和PreviewModal(或.Print)之前释放QRPrinter对象,否则将导致内存泄漏
在Form2中,在Quickreport1上放置一个QRLabel,并实现它的onPrint事件处理程序
procedure TForm2.QRLabel1Print(sender: TObject; var Value: string);
begin
Value := 'Page: ' + IntToStr(QuickRep1.QRPrinter.PageNumber) + ' of ' + IntToStr(FTotalPages);
end;
procedure TForm2.QRLabel1Print(sender: TObject; var Value: string);
begin
Value := 'Page: ' + IntToStr(QuickRep1.QRPrinter.PageNumber) + ' of ' + IntToStr(FTotalPages);
end;