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/)
-   -   QuickReport Bänder flexibel positionieren (https://www.delphipraxis.net/203371-quickreport-baender-flexibel-positionieren.html)

norwegen60 11. Feb 2020 18:59

QuickReport Bänder flexibel positionieren
 
Hallo zusammen,

ich habe einen Report der aktuell nach folgenden Schema fest aufgebaut ist:
Code:
qrbaTitel  = TQRBand (rbTitle)

qrcbMaster = TQRChildBand       ParentBand qrbaHeader1

qrbaHeader1 = TQRBand (rbGroupHeader)
qrsdData1   = TQRSubDetail      Headerband = qrbaHeader1
                                DataSet = Table2
                                Footerband = qrbaFooter1 
qrbaFooter1 = TQRBand (rbGroupFooter)

qrcbChart2  = TQRChildBand       ParentBand qrbaHeader2

qrbaHeader2 = TQRBand (rbGroupHeader)
qrsdData2   = TQRSubDetail      Headerband = qrbaHeader2
                                DataSet = Table3
                                Footerband = qrbaFooter2 
qrbaFooter2 = TQRBand (rbGroupFooter)

qrcbChart3  = TQRChildBand       ParentBand qrbaHeader3 

qrbaHeader3 = TQRBand (rbGroupHeader)
qrsdData3   = TQRSubDetail      Headerband = qrbaHeader2
                                DataSet = Table3
                                Footerband = qrbaFooter2 
qrbaFooter3 = TQRBand (rbGroupFooter)
Ich habe dies manuell im Designer passend positioniert und es wird auch passend gedruckt
  • Die Headerbänder enthalten die Spaltenüberschriften
  • Die Databändern dann beliebige Einträge aus Table, wobei die Table viruelle Tabellen vom Typ TJvMemoryData sind
  • Die Footerbänder enthalten Statistikdaten wir z.B. Mittelwert, StdDev,...
  • Die Childbänder enthalten ein QRChart für die graphische Darstellung der Daten

Jetzt möchte ich die Reihenfolge frei konfigurierbar machen. z.B. soll Block 3 vor Block 1 gedruckt werden. Und der Chart hinter dem Datenblock statt davor.

Wie lässt sich das am einfachsten realisiseren?
Sind da andere Bandtypen besser geeignet?
Was ist z.B. der Unterschied zwischen TQRBand (rbGroupHeader) und TQRGroup

Oder gibt es gute Tutorial die so was behandeln?

Vielen Dank im Voraus
Gerd

norwegen60 24. Feb 2020 15:58

AW: QuickReport Bänder flexibel positionieren
 
Hallo zusammen,

gibt es wirklich niemanden, der sich tief genug mit QuickChart auskennt um hier eine Möglichkeit aufzuzeigen.

Durch rum probieren und manuelles verschieben von Bändern kommt man ein ganzes Stück weit. Problematisch ist allerdings, dass es auch immer wieder passiert, dass die ganzen Positionierungen ganz schnell wieder zerschossen werden. Dann hängt das SubDetail nicht mehr am Header oder die ganz Gruppe hängt ganz woanders.

Ich finde einfach keine Logic.

Grüße
Gerd

hoika 24. Feb 2020 16:21

AW: QuickReport Bänder flexibel positionieren
 
Hallo,
tja ;(

Ich denke, es gibt hier kaum jemand, der (noch) QuickReport benutzt.

bcvs 24. Feb 2020 17:54

AW: QuickReport Bänder flexibel positionieren
 
Doch, ich oute mich jetzt mal als QuickReport-Nutzer.

Probier mal, die Header nicht als TQRBand mit Bandtype rbGroupHeader sondern als TQrChildBand zu definieren. Als ParentBand musste dann der Footer des jeweiligen Vorgänger-Blocks eingesetzt werden. Auf diese Weise sollte man das ganze doch beliebig umsortieren können, auch zur Laufzeit.

Ich habe es allerdings nicht ausprobiert.

norwegen60 26. Feb 2020 11:19

AW: QuickReport Bänder flexibel positionieren
 
Zitat:

Zitat von hoika (Beitrag 1458216)
Hallo,
tja ;(

Ich denke, es gibt hier kaum jemand, der (noch) QuickReport benutzt.

Das kann ich verstehen und am liebsten würde ich auch alles umstellen. Aber ich habe einen zielmlich komplexen Report übernommen und da würde das Wochen dauern bis alles funktioniert.

Ich habe jetzt Stunden damit vergeudet um herauszufinden, ob es Kombinationen gibt wo Settings wie ForceNewPage, PrintOnOnePage oder ReprintOnNewPage beachtet werden. Erfolglos.

Ich habe mich auch mal auf der QuickReport-Homepage umgeschaut. Mehrfach hat mich ein Baby angelacht, das meint "Don't cry. It's just a 404 error". Habe dann aber doch eine Seite gefunden, wo Demos runter geladen werden konnte. Aber das ist nur Mist. Über das Einbinden von den Bändern, die auch beim Preview angewählt werden können, kommen sie nicht raus.

QuickReport hat es nie über das Versuchsstadium herausgeschafft. Auch nicht mit 5.06, der letzten Version für Delphi XE

norwegen60 26. Feb 2020 11:32

AW: QuickReport Bänder flexibel positionieren
 
Zitat:

Zitat von bcvs (Beitrag 1458220)
Probier mal, die Header nicht als TQRBand mit Bandtype rbGroupHeader sondern als TQrChildBand zu definieren. Als ParentBand musste dann der Footer des jeweiligen Vorgänger-Blocks eingesetzt werden. Auf diese Weise sollte man das ganze doch beliebig umsortieren können, auch zur Laufzeit.

Das habe ich auch schon probiert. Es ist schon so, dass sich die ChildBänder gezielter positionieren lassen. Trotzdem habe ich das Problem die TQRSubDetailBand sicher an das ChildBand zu binden. Das geht mal gut und wenn ich dann was anderes verschiebe, hängt plötlich das SubDateil woanders.

Zweites Problem: Wie erzwinge ich dass bei mehreren Seiten, der Header (Tabellenüberschrift) des SubDetails immer wiederholt wird


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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-2025 by Thomas Breitkreuz