Nun können wir den Unterbericht öffnen, indem wir über dem Platzhalter die rechte Maustaste betätigen und "Open Subreport" wählen.
JasperReports-Handbuch subreport3 open.png
Es erscheint ein neues Fenster mit einem leeren Entwurfsbereich. Sie könnten nun loslegen und im Detailbereich verschiedene Elemente gestaltet. Aber man muss bedenken daß ein Unterbericht für jeden Datensatz im Hauptbericht ausgeführt und eingebettet wird. Daher wird man vermutlich in den meisten Fällen im Unterbericht auf einen Filter zurückgreifen. Hier kommt dann wieder der oben genannte Parameter, z.B. "Kst" ins Spiel: Als ersten deklarieren wir den Parameter im Unterbericht, indem wir Links bei den Parametern die rechte Maustaste drücken, und "Hinzufügen..." wählen:
JasperReports-Handbuch subreport4 param.png
Standardmäßig nennt IReport den Parameter "parameter1". Rechts können wir in den Eigenschaften des Parameters den Namen ändern, und "Use as a prompt" abwählen:
JasperReports-Handbuch subreport4 param2.png
Weitere Änderungen sind nicht notwendig.
Wir ergänzen nun die "Report Query" JasperReports-Handbuch report query.png des Unterberichts von
um einen Filter, der mit der Abfragesprache XPATH formuliert wird. Im obigen Beispiel würden wir jetzt nur die Zeilen der Datenquelle auswählen, wo die Nummer der Kostenstelle mit der des Hauptberichts übereinstimmt. Wir erinnern uns: letztere steht im Parameter "Kst". Anhand der vorhandenen Report Query können wir sehen, dass die Kostenstelle in den Spalten ("col") mit der id=5 steht. Der Ausdruck wird also um den Filter
ergänzt:
JasperReports-Handbuch subreport4 query.png
Nun ändern wir im Entwurfsbereich des Unterberichts das Layout: für das aktuelle Beispiel wollen wir im Unterbericht eine Summe der Beträge für jede Kostenstelle ausgeben. Dazu müssen wir zunächst eine Gruppierung nach Kostenstelle hinzufügen:
JasperReports-Handbuch subreport5 group1.png
Im Gruppierungsassistenten wählen wir das Feld "Kostenstelle" als Gruppierungsmerkmal, und im nächsten Schritt sagen wir, daß ein Gruppenkopf hinzugefügt werden soll:
JasperReports-Handbuch subreport5 group2.png
Danach ist die Gruppierung als Band verfügbar:
JasperReports-Handbuch subreport5 group3.png
In die Gruppierung ziehen wir dann das Feld "Summe":
JasperReports-Handbuch subreport5 group4.png
Beim "Loslassen" des Feldes werden wir gefragt, ob wir eine Aggregatfunktion nutzen wollen; wir wählen hier die Summierung:
JasperReports-Handbuch subreport5 group5.png
Danach ist das Feld verfügbar. Wir setzen noch das Label "Summe:" davor.
JasperReports-Handbuch subreport5 group6.png
Den Detailbereich brauchen wir eigentlich nicht, wir können den ganz schmal machen. Danach speichern wir den Unterbericht, und gehen wieder zum Hauptbericht. Hier setzen wir den Unterbericht direkt unter das Feld "Kostenstelle":
JasperReports-Handbuch subreport15 align.png
Danach können wir den Bericht mit der jew. Datenquelle ausführen. Das Ergebnis läßt je nach Datenmenge ein bisschen auf sich warten: