Delphi-PRAXiS
Seite 2 von 2     12   

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 Fastreport Scripttext - Wie wird der ausgeführt? (https://www.delphipraxis.net/54071-fastreport-scripttext-wie-wird-der-ausgefuehrt.html)

smudo 27. Sep 2005 15:56

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Sorry, na klar!
Vielen Dank erstmal, werde es weiter versuchen...

Union 27. Sep 2005 18:39

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Zitat:

Zitat von smudo
Zitat:

Zitat von franktron
Also ich hab zum zeichnen ein TfrxPictureView genommen

Seh ich schlecht oder ist diese Komponente in meinem Package nicht dabei? :gruebel:
Zitat:

Zitat von franktron
und die Seitenzahl habe ich momentan noch mit einem Zähler gemacht

Wieso funktioniert das eigentlich nicht mit PagesCount?

Du musst EngineOptions.Doublepass anschalten. Dadruch wird er Report 2 x ausgeführt: 1 mal zum Zählen der Gesamtseitenzahl und beim zweiten mal ist die entsprechende interne Variable dann gefüllt.

smudo 28. Sep 2005 08:58

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Zitat:

Zitat von Union
beim zweiten mal ist die entsprechende interne Variable dann gefüllt.

:shock: Ab welchem Ergeignis kann ich dann PagesCount auslesen?
Selbst nach dem Ereignis OnEndDoc (und das sollte das letzte sein), sowie nach
dem Ausführen von PrepareReport ist PagesCount immer noch 1, obwohl 90 Seiten vorbereitet wurden.

Zitat:

Zitat von FastReport – Programmer’s manual
property PagesCount: Integer readonly;
Number of pages in a report template.

Das heißt wohl Anzahl der Seiten der ungefüllten Reportdatei?

Über das Ereignis Progress lässt sich die Anzahl der Seiten des gefüllten Reports zählen.
Wie aber kann ich denn nun die einzelnen Seiten ansprechen und abhängig von der Seitenzahl
auf einem TfrxPictureView zeichnen???

René

Union 28. Sep 2005 09:23

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Zitat:

Zitat von smudo
Zitat:

Zitat von Union
beim zweiten mal ist die entsprechende interne Variable dann gefüllt.

:shock: Ab welchem Ergeignis kann ich dann PagesCount auslesen?
Selbst nach dem Ereignis OnEndDoc (und das sollte das letzte sein), sowie nach
dem Ausführen von PrepareReport ist PagesCount immer noch 1, obwohl 90 Seiten vorbereitet wurden.

Zitat:

Zitat von FastReport – Programmer’s manual
property PagesCount: Integer readonly;
Number of pages in a report template.

Das heißt wohl Anzahl der Seiten der ungefüllten Reportdatei?

Über das Ereignis Progress lässt sich die Anzahl der Seiten des gefüllten Reports zählen.
Wie aber kann ich denn nun die einzelnen Seiten ansprechen und abhängig von der Seitenzahl
auf einem TfrxPictureView zeichnen???

René

TfrxReport.Engine.TotalPages bzw. Systemvariable TOTALPAGES# ist die Anzahl der durch eiunen Report erzeugten Seiten. PagesCount ist die Anzahl der definierten Seiten.

smudo 28. Sep 2005 10:14

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Zitat:

Zitat von Union
TfrxReport.Engine.TotalPages bzw. Systemvariable TOTALPAGES# ist die Anzahl der durch eiunen Report erzeugten Seiten.

:wall: Zeigt 0 (Null) an, obwohl es 8 Seiten sind und DoublePass auf True steht.

Zitat:

Zitat von Union
PagesCount ist die Anzahl der definierten Seiten.

Das leuchtet mir ein.
Wenn ich jetzt aber auf die Page[0] per Create ein Objekt setze, wird es nur auf der Seite 1 angezeigt.
Auf allen folgenden Seiten gibt es das Objekt nicht, obwohl es doch die gleiche Page ist.
Versuche ich das Objekt auch auf Page[1] zu erzeugen, kommt ein Zugriffsfehler, da es zwar 8 Seiten, aber nur eine definierte Page gibt.

:gruebel: Vielleicht sollte ich mal einen neuen Thead aufmachen, is schon ziemlich weit weg vom Thema.

Union 28. Sep 2005 10:23

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Zitat:

Zitat von smudo
Zitat:

Zitat von Union
TfrxReport.Engine.TotalPages bzw. Systemvariable TOTALPAGES# ist die Anzahl der durch eiunen Report erzeugten Seiten.

:wall: Zeigt 0 (Null) an, obwohl es 8 Seiten sind und DoublePass auf True steht.

Zitat:

Zitat von Union
PagesCount ist die Anzahl der definierten Seiten.

Das leuchtet mir ein.
Wenn ich jetzt aber auf die Page[0] per Create ein Objekt setze, wird es nur auf der Seite 1 angezeigt.
Auf allen folgenden Seiten gibt es das Objekt nicht, obwohl es doch die gleiche Page ist.
Versuche ich das Objekt auch auf Page[1] zu erzeugen, kommt ein Zugriffsfehler, da es zwar 8 Seiten, aber nur eine definierte Page gibt.

:gruebel: Vielleicht sollte ich mal einen neuen Thead aufmachen, is schon ziemlich weit weg vom Thema.

Also bei mir geht es so:
Delphi-Quellcode:
// Referenz auf Seite
ReportPage := TfrxReportPage(frxListe.Pages[0]);

// Picture-Objekt erzeugen
with TfrxPictureView.Create(TfrxPageHeader(ReportPage.FindObject('PageHeader'))) do
begin
   AutoSize  := true;
   Top       := 0;
   left      := 200;
   Picture.LoadFromFile('c:\windows\zapotek.bmp');
end;

smudo 28. Sep 2005 10:44

Re: Fastreport Scripttext - Wie wird der ausgeführt?
 
Danke Union,

mit dieser Variante wird es in das Header-Band der referenzierten Seite reingeschrieben und so funktioniert es auch.
Die Objekte sollen aber auf der Seite erzeugt werden, unabhängig davon, ob ein Band existiert und wie groß es ist.
Außerdem sollen sie eben nicht auf jeder Seite erzeugt werden.

Vielen Dank für die bisherige Hilfe.
Und in der Hoffnung, dass die Diskussion trotzdem weitergeht, verweise ich hier auf einen neuen Thread:
hier gehts weiter


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.
Seite 2 von 2     12   

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