GDS Business Intelligence GmbH

Beliebige Tabelleninhalte in Reporting Services addieren

Heute hatte ich einen Fall bei dem ich innerhalb einer Reporting Services Tablix eine Summe bilden sollte. Das alleine ist nicht besonders herausfordernd. Schwieriger wird es allerdings, wenn es sich bei den zu summierenden Werten um Werte handelt die innerhalb der Tablix selbst durch eine nicht-additive Aggregatsfunktion entstehen und somit auch nicht die Summe über das Dataset gezogen werden kann. Bei mir entstanden die Werte innerhalb der Tablix über die Funktion FIRST. Würde ich in diesem Fall die Summe über das Dataset ziehen hätte ich einen viel zu hohen Wert.

Die Lösung dieser Aufgabe liegt in VBA-Code den man hinter den Bericht legt. Die Idee: Man deklariert eine Variable und addiert in einer VBA-Funktion alle Werte auf diese Variable. Dann kann man diesen Wert später in der Summenzeile anzeigen.

Der VBA-Code sieht wie folgt aus. Zunächst die Variablendeklaration:

Dann die Funktion

Im Bericht schreibt man dann in das Feld in dem die zu addierenden Werte angezeigt werden den folgenden Ausdruck:

Und dort wo die Summe erscheinen soll kommt dieser Ausdruck hin:

Und schon werden die Zahlen, die über das Dataset nicht additiv sind, summiert.