AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Summenbildung im QuickReport?
Thema durchsuchen
Ansicht
Themen-Optionen

Summenbildung im QuickReport?

Ein Thema von mlspider · begonnen am 7. Feb 2006 · letzter Beitrag vom 31. Aug 2007
Antwort Antwort
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

Summenbildung im QuickReport?

  Alt 7. Feb 2006, 17:59
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hallo,

nach einer Abrage, die in einem DBGrid angezeigt werden:

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'; ü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?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Summenbildung im QuickReport?

  Alt 7. Feb 2006, 18:10
Du könntest im AfterScroll Event deines TDataset Abköömlings die Summe bilden:

Gesamt := Gesamt + Dataset.FieldByName('Gesamtnetto').AsFloat ; Im OnBeforePrint Ereignis deines Summarybands kannst Du dann ein Label mit deinem Wert befüllen.

Aber kann Quickreport wirklich nicht von Haus aus Summen bilden Ist schon ne Weile her, und ich hab Quickreport zur Zeit gar nicht zur Hand.
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Summenbildung im QuickReport?

  Alt 7. Feb 2006, 18:14
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)
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
omata

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

Re: Summenbildung im QuickReport?

  Alt 7. Feb 2006, 21:06
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
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Summenbildung im QuickReport?

  Alt 7. Feb 2006, 21:23
Werde es probieren. Danke.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
gogl1985

Registriert seit: 21. Feb 2006
13 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Summenbildung im QuickReport?

  Alt 30. Aug 2007, 07:41
Zitat von Jelly:
Du könntest im AfterScroll Event deines TDataset Abköömlings die Summe bilden:

Gesamt := Gesamt + Dataset.FieldByName('Gesamtnetto').AsFloat ; Im OnBeforePrint Ereignis deines Summarybands kannst Du dann ein Label mit deinem Wert befüllen.

Aber kann Quickreport wirklich nicht von Haus aus Summen bilden Ist schon ne Weile her, und ich hab Quickreport zur Zeit gar nicht zur Hand.
Genauso habe ich das gemacht, jedoch wird der letzte Datensatz immer doppelt summiert, da Afterscroll warscheinlich am Ende nochmal aufgerufen wird. Wie kann ich das verhindern, bzw. feststellen das ich beim letzten Datensatz bin ?

Vielen Dank
  Mit Zitat antworten Zitat
gogl1985

Registriert seit: 21. Feb 2006
13 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Summenbildung im QuickReport?

  Alt 30. Aug 2007, 10:16
Habe das Problem selbst wie folgt gelöst:

Delphi-Quellcode:
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;
Anzahl der Datensätze mit RecordCount abfragen und entsprechend berechnen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Summenbildung im QuickReport?

  Alt 30. Aug 2007, 10:35
Wobei .RecordCount nicht immer das richtige Ergebnis liefert.
Markus Kinzler
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#9

Re: Summenbildung im QuickReport?

  Alt 31. Aug 2007, 10:10
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...
  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 15:52 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