SuperX

KontaktMail für InfosSuchenLogin

<span id="anchor-33"></span>Gruppierung ohne eigenes Band

Bei der Gruppierung in JasperReports wird in der Regel ein horizontales Band für die Gruppierungsebene angelegt. Das führt dazu, daß man zeilenorientiert gruppiert. In manchen Fällen kann es gewünscht sein, in den Spalten einer Tabelle zu gruppieren. Hier ein Beispiel für das Ziel:

JasperReports-Handbuch gruppierung spalten1 vorlage.png

In dem Beispiel wird in den Zeilen nach dem Merkmal Fach gruppiert. Zusätzlich wird noch in den Spalten nach Fachsemestern gruppiert. Um dieses Layout zu realisieren, muss man wie folgt vorgehen:

Erzeugen Sie ein Column Header Band, und ein Group Footer-Band für die Gruppierungsebene Fach. Warum Group Footer? Weil innerhalb des Fachs nochmal gruppiert werden soll, und daher erst nach dem Gruppieren nach Fach nach Fachsemestern gruppiert wird. Ein Detail-Band gibt es hier nicht.

JasperReports-Handbuch gruppierung spalten3 band.png

Erzeugen Sie eine neue Variable z.B. mit dem Namen "fs1" für erstes Fachsemester, und geben Sie der Variable folgende Eigenschaften:

JasperReports-Handbuch gruppierung spalten2 variable 1fs.png

Zur Erläuterung: Die Variable filtert die Datensätze gemäß dem Ausdruck in Variable Expression, und tut dies auf der Gruppierungsebene "fach". Die Variable Expression ist eine für unsere Zwecke sehr nützliche Java-Kurzfassung einer IF-THEN-Bedingung, und meint:

Wenn der Inhalt des Feldes "Anzahl Fachsemester" gleich 1 ist, dann gib die Summe der jew. Studierenden aus, wenn nicht, dann gib 0 aus.

Analog kann man noch die Variable "fsgr13" für "Fachsemester > 13" anlegen.

Danach kann man die Variablen "fs1" und "fsgr13" in das Band "Fach Group Footer 1" ziehen, und noch das Feld "Summe" für die Gesamtsumme. Dann tragen wir im Column Header Band noch die Spaltenüberschriften ein. Insgesamt sieht Berichtsentwurf dann so aus:

JasperReports-Handbuch gruppierung spalten4 band.png

Und das Ergebnis sieht so aus:


JasperReports-Handbuch gruppierung spalten5 band.png

Fertig. Man könnte nun noch weitere Fachsemester-Intervalle einfügen, oder z.B. eine Summe der Studierenden in der Regelstudienzeit.