Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Quick Report und Seitennumerierung (https://www.delphipraxis.net/151497-quick-report-und-seitennumerierung.html)

mcinternet 20. Mai 2010 10:58


Quick Report und Seitennumerierung
 
Moin,

hab mal wieder ein kleines Problem:

Wie baut man bei den alten Quick-Reports eine Seitennumerierung rein?

so Seite x von y ?


vielen Dank im Voraus

McInternet

DeddyH 20. Mai 2010 11:01

Re: Quick Report und Seitennumerierung
 
Vielleicht hilft Dir dieser Thread weiter.

mcinternet 20. Mai 2010 13:29

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von DeddyH
Vielleicht hilft Dir dieser Thread weiter.

Ja, danke!

Es gibt ja die Komponente Pageheaderband, was nimmt man denn für die Fußzeile?

Hat sich erledigt!

Gruss

McInternet

mcinternet 20. Mai 2010 13:50

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von DeddyH
Vielleicht hilft Dir dieser Thread weiter.

Moin,

ne - hat leider nicht ganz geholfen.

Ich habe einen Report von 9 Seiten. Auf jeder steht unten:

Seite 0 von 9

Delphi-Quellcode:
var
  fplan: Tplan;
  PageCount : Integer;{Global Variable}

implementation


procedure Tfplan.QRBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
   qrseite.Caption := 'Seite ' + IntToStr(QR.QRPrinter.PageNumber) + ' von ' + IntToStr(PageCount);
end;
und die Procedure selbst:
Delphi-Quellcode:
  QR.Prepare;
  PageCount:=QR.QRPrinter.PageCount;
  QR.Preview;


Gruss

McInternet

DeddyH 20. Mai 2010 13:54

Re: Quick Report und Seitennumerierung
 
Ich zitiere einmal das Zitat aus dem verlinkten Thread :)
Zitat:

Delphi-Quellcode:
procedure TfrmPreview.QRPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
begin
  if PageNum = 1 then
    Caption := QRPreview.QRPrinter.Title + ' - 1 page'
  else
    Caption := QRPreview.QRPrinter.Title + ' - ' + IntToStr(PageNum) + ' pages';

Ich hab leider keinen QR zur Verfügung, kann es daher nicht ausprobieren.

mcinternet 20. Mai 2010 13:57

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von DeddyH
Ich zitiere einmal das Zitat aus dem verlinkten Thread :)
Zitat:

Delphi-Quellcode:
procedure TfrmPreview.QRPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
begin
  if PageNum = 1 then
    Caption := QRPreview.QRPrinter.Title + ' - 1 page'
  else
    Caption := QRPreview.QRPrinter.Title + ' - ' + IntToStr(PageNum) + ' pages';

Ich hab leider keinen QR zur Verfügung, kann es daher nicht ausprobieren.

PageNum ist unbekannt!

Es ist PageNumber - und das ist immer 0

Gruss

McInternet

DeddyH 20. Mai 2010 13:58

Re: Quick Report und Seitennumerierung
 
0 bei OnPageAvailable? Das halte ich für einen dicken Hund.

mcinternet 20. Mai 2010 14:04

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von DeddyH
0 bei OnPageAvailable? Das halte ich für einen dicken Hund.

OnPageAvailable habe ich als Event gar nicht! Nur OnPageBeforePrint

Gruss

McInternet

DeddyH 20. Mai 2010 14:11

Re: Quick Report und Seitennumerierung
 
Dann kann ich Dir leider nicht weiterhelfen, da ich wie gesagt kein QR zur Verfügung habe :(

mcinternet 26. Mai 2010 08:06

Re: Quick Report und Seitennumerierung
 
Hallo,

ich pushe diesen Thread einmal, da ich immer noch keine Lösung für meine Seitennumerierung habe.

Die vorgeschlagenen Lösungswege funktionieren leider nicht.

Da es mir ein wenig brennt wäre es schön, wenn jemand eine Idee/Lösung hätte

Die Entwicklungsumgebung ist in diesem Fall D2006

Gruss

McInternet

BerndS 26. Mai 2010 08:44

Re: Quick Report und Seitennumerierung
 
Hallo,
wenn ich mich recht erinnere, muss vor den Drucken/Anzeigen Prepare vom Report aufgerufen werden.
Damit wird er einmal erstellt, um die Anzahl der Seiten zu ermitteln.
Danach dann Preview oder Print.
Kann es jetzt leider nicht testen.
Gruß Bernd.

mcinternet 26. Mai 2010 08:50

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von BerndS
Hallo,
wenn ich mich recht erinnere, muss vor den Drucken/Anzeigen Prepare vom Report aufgerufen werden.
Damit wird er einmal erstellt, um die Anzahl der Seiten zu ermitteln.
Danach dann Preview oder Print.
Kann es jetzt leider nicht testen.
Gruß Bernd.

Hallo Bernd,

die Seitenanzahl wird richtig ermittelt.

qrseite.Caption := 'Seite ' + IntToStr(QR.QRPrinter.PageNumber) + ' von ' + IntToStr(PageCount);

Nur die aktuelle Seitennummerierung wird nicht hochgezählt.
Auf jeder Seite steht: Seite 0 von 9

Gruss

Mcinternet

BerndS 26. Mai 2010 08:57

Re: Quick Report und Seitennumerierung
 
Ok, aber PageNumber ist auch eine Variable im Quickreport, die bei NewPage hochgezählt wird. Also sollte da
Delphi-Quellcode:
qrseite.Caption := 'Seite ' + IntToStr(PageNumber) + ' von ' + IntToStr(PageCount);
stehen.

mcinternet 26. Mai 2010 09:23

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von BerndS
Ok, aber PageNumber ist auch eine Variable im Quickreport, die bei NewPage hochgezählt wird. Also sollte da
Delphi-Quellcode:
qrseite.Caption := 'Seite ' + IntToStr(PageNumber) + ' von ' + IntToStr(PageCount);
stehen.

Der findet pagenumber so nicht

Gruss

Mcinternet

rawi 26. Mai 2010 09:40

Re: Quick Report und Seitennumerierung
 
Hallo mcinternet,

habe es gerade mal bei mir versucht, allerdings nur mit einem einseitigen Report unter Delphi 5.

Wenn man die procedure onstartpage nutzt, funktioniert es zumindest bei dem einseitigen report.

Delphi-Quellcode:
procedure TrptSysinfo.QuickRepStartPage(Sender: TCustomQuickRep);
begin
  QRLabel33.Caption := inttostr(sender.PageNumber  ) + ' / ' +
                       inttostr(sender.QRPrinter.pagecount)
end;
gruß rawi

mcinternet 26. Mai 2010 09:49

Re: Quick Report und Seitennumerierung
 
Zitat:

Zitat von rawi
Hallo mcinternet,

habe es gerade mal bei mir versucht, allerdings nur mit einem einseitigen Report unter Delphi 5.

Wenn man die procedure onstartpage nutzt, funktioniert es zumindest bei dem einseitigen report.

Delphi-Quellcode:
procedure TrptSysinfo.QuickRepStartPage(Sender: TCustomQuickRep);
begin
  QRLabel33.Caption := inttostr(sender.PageNumber  ) + ' / ' +
                       inttostr(sender.QRPrinter.pagecount)
end;
gruß rawi

Klappt!!!

Vielen Dank!

Gruss

McInternet


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz