Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Quick Report und Rechnungen (https://www.delphipraxis.net/203797-quick-report-und-rechnungen.html)

mcinternet 25. Mär 2020 15:00

Quick Report und Rechnungen
 
Hallo die Gemeinde,

ich ärgere mich wieder einmal mit Quick Reports herum.

Ich habe die Konfig bewußt so aufgebaut, da es anders nicht ging.

Mein Report sieht wie folgt aus:

zwei Queries: Eine Rechnungskopf (qryReKopf), eine die einzelnen Zeilen (qryRePos) - diese beiden Tables werden vorher über einen Buchungslauf aufgebaut.

qryReKopf hat eine Master-Detail-Beziehung zu qryRePos (über die Rechnungsnummer).

Der QuickRep1 hat als DataSet die qryRePos. Der QuickRep1 hat ein PageHeader-, ein Groupheader- (Link PageHeaderBand1) und ein Detailband.
Das Detailband1 hat als Linkband PageHeaderBand1. Das PageHeaderBand1 hat kein Linkband.

Ich bin damit in der Lage, die Rechnungen (bisher ohne Summierung und Footer, also Endsummen, etc.) korrekt aufzubauen. So werden z.B. 5 Rechnungen mit den korrekten Anschriften und Positionen gedruckt (=> Preview).

AAAber: Was mir nun fehlt, ist der Footer. Und da kann ich machen, was ich will, ich bekomme kein vernünftiges Summary oder Footerband hin.
Entweder haut der mir da pro Einzelposition ne neue Seite hin, oder macht das Summaryband nur auf die letzte Seite.

Wer hat da eine Idee?

Gruss aus dem Odenwald

mcinternet

Rolf Frei 25. Mär 2020 16:44

AW: Quick Report und Rechnungen
 
Das ist so nicht gerade einfach ohne dass man den Report selber vor Ahgen hat. Kannst du eventuell den Report hier posten? Vermutlich reicht es, wenn nur die Bänder enthalten sind und du allfällige andere Sachen rauswirfst.

Ich würde es so probieren:
TQRRepot
- TGroup (Expression Rg.-Nr. Feld, FooterBand anhängen siehe unten )
- TQRBand (Detail mit RG-Kopfdaten und Adressdaten (Expression Adressenummer Feld))
- TQRSubDetail mit Rg.-Positionen
- TQRBand Groupfooter zur Rechnugsnummer TGroup (TQRGroup Rg.-Nr. oben)

Im Groupfooter platzierst du TQRExpr Komponenten mit deinen zu berechneden Felder. Ich nehme mal and deine Daten enthalten schon ein Feld für das Total der einzlenen Positionen. So würdest du da die Expression "SUM(total_position)" eingeben. Die anderen Properties der verschieden Bänder sollten dir vermutlcih klar sein. Einfach sicher sein, dass ForceNewPage überall False ist. Das newPage könttest du dann im OnAfterPrint des GroupFooters ausführen.

Das ist rein aus dem Kopf und vermutlich noch nicht so ganz das was du willst. Ohne deine Report-Form wird das aber sehr kompliziert zu beschreiben.

mcinternet 25. Mär 2020 16:51

AW: Quick Report und Rechnungen
 
Zitat:

Zitat von Rolf Frei (Beitrag 1460508)
Das ist so nicht gerade einfach ohne dass man den Report selber vor Ahgen hat. Kannst du eventuell den Report hier posten? Vermutlich reicht es, wenn nur die Bänder enthalten sind und du allfällige andere Sachen rauswirfst.

Da der Report außer dem hier bisher "keinen" Quellcode hat, macht es eigentlich keinen Sinn den zu posten, weil Du ja auch die Tables nicht hast.

Code:
procedure TqrRechnung.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
var i: Integer;
begin
  for i := 0 to Screen.FormCount - 1 do
  if Screen.Forms[i].ClassName = 'TQRStandardPreview' then
   begin
     Screen.Forms[i].BorderIcons:= Screen.Forms[i].BorderIcons-[biMinimize];
   end;
end;
erstmal Danke, ich werde Deine Idee mal aufgreifen und testen - dann berichten

beste Grüße aus dem Odenwald

mcinternet

mensch72 25. Mär 2020 16:54

AW: Quick Report und Rechnungen
 
..."oder macht das Summaryband nur auf die letzte Seite."

so&da ist es doch funktional&rechnerisch bei einer Rechnung mit lauter forttlaufenden Einzelpositionen auch korrekt.


Wenn du wirklich Saldierirung aller Einzelpositionen pro "Seite" willst, dann musst du dir pro Seite manuell ne Logik für oben ne Sonderpostion "als Startwert/Übertrag für die Seite" und unten ne Sonderposition "als ZwischenSumme der Seite" erzeugen.

Das geht mit QR in purer Handarbeit als berechnete SubPageHeader/SubPageFooter ganz sicher.


=> Das QR-Summaryband auf der letzten Seite. bleibt davon aber völlig unberührt!

mcinternet 25. Mär 2020 16:57

AW: Quick Report und Rechnungen
 
Zitat:

Zitat von mensch72 (Beitrag 1460510)
..."oder macht das Summaryband nur auf die letzte Seite."

Ich drucke ALLE Rechnungen auf einmal als Preview aus. Von daher muss ein Summary immer auf die letzte Seite der Blätter mit gleicher Rechnungsnummer.

beste Grüße

mcinternet

Rolf Frei 25. Mär 2020 17:03

AW: Quick Report und Rechnungen
 
Zitat:

Zitat von mcinternet (Beitrag 1460509)
Da der Report außer dem hier bisher "keinen" Quellcode hat, macht es eigentlich keinen Sinn den zu posten, weil Du ja auch die Tables nicht hast.

Es geht hier weniger um den Sourcecode, sondern der Struktur des Reports, also dem DFM.

mcinternet 25. Mär 2020 17:07

AW: Quick Report und Rechnungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Rolf Frei (Beitrag 1460512)
Es geht hier weniger um den Sourcecode, sondern der Struktur des Reports, also dem DFM.

ok - hier der Report

beste Grüße

mcinternet

Rolf Frei 25. Mär 2020 17:42

AW: Quick Report und Rechnungen
 
Setze mal beim PageFooterBand1.FroceNewPage auf False. Das könnte eventuell dein Problem schon lösen. ForceNewPage hast du ja beim PageHeader auch schon gesetzt.

Fals es nichts hilft, versuche mal meine Struktur mit einem Kopf als Detailband und SubDetailband für die Positionen zu lösen.

mcinternet 25. Mär 2020 18:39

AW: Quick Report und Rechnungen
 
Liebe Kollegen und Helfer,

ich mach damit morgen weiter

beste Grüße aus dem Odenwald

mcinternet

Rolf Frei 26. Mär 2020 14:25

AW: Quick Report und Rechnungen
 
Hab mir deine Report nochmals anbgeschaut und festgestellt, dass das so nicht funktionieren kann. Du brauchst auf jeden Fall ein Detailband (RG-Kopf) und ein Subdetailband (Rg-Positionen), also ein Master/Detail Report.

Das Deailband hängst du an das Kopf-Query. Das Subdetail gehört ans RG-Posiitonen Query. Von da aus kannst du dann deine Header und Footer , sofern du diese überhaupt benötigst, nach Bedarf anhängen. Den pageFooter, würde ich entfernen, wenn der eh nur leer ist. Das Summary hängst du ans Detialband mit den Kopfdaten. Im OnAfterPrint des Summary würde ich dann ein Newpage auslösen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 Uhr.
Seite 1 von 2  1 2      

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