Jasperreport

donmato

Grünschnabel
Hallo zusammen,

ich habe eine Frage bzgl. Jasperreport. Meine Aufgabe war folgende:

Eine Datenbankverbindung zu einer Datenbank danach erstellen eines Reports in Tabellenform von einer Tabelle names "KUNDEN".


Wenn man die Tabelle im Preview Modus betrachtet ist sie wie folgt aufgebaut:

Name Straße Land Alter Kundennr
.... ..... Deutschland ..... .......
.... .... Polen .... ...... etc.



Die Tabelle geht über drei Seiten und in der Spalte Land sind 5 verschiedene Länder die mehrfach vorkommen. Nun soll ich die Kunden nach den Ländern ordnen, d.h. ich hab ca, 14 Kunden aus Deutschland, 15 Kunden aus Polen etc.... Er soll alle Kunden aus Deutschland auf eine Seite machen und dann einen Seitenumbruch machen danach alle Kunden aus Polen auf eine Seite machen und wieder einen Seiteumbruch usw. bis das mit allen Kunden aus allen Ländern gemacht wurde.

Weiß jemand wie das geht und könnte mir dabei helfen bzw. Tipps geben?



Danke schonmal
 
Hi,

das geht am besten über die Gruppierungsfunktion. Die ist äquivalent zu der GROUP BY-Klausel in SQL. Und zwar kannst du nach einem Objekt oder einer Expression gruppieren. Diese Expression könnte das Feld "Land" sein.
Zusätzlich gibt es dann noch einen Group-Header und Group-Footer, wo du dann zum Beispiel das Land nochmal als Überschrift reinschreiben kannst, oder ähnliche ergänzende Informationen.
Wie das mit dem Seitenweie funktioniert, weiß ich jetzt nicht genau, aber ich bin mir sicher das es dazu eine Option gibt.
Womit erstellst du den Report. Falls du kein Geld ausgeben willst, kann ich dir iReport empfehlen, ist ein grafisches Tool, das schon relativ mächtig ist, auch wenn es manchmal ein bisschen nerven kann.
Das gute daran ist, das du nur ein Element anklicken musst, zum Beispiel eine Gruppe, und dann siehst du alle möglichen Option, zum Beispiel gibt es bei Group-Header die Option "Start on a new Page", damit könntest du mal rumspielen.
Für iReport gibt es auch eine kleine Einführung in Gruppen(die natürlich auch allgemein für jasperReports gilt): http://ireport.sourceforge.net/cap5.html

Ich hoffe ich konnte dir ein bisschen helfen.

Gruß
Matt
 
Super danke habe es hinbekommen. Eine Frage hätte ich jetzt noch. Die Tabelle wird mir jetzt richtig angezeigt im Preview und Alphabetisch nach Ländern geordnet d.h.
Afrika
Afrika
Afrika
Afrika
Deutschland
Deutschland
Deutschland
Deutschland
USA
USA
USA
USA
Zypern
Zypern
Zypern

Nun möchte für jedes Land einen Seitenumbruch... Afrika soll auf eine Seite gemacht werden dann Deutschland auf eine Seite usw.

Weiß jemand wie das funktioniert?
 
Wie ich schon geschrieben habe, solltest du dir mal den Parameter "Start on a new Page" bzw. "isStartNewPage" angucken.
Hab ihn gerade mal getestet, der tut genau das was du möchtest, und zwar jede einzelne Gruppe auf einer neuen Seite anfangen zu lassen.
In XML sieht das so aus:

XML:
<group name="..." isStartNewPage="true">
	<groupExpression><![CDATA[...]]></groupExpression>
	<groupHeader>
		...
	</groupHeader>
</group>
 
Zuletzt bearbeitet von einem Moderator:
Zurück