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;