Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi FastReports Seitenbreite zur Laufzeit einstellen (https://www.delphipraxis.net/214220-fastreports-seitenbreite-zur-laufzeit-einstellen.html)

TurboMagic 6. Dez 2023 17:54

FastReports Seitenbreite zur Laufzeit einstellen
 
Hallo,

ich versuche bei einem FastReports (EMBT Edition, D11.3) Druckreport zur Laufzeit die Seitenbreite zu ändern.

Delphi-Quellcode:
DMReceipt.frxReceipt69mm.Pages[0].Width := FPrintSettings.ReceiptWidth;
Wobei frxReceipt69mm das TfrxReport Objekt ist.
In den Bands sind Steuerelemente drin, die rechts verankert sind (aber nicht links),
nur stelle ich beim Ausdrucken keinen Unterschied fest (Seitenbreite 69,5 mm vs. 80 mm)

Ich mache das direkt nach dem frxReceipt69mm.LoadFromFile, also noch vor einem Prepare etc.
Wo liegt mein Denkfehler?
Versuche ich das mit .Page := statt Pages[0] crasht es mit AV.
Die Seite ist als unendlich hoch definiert, breite ist aber nicht unendlich.

Grüße
TurboMagic

Ancaron 6. Dez 2023 20:23

AW: FastReports Seitenbreite zur Laufzeit einstellen
 
Hast du mal nachgeschaut ob Pages[0] auch die erste Seite ist oder ist es die Datapage?
Ich habe das was im Hinterkopf, dass Fastreport auch die DataPage mit in dem Array hat.

Edit: Habe mal nachgeschaut bei mir und Ich hatte zwar etwas anderes an den Pages geändert aber bin immer über die Pages gelaufen und habe auf
Zitat:

frxReportMain.Pages[iPage] is TfrxReportPage
oder
Zitat:

frxReportMain.Pages[iPage] is TfrxDataPage
geprüft

TurboMagic 7. Dez 2023 17:21

AW: FastReports Seitenbreite zur Laufzeit einstellen
 
Hallo,

danke für den Tipp. Habe den ausprobiert, hat dann zwar tatsächlich 2 Seiten ergeben
und nur die 2. ist "is". Hat aber trotzdem keinen Unterschied in der Druckbreite ergeben.

Soweit ich die Doku verstanden habe, müsste ich da ja frxReceipt69mm.Pages[i].Width := 80;
angeben.

Oder was mache ich sonst noch falsch?

Grüße
TurboMagic

mytbo 7. Dez 2023 18:34

AW: FastReports Seitenbreite zur Laufzeit einstellen
 
Zitat:

Zitat von TurboMagic (Beitrag 1530544)
Oder was mache ich sonst noch falsch?

Im Anhang dieses Posts findest du ein Beispiel mit Quelltext.

Bis bald...
Thomas

TurboMagic 7. Dez 2023 18:56

AW: FastReports Seitenbreite zur Laufzeit einstellen
 
Danke! Das hat mich auf die Spur gebracht.
Ich hatte vergessen zu casten und deshalb keine PaperWidth verfügbar.

Grüße
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.

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