AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Quickreport - Wie Summary je Seite als Zwischensumme?
Thema durchsuchen
Ansicht
Themen-Optionen

Quickreport - Wie Summary je Seite als Zwischensumme?

Ein Thema von PASST · begonnen am 14. Jul 2005 · letzter Beitrag vom 9. Aug 2005
Antwort Antwort
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 14. Jul 2005, 08:48
Hi allerseits,

Delphi4, Quickreport 3.

Wie kann ich in Quickreport eine Summary je Seite als Zwischensumme und nicht erst am Ende nach allen Details erstellen?

Ich kenne das PageFooter. Sehe aber nicht wie ich je Seite eine Zwischensumme dort einfügen kann.

Weiß jemand Rat?

Gruß
PASST
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 14. Jul 2005, 09:56
Hi,

kannst Du bitte die Frage präzisieren, wo ist das Problem ?

Für die Ausgabe der Zwischensumme (Seitensumme) würde ich auch den Pagefooter nehmen.
Einfach während die Positionen gedruckt werden die Seitensumme ermitteln und mit einem
Label auf dem PageFooter ausgeben.

Grüße

Frank
Frank
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 14. Jul 2005, 10:02
Wie kann ich denn die Zwischensumme einer Seite ermitteln?

Kann QReport das nicht selber? Dh. Werte bestimmter eines Feldes des Detailbands summieren und je Seite als Zwischensumme ausgeben?

Wie kann ich ermitteln, welche Details/Records auf einer Reportseite dargestellt werden und somit in der Zwischensumme auftauchen müssen?
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#4

Re: Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 14. Jul 2005, 10:42
Hi PASST,

Sourcemaker hat Recht. Das geht nur manuell.
Füge im Seitenfuss und im Berichtsfuss ein paar QRLabel ein

Delphi-Quellcode:

implementation

{$R *.dfm}

var
  seite, zNr: Integer;
  Summe, Gesamt: double;

procedure TForm2.QRBeforePrint(
  Sender: TCustomQuickRep; var PrintReport: Boolean);
begin
  seite := 0;
  Gesamt := 0;
end;

procedure TForm2.PageHeaderBand1BeforePrint(
  Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  inc(seite);
  zNr := 0;
  summe := 0;
end;

procedure TForm2.PageFooterBand1BeforePrint(
  Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  QRSumme.Caption := Format['%8.2f', [summe]);
  QRSeite.Caption := '- ' + IntToStr(Seite) + ' -';
end;

procedure TForm2.DetailBand1BeforePrint(
  Sender: TQRCustomBand; var PrintBand: Boolean);
begin

  Summe := Summe + Table['Wert'];
  Gesamt := Gesamt + Table['Wert'];
  inc(zNr);
  QRzNr.Caption := Format['%.3d', [zNr]);
end;

procedure TForm2.SummaryBand1BeforePrint(
  Sender: TQRCustomBand; var PrintBand: Boolean);
begin
  QRGesamt.Caption := Format['%8.2f', [Gesamt]);
end;
mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 14. Jul 2005, 10:52
Hallo BrunoT,

vielen Dank für deinen Codeschnipsel. Das schaut ja wirklich puppi-einfach aus

Danke nochmals,
PASST
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 8. Aug 2005, 15:43
Hi,

so jetzt komme ich mal wieder dazu, mit dem Problem zu beschäftigen. Tatsächlich ist dein Beispiel wunderbar einfach. Allerdings funktioniert es bei mir nicht! Ich habe Aufträge verschiedener Kunden und ihre Auftragspositionen per Master-Detail definiert. Die einzelnen Aufträge inkl. Positionen werden auch brav auf neuen Seiten angezeigt. Jedoch druckt der QReport die Zwischensumme alle mit Null. Ausschließlich die aller letzte Seite enthält den korrekten Wert.
Ich poste meinen Code hier mal.

Delphi-Quellcode:
procedure TFPacklisten.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  einh_blatt := 0;
  einh_total := 0;
  kund_nr := 0;
  packlinr := 0;
end;

procedure TFPacklisten.QRSubDetail1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  einh_blatt := einh_blatt + FMain.memPackli.fieldbyname('mengelief').asinteger;
  einh_total := einh_total + FMain.memPackli.fieldbyname('mengelief').asinteger;
end;

procedure TFPacklisten.DetailBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  if not ((kund_nr = FMain.memPkop.fieldbyname('kund_nr').asinteger)
  and (packlinr = FMain.memPkop.fieldbyname('packlinr').asinteger))
  then begin
    einh_blatt := 0;
    einh_total := 0;
    kund_nr := FMain.memPkop.fieldbyname('kund_nr').asinteger;
    packlinr := FMain.memPkop.fieldbyname('packlinr').asinteger;
  end;
end;

procedure TFPacklisten.PageFooterBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  QRLabelEinh_Blatt.caption := 'Einh./Blatt: ' + inttostr(einh_blatt);
  QRLabelTotal.caption := 'Total: '  + inttostr(einh_total);
end;
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Quickreport - Wie Summary je Seite als Zwischensumme?

  Alt 9. Aug 2005, 18:58
Moin,

ich sehe das die Unit-Globalen-Variablen initalisiert werden. Bei jeder Ausgabezeile werden sie mit dem Ausgabewert erhöht. Sie werden auch wieder zurückgesetzt. Aber wo werden sie ausgegeben. Bin ich blind?
Und genau nach dieser (nicht vorhandenen) Ausgabe, können bzw. müssen sie doch auch wieder zurückgesetzt werden.

Und dann habe ich da noch was anderes. Was ist FMain? Da sehe ich doch irgendwie einen Zirkelschluss (Main-Unit bindet Report-Unit ein und andersherum) -> autsch!
Unsauberer geht es nicht. sorry, aber das musste raus.

Nachdenkliche Grüsse...
Thorsten
  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 06:01 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