AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

QuickReport.Header auf jeder Seite und ForceNewPage

Ein Thema von norwegen60 · begonnen am 26. Feb 2020 · letzter Beitrag vom 26. Feb 2020
Antwort Antwort
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
505 Beiträge
 
Delphi 12 Athens
 
#1

QuickReport.Header auf jeder Seite und ForceNewPage

  Alt 26. Feb 2020, 17:39
Hallo zusammen,

ich verwende Delphi XE udn QuickReport 5.06

Eine Frage von der ich zunächst dachte, dass sie ganz einfach zu lösen ist:

Was muss ich tun, wenn ich eine Master-Tabelle mit einem Satz und dazu zwei Detail-Tabellen mit bis zu 700 Datensätzen habe und
  1. bei Detail 1 auf allen Seiten Überschrift 1
  2. bei Detail 2 auf allen Seiten Überschrift 2 haben möchte

Egal ob ich TQRGroup oder TQRBand.rbGroupHeader verwende wird der immer nur am Anfang der Tabelle gedruckt. Nicht aber auf den Folgeseiten
TQRBand.rbColumnHeader wird zwar auf allen Seiten gedruckt, aber auf der ersten Seite zwei mal und der gleiche auch bei Detail2

Die Settings ForceNewPage, RePrintOnNewPage scheinen keinerlei Auswirkungen zu haben. (Gilt auch für KeepOnOnePage)

Hat jemand eine Lösung?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: QuickReport.Header auf jeder Seite und ForceNewPage

  Alt 26. Feb 2020, 18:07
Klingt wie das Problemchen hier
https://borland.public.cppbuilder.vc...printonnewpage
$2B or not $2B
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
505 Beiträge
 
Delphi 12 Athens
 
#3

AW: QuickReport.Header auf jeder Seite und ForceNewPage

  Alt 26. Feb 2020, 19:39
Den Beitrag hatte ich noch nicht gefunden, er hilft mir aber auch nicht weiter. Oder ich verstehe ihn nicht richtig.
Ich habe mehrere Subdetails und keine Kombination gefunden, in der die Lösung weiter hilft. Ich hatte auch schon zuvor mit den Linkbändern rum probiert.

Jetzt habe ich eine Lösung die geht

qrbaPageHeader................TQrBand.rbPageHeader
---qrcbDetail1Header..........TQrChildPand.Parent = qrbaPageHeader
---qrcbDetail2Header..........TQrChildPand.Parent = qrcbDetail1Header
qrbaMaster.......................TQrBand.rbDetail
---qrbaDetail1Header..........TQrBand.GroupHeader
---qrsdDetail1...................TQrSubDetail Header = qrbaDetail1Header, Footer = qrbaDetail1Footer
---qrbaDetail1Footer..........TQrBand.GroupFooter

---qrbaDetail2Header..........TQrBand.GroupHeader
---qrsdDetail2...................TQrSubDetail Header = qrbaDetail2Header, Footer = qrbaDetail2Footer
---qrbaDetail2Footer..........TQrBand.GroupFooter

Und dann der große Gag
Delphi-Quellcode:
procedure TrptTest2.qrbaDetail1FooterBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  qrcbDetail1Header.Enabled := false;
end;

procedure TrptTest2.qrbaDetail1HeaderBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  qrcbDetail1Header.Enabled := true;
end;

procedure TrptTest2.qrbaDetail2FooterBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  qrcbDetail2Header.Enabled := false;
end;

procedure TrptTest2.qrbaDetail2HeaderBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  qrcbDetail2Header.Enabled := true;
end;
Das heißt ich blende die an den PageHeader angebundenen ChildBänder ein und aus. Natürlich müssen die die redundante Tabellenbeschriftung wie die beiden GroupHeader enthalten.
Im Moment denke ich drüber nach nur ein ChildBand anzubinden und im qrbaDetail2HeaderBeforePrint den jeweilgen Inhalt des Orginalen GroupHeader zu kopieren

Dafür gehört mindestens ein Verantwortlicher bei QBS geteert und gefedert.
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
505 Beiträge
 
Delphi 12 Athens
 
#4

AW: QuickReport.Header auf jeder Seite und ForceNewPage

  Alt 26. Feb 2020, 20:18
Jetzt habe ich auch ein anderes Mysterium von QuickReport gelöst, nämlich die Positionierung von Bändern.
Durch normales verschieben schafft man es in obigem Konstrukt kaum den Deatil2-Block vor Detail1 zu schieben. Auch nicht, wenn man die Top-Eigenschaft von Deatil2 vor Detail 1 setzt.

Es klappt aber sicher, mit folgenden Schritten:
  • QR-Report in die Text-Ansicht wechseln
  • im Source-Code den kompletten qrsdDetail2-Block vor qrsdDetail1 schieben
  • wieder zurück in Form-Ansicht wechseln
Danach wird qrsdDetail2 vor qrsdDetail1 angezeigt und auch die GroupHeader und GroupFooter werden korrekt zugeordnet.
Es muss also nur der TSubDetail Block verschoben werden.

Zeit für den nächsten QBS-Manager.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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