アプリケーション内でQuickReportsを使用しており、フッター内に「Pagexofx」を含めたいと考えています。これを行うための最良の方法は何ですか?
10019 次
3 に答える
9
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;
于 2012-06-07T08:07:47.517 に答える
0
最初にドキュメントを準備して、システム自体が生成するページ数を認識します。使用できるシステム変数があります (正確な名前を知るための 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;
于 2010-09-03T06:01:24.443 に答える
0
解決策は、プレビュー中にページ数を数えて、プリンターに送信するときにフッターに配置できるようにすることです。
于 2010-09-01T16:40:16.833 に答える