![]() |
FastReport - Create von Objekten auf Seiten
Hallo :hi: ,
im letzten Thread zum Thema FastReport ![]() Deshalb gehts jetzt hier weiter: Mit einem FastReport (bestehend aus 1 oder 2 definierten Seiten) werden beliebig viele Seiten ausgedruckt. Wie kann ich die Gesamtanzahl der auszudruckenden Seiten ermitteln und wie kann ich in Abhängigkeit von der Seitenzahl Objekte auf den einzelnen Seiten erstellen? Es handelt sich um TfrxLineView-Objekte. Zum Verständnis ein einfaches Beispiel:
Delphi-Quellcode:
Hierbei wird die Linie aber nur auf der ersten Seite, nicht aber auf den Folgeseiten dargestellt.
var Page: TfrxReportPage;
Line: TfrxLineView; begin [..] frxReport1.LoadFromFile(report); Page:=TfrxReportPage(frxReport1.Pages[0]); Line:=TfrxLineView.Create(Page); Line.CreateUniqueName; Line.SetBounds(0,50,20,1); [..] end; Was muss ich ändern? René |
Re: FastReport - Create von Objekten auf Seiten
Hi,
hier ein Beispiel für das Linienzeichen. Beim Erstellen des Reports erscheinen die Linien auf jeder erzeugten Seite:
Delphi-Quellcode:
Die Anzahl der Seiten ausserhalb des Reports ermittelst Du so:
ColumnHeader := TfrxColumnHeader(ReportPage.FindObject('ColumnHeader'));
with ColumnHeader do begin Clear; Font.Size := iFontSize; Height := Font.Size*2+2; end; with TFrxLineView.Create(ColumnHeader) do begin top := 0; Align := baWidth; end; with TFrxLineView.Create(ColumnHeader) do begin top := ColumnHeader.Height; Align := baWidth; end;
Delphi-Quellcode:
frxListe.EngineOptions.Doublepass := true;
frxListe.PrepareReport(); ShowMessage(Format('Anzahl Seiten: %d', [frxListe.Engine.PreviewPages.Count])); frxListe.ShowReport(); |
Re: FastReport - Create von Objekten auf Seiten
:wall: Nicht schon wieder der gleiche Fehler!
ich raufe mir die Haare und streue mir Asche auf das Haupt! Ich kann im OI viel einstellen, wenn ich danach erst LoadFromFile aufrufe. :oops: Und natürlich hatte ich DoublePass im OI eingestellt, aber nicht
Delphi-Quellcode:
aufgerufen.
frxReport1.EngineOptions.Doublepass := true;
Sorry dafür. Wegen dem Zeichnen der Linien melde ich mich nochmal, wenn ich´s ausprobiert habe. @Union: Was heißt eigentlich deine Signatur? René |
Re: FastReport - Create von Objekten auf Seiten
Ich habe es getestet, wenn man ein Lineview direkt auf der Page erzeugt, dann wird es nur auf der ersten Seite gedruckt.
Allerdings kann man ein Hintergrundbild setzen, das auf jeder Seite gedruckt wird:
Delphi-Quellcode:
Wo das Geld am nächsten, da (ist auch) das Recht.
ReportPage.BackPicture.LoadFromFile('c:\windows\kaffeetasse.bmp');
|
Re: FastReport - Create von Objekten auf Seiten
Folgendermaßen kann ich das Objekt auf jeder beliebigen Folgeseite generieren:
Delphi-Quellcode:
In dieser Schleife kann ich für jede Seite abfragen, ob beispielsweise der Seitenheader existiert und kann
for z:=0 to Sender.Engine.TotalPages-1 do
begin Page:=TfrxReportPage(Sender.Engine.PreviewPages.Page[z]); Line:=TfrxLineView.Create(Page); Line.CreateUniqueName; Line.SetBounds(0,50,20,1); end; dementsprechend meine Linien einfügen. Vielen Dank :bounce1: die Delphipraxis hat mir mal wieder sehr geholfen! Zu Unions Signatur: traurig, aber wahr! |
Re: FastReport - Create von Objekten auf Seiten
:-D Himmelhoch jauchzend :cry: zu Tode betrübt...
--> Die Probleme gehen weiter Ich habe jetzt also meine Markierungen mittels TfrxLineView.Create auf die Seiten gebracht. Bis 50 Seiten funktioniert das auch gut. Habe ich aber 51 Seiten im Report, so wird auf keiner! Seite eine Linie angezeigt. Und noch schlimmer: Drucke ich im ersten Fall die Seiten aus, wird nur auf der 1. gedruckten Seite (egal welche) die Markierung gedruckt, alle folgenden enthalten keine Linien. :wall: Ich komm nicht weiter, bitte helft mir! |
Re: FastReport - Create von Objekten auf Seiten
Zitat:
|
Re: FastReport - Create von Objekten auf Seiten
Welche Alternative gäbe es denn, damit auf dem fertig preparierten Report
auf jeder Seite Markierungen hinzugefügt werden können? |
Re: FastReport - Create von Objekten auf Seiten
Zitat:
|
Re: FastReport - Create von Objekten auf Seiten
Habe es auf einem TfrxOverlay-Band versucht und erhalte das gleiche Ergebnis.
Vielleicht könnte ich die Linien auf dem Band vorgeben und nachher die Visible-Eigenschaft auf jeder Seite anpassen? Edit: scheint auch so nicht zu funktionieren. Ich bin am verzweifeln!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 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