Rave Reports: CalcTotal und CalcController – Zwischensummen korrekt zählen

Mit den CalcTotal und CalcController Komponenten hat man in Rave Reports gute Tools zur Summenberechnung, zum Zählen oder auch zur Berechnung eines Durchschnitts zur Verfügung. Einiges gibt es aber zu beachten beim Einsatz dieser Komponenten.

Mitunter hat man einen Report mit einem Hauptband (beispielsweise den Daten eines Kunden) und einem Detailband, etwa mit Umsätzen zu dem Kunden. Beiden ist eine eigene DataView zugeordnet, wobei für das Umsatzband das Kundenband das zugeordnete Controllerband ist. Nun gilt es auch noch beide Tabellen miteinander zu verknüpfen, was über die Eigenschaften MasterDataView, Masterkey (Kundentabelle) und DataView, Detailkey (Umsatztabelle) gelingt.

Fügt man nun noch die passenden Felder aus der Kundentabelle für das Band mit den Kundendaten hinzu, und dies ebenso für das Detailband mit den Umsatzdatenfeldern, so bekommt man recht schnell im Designer einen Report hin, der oben die Kundendaten anzeigt und darunter entsprechende Umsatzdaten.

Nun möchte man aber oft in einem Fußbereich (Body Footer, zugeordnet dem Band mit den Umsatzdaten) auch noch Berechnungen ausgeben, also zum Beispiel Umsatzsummen oder auch einfach die Anzahl der Umsatzeinträge.

Berechnungen im Body Footer ausgeben

Hier geht man wie folgt vor:

  1. Man markiert den Hauptreport im Baum rechts, klickt auf Parameters und erstellt so Variablen, beispielsweise AnzahlUmsaetze
  2. Nun markiert man das Detail – Band, welches die Umsätze enthält, und fügt aus der Palette Report die Komponente CalcTotal hinzu.

Geht es um die Berechnung der Anzahl der Einträge, setzt man für CalcTotal folgende Eigenschaften:

  • CalcType = ctCount
  • DataView = DataView mit den Umsatzdaten
  • DestParam = die eben erstelle Variable AnzahlUmsaetze
  • Controller = Das DataBand, welches die Umsatzdaten enthält
  • DataField = ein zählbares Feld aus der Umsatz DataView – Tabelle

Im Body Footer des Umsatzbereiches fügt man nun eine DataText Komponente hinzu (Palette Report). Im Eigenschaftsdialog der DataText Komponente wählt man nun DataField und im Dialog, der sich öffnet, wählt man unter der Auswahlliste Project Parameters die Variable AnzahlUmsaetze aus.

Startet man seinen Report nunmehr, so kann es sein, dass an dieser Stelle 1 ausgegeben wird, obwohl vielleicht 5 Einträge vorhanden sind. Hierzu im Baum rechts die CalcTotal Komponente wählen und RunningTotal auf True setzen. Nun erscheint die korrekte Anzahl bei der Ausgabe. Das klappt wunderbar, solange man einen Kunden mit dessen Umsatzdaten hat. Hat man mehrere Kunden und Umsatzdaten ergibt sich das Problem das CalcTotal alle Umsatzeinträge der verschiedenen Kunden zusammenzählt, beim ersten Kunden stimmt es noch, aber ab dem zweiten werden die Einträge von Kunde 1 und von Kunde 2 aufaddiert usw.

Zwischensummen korrekt berechnen mit CalcController

Um dies zu lösen, gilt es noch eine CalcController Komponente hinzuzufügen. Diese fügt man in einen Kopfbereich (Body Header) des Umsatzblockes hinzu und weist dieser einen InitialValue von 0 zu. Bei unserer CalcTotal Komponente weist nun unter Initializer im Eigenschaftsfenster der Komponente die soeben hinzugefügte CalcController Komponente hinzu.

Dies bewirkt, dass der Zähler AnzahlUmsaetze bei jedem Kunden mit Beginn der Ausgabe von dessen Umsatzdaten auf 0 zurückgesetzt wird, sodass am Ende immer nur die Anzahl der Umsatzeinträge für genau diesen Kunden ausgegeben werden. Beim nächsten Kunden wird die Anzahl wieder auf Null zurückgesetzt und unsere Anzeige ist endlich korrekt.

Tipp: Bei RaveReports ist die Reihenfolge wichtig. Daher müssen CalcTotal Komponenten immer im Baum rechts oberhalb der Komponente liegen, die die berechneten Daten ausgibt.

Werbung

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Angebote bei HP
» Extra Aktion: 10% Gutschein auf HP 17" Notebooks: HP Notebook, HP Pavilion, HP Envy und Omen Modelle zur Auswahl bis 30. Mai (Gutschein: HPTD1XN518)
» HP Extra Aktion: 100 Euro Extra sparen bei HP Notebooks ab 999 Euro. Gutscheincode und alle Infos hier im HP Store

Angebote bei Lenovo
» Lenovo Top Wochenangebote: Heiße ThinkPad und IdeaPad Wochenangebote mit großer Auswahl und dicken Rabatten
» Lenovo Last Chance Gelegenheit: Lenovo Last Chance Angebote mit Notebooks zu Top Preisen hier, u.a. Lenovo IdeaPad 320 und mehr mit bis zu 26% Rabatt. Top Gelegenheit gut ausgestattete Lenovo Notebooks sehr günstig zu bekommen.

Weitere Möglichkeiten
» Top bei Otto: Sehr gute HP Notebook Angebote, teils mit Extras wie 4 Jahre Garantie und mehr
» Notebooksbilliger.de WM Special:Jede Woche 11 neue Top Angebote>
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick

Aktuelle Bitdefender Aktionen:
» Neue Aktion: Bitdefender 39 Euro Flat mit 5 Geräten
» Bitdefender +1 Jahr dazu-Aktion
» „Sicher durch den Sommer“ - Bitdefender Jahres Lizenz mit bis zu 36% Rabatt kaufen, inklusive VPN Basis-Paket.
» Top für neue PCs! Bitdefender Internet Security 2018 PC Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95

Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.