CrystalReports: Gruppen in Reports

Aus GEVITAS
Wechseln zu: Navigation, Suche

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:

CrystalReport Bsp Verknuepfung MAUFKO.jpg

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:

CrystalReport Grundsaetzlicher Aufbau einer Gruppe.jpg

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:

CrystalReport Tipps Gruppe Einfuegen.jpg

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.