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:
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.
Erzeugen Sie eine neue Variable z.B. mit dem Namen "fs1" für erstes Fachsemester, und geben Sie der Variable folgende Eigenschaften:
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:
Und das Ergebnis sieht so aus:
Fertig. Man könnte nun noch weitere Fachsemester-Intervalle einfügen, oder z.B. eine Summe der Studierenden in der Regelstudienzeit.
Druckversion HTML
| | Seite 31 / 158 Letzter Update: 7.9.2023 Impressum| Datenschutz |