![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Summenbildung im QuickReport?
Hallo,
nach einer Abrage, die in einem DBGrid angezeigt werden:
SQL-Code:
übergebe ich die Daten an einem QuickReport. Alle Daten, einschließlich dem Gesamt-Nettobetrag einer jeweiligen Rechnung wird korrekt im DetailBand dargestellt. Wie kann ich nun vielmehr QuickReport dazu veranlassen, im SummaryBand die Summe aller Nettobeträge anzuzeigen?
Memo1.Text:='SELECT r.nr, r.kundennr, r.datum, r.sdat, r.bemerkung, r.gesamtnetto, r.kostenart, k.name FROM kunden k, rechnungen r WHERE (rechnungen.kundennr=kunden.nr) AND (kunden.name='+''''+Edit1.Text+''''+') AND datum BETWEEN '+''''+DateToStr(DateTimePicker1.Date)+''''+' AND '+''''+DateToStr(DateTimePicker2.Date)+''''+'ORDER BY datum';
|
Re: Summenbildung im QuickReport?
Du könntest im AfterScroll Event deines TDataset Abköömlings die Summe bilden:
Delphi-Quellcode:
Im OnBeforePrint Ereignis deines Summarybands kannst Du dann ein Label mit deinem Wert befüllen.
Gesamt := Gesamt + Dataset.FieldByName('Gesamtnetto').AsFloat ;
Aber kann Quickreport wirklich nicht von Haus aus Summen bilden :gruebel: Ist schon ne Weile her, und ich hab Quickreport zur Zeit gar nicht zur Hand. |
Re: Summenbildung im QuickReport?
Ich habe jetzt alle Varianten im QR durch. Im SummaryBand finde ich keine passende Eigenschaft zur Summenbildung.
(Was für ein Typ soll "Gesamt" sein? Jedenfalls nicht Integer) |
Re: Summenbildung im QuickReport?
Hallo mlspider,
dafür ist die TQRExpr-Komponente da. Wähle mal im Objektinspektor Expression aus. Dann geht ein Fenster auf, indem dir die möglichen Funktionen aufgelistet werden und du deinen Ausdruck zusammenbauen kannst. Also mit SUM(Query.Datenbankfeld) bekommst du dann die Summe. MfG Thorsten |
Re: Summenbildung im QuickReport?
Werde es probieren. Danke.
|
Re: Summenbildung im QuickReport?
Zitat:
Vielen Dank |
Re: Summenbildung im QuickReport?
Habe das Problem selbst wie folgt gelöst:
Delphi-Quellcode:
Anzahl der Datensätze mit RecordCount abfragen und entsprechend berechnen.
procedure TForm1.Query1AfterScroll(DataSet: TDataSet);
begin anzahl_ds:=anzahl_ds+1; if anzahl_ds>Query1.RecordCount then begin end else begin if Query1.FieldByName('Lagerbestand').AsString='' then begin summenetto := summenetto + Query1.FieldByName('Preis').AsFloat; end else begin summenetto := summenetto + (Query1.FieldByName('Preis').AsFloat*Query1.FieldByName('Lagerbestand').AsFloat); end; end; end; |
Re: Summenbildung im QuickReport?
Wobei .RecordCount nicht immer das richtige Ergebnis liefert.
|
Re: Summenbildung im QuickReport?
Noch ein Tipp meinerseits:
Im AfterPrint-Ereignis vom entsprechenden DetailBand die Summe bilden ;) Und noch ein Tipp: im BeforePrint-Ereignis des Reports unbedingt die SummenVariable auf 0 setzen!! DAs gilt im Übrigen für alle 'berechneten' Variablen... Warum?? Nun, falls du vor dem Ausdruck erst eine Preview machst(manche Kunden möchten das gerne...) , und daraus dann den Papierdruck gestartet wird, hast du im Summaryband doe doppelte Summe, weil Quickreport alle Printereignisse ja nochmal durchläuft... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 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 by Thomas Breitkreuz