iReport – Werte summieren

Im Subreport werden Werte dargestellt (z.B. Rechnungspositionen) und am Ende des Reports soll eine Summe der einzelnen Positionen ausgegeben werden… nur wie summieren?

Zunächst brauchen wir ein Feld, welches den zu summierenden Wert aufnimmt.
Als zweites eine Variable, in der die Summierung vorgenommen wird.

Ein Beispiel:

  • Das Feld $F{poswert} enthält den Positionswert und ist (der Einfachheit halber) direkt vom Feldklassen-Typ java.lang.Double.
  • Die Variable $V{summe} ist ebenfalls als java.lang.Double, wodurch wir uns Umwandlungen von String zu Java usw. in diesem Beispiel sparen.
  • Als „Ausdruck für Variable“ bekommt unsere Variable folgenden Inhalt
    new double($V{summe} != null ?
      $V{summe}.doubleValue() + ($F{poswert} != null ? $F{poswert}.doubleValue() : 0) :
      ($F{poswert} != null ? $F{poswert}.doubleValue() : 0)
  • Bei jedem Durchlauf des Detailbereichs (hier Position) wird nun über das Feld der Positionswert ausgegeben und in der Variable dieser zur (bisherigen) Gesamtsumme addiert. Nach dem letzten Durchlauf steht uns in hier also die Gesamtsumme zur Verfügung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.