我在我的应用程序中使用QuickReports,并且希望在页脚中有“第x页,共x页”。做这件事最好的方法是什么?
发布于 2010-09-03 14:01:24
首先准备文档,这样系统本身就知道将生成多少页。您可以使用一个系统变量(手头没有QR告诉您确切的名称)。
例如:
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;发布于 2012-06-07 16:07:48
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.QuickRep1.Prepare;
Form2.QuickRep1.FTotalPages := Form2.QuickRep1.QRPRinter.PageCount;
Form2.QuickRep1.QRPrinter.Free;
Form2.QuickRep1.QuickRep1.QRPrinter := nil;
Form2.QuickRep1.PreviewModal; // or .Print
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;发布于 2010-09-02 00:40:17
一种解决方案是在预览过程中计算页数,以便在将其发送到打印机时可以将其放在页脚中。
https://stackoverflow.com/questions/3616898
复制相似问题