CrystalReports: Gruppen in Reports
1 Allgemeines
Eine wichtige Funktion von CrystalReports ist es, dass man Daten gruppieren kann. Damit kann man die Daten aus dem Detailbereich in Abschnitte unterteilen.
2 Aufgaben von Gruppen
Eine Gruppe wird immer eingesetzt, wenn bei einer Änderung eines Datenfeldes im Detailbereich eine Überschrift (Gruppenkopf) und (optional) ein Summenbereich (Gruppenfuß) ausgegeben werden soll.
Beispiel:
Sie wollen eine Liste mit Auftragdaten aus Kopf, Postionen und Fuß erzeugen. Also erstellen Sie einen neuen Report, in dem Sie die drei benötigten Tabellen der Datenbank einbauen.
- Auftragskopf (MAUFKO)
- Auftragspositionen (MAUFPO)
- Auftragsfuß (MAUFFU)
Sie verknüpfen die Tabellen so:
Beachten Sie die Hinweise zum Verknüpfen von Tabellen.
Dann bauen Sie im Detailbereich die gewünschten Felder ein. Beispiel (ohne Gruppe):
Auftr.Nr. Kunde Pos. Art.Nr. Menge Bezeichnung Ges.Summe ------------------------------------------------------------------- 1000 Meier 1.1 4711 2 Irgendwas 1.234,56 1000 Meier 1.2 4712 1 Auchwas 1.234,56 1000 Meier 1.3 4713 11 Nawas 1.234,56 1001 Müller 1.1 5711 20 Äpfel 2.234,00 1001 Müller 1.2 5712 21 Birnen 2.234,00 1001 Müller 1.3 5713 1 Orangen 2.234,00
Das ist ganz nett so, aber die Spalten Auftr.Nr., Kunde und Ges.Summe wiederholen sich mehrfach, das ist unschön, verwirrt und nimmt Platz weg!
Wenn man sich den Aufbau eines Auftrags im Programm anschaut, dann sieht das ja so aus:
Genau diesen Aufbau kann mit im Report mit einer Gruppe erzeugen! Dazu klickt man im Detailbereich einmal kurz auf die Auftragsnummer mit der linken Maustaste. Dann wählt man aus dem Menü "Bearbeiten" (oben) "Einfügen⇒Gruppe" aus. Ein Dialogfenster wird eingeblendet, in dem man ein paar Optionen für die Gruppe angeben kann:
Das aktuell ausgewählte Feld ist schon ausgewählt. Wenn Sie ein anderes Feld wollen, können Sie es hier auswählen.
* Immer wenn sich der Wert des ausgewählten Feldes ändert, wird der Gruppenkopf ausgegeben. Am Ende der Gruppe (also wenn sich der Wert wieder ändert), wird der Gruppenfuß aufgerufen.
- Die Reihenfolge kann Aufsteigend oder Absteigend gewählt werden.
- Wenn man eine Gruppe einrichtet, wird der Report immer nach dem ausgewählten Feld sortiert! Hat man im Report eine Sortierung gewählt, wirkt sich diese nur innerhalb der Gruppe aus.
- Im Normalfall kann man die Standardoptionen mit OK bestätigen.
In den Report werden nun zwei neue Bereiche eingefügt: Ein Gruppenkopf und ein Gruppenfuß.
Nun kann man die Felder "Auftr.Nr." und "Kunde" aus dem Detailbereich in den Gruppenkopf ziehen, die Summe in den Gruppenfuß. Unser Report sieht nun so aus:
Auftr.Nr. Kunde Pos. Art.Nr. Menge Bezeichnung Ges.Summe ------------------------------------------------------------------- 1000 Meier 1.1 4711 2 Irgendwas 1.2 4712 1 Auchwas 1.3 4713 11 Nawas 1.234,56 1001 Müller 1.1 5711 20 Äpfel 1.2 5712 21 Birnen 1.3 5713 1 Orangen 2.234,00
Schon viel besser, oder? Mit ein Bisschen Kosmetik kann man nun die Spalten verschieben, Linien einziehen usw. Das Ergebnis:
Auftr.Nr. Kunde Pos. Art.Nr. Menge Bezeichnung Ges.Summe --------------------------------------------------- 1000 Meier --------------------------------------------------- 1.1 4711 2 Irgendwas 1.2 4712 1 Auchwas 1.3 4713 11 Nawas --------------------------------------------------- 1.234,56 =================================================== 1001 Müller --------------------------------------------------- 1.1 5711 20 Äpfel 1.2 5712 21 Birnen 1.3 5713 1 Orangen --------------------------------------------------- 2.234,00 ===================================================
Man könnte die Gesamtsumme auch im Gruppenkopf unterbringen! Dann wird die Summe in einer Zeile mit dem Kopf angezeigt:
Auftr.Nr. Kunde Pos. Art.Nr. Menge Bezeichnung Ges.Summe =================================================== 1000 Meier 1.234,56 --------------------------------------------------- 1.1 4711 2 Irgendwas 1.2 4712 1 Auchwas 1.3 4713 11 Nawas =================================================== 1001 Müller 2.234,00 --------------------------------------------------- 1.1 5711 20 Äpfel 1.2 5712 21 Birnen 1.3 5713 1 Orangen ===================================================
3 Verschachteln von Gruppen
Gruppen können ineinander verschachtelt werden. Die Verarbeitung erfolgt dabei von der obersten zur untersten Gruppe.