Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden

Reportdesign mit Crystal Reports: Verwaiste Gruppenköpfe vermeiden

Wer schon ein­mal mit Crystal Reports grup­pierte Berichte erstellt hat, der wird sich mög­li­cher­weise auch über fol­gen­des Phänomen geär­gert haben:

Der Gruppenkopf steht auf der einen Seite ganz allein ("ver­waist") unten auf der Seite, die eigent­li­che Gruppe wird dann voll­stän­dig auf der nächs­ten Seite angezeigt:

crystalreports_gruppenkopf_11

Mit der Option "Gruppe zusam­men­hal­ten" könnte man das Problem natür­lich behe­ben, das ist aber oft nicht gewünscht, da damit zu viel Platz ver­schenkt würde. Die Option "Gruppenkopf auf jeder Seite wie­der­ho­len" ist zwar auf jeden Fall zu emp­feh­len, löst das Problem aber auch nicht wirklich:

crystalreports_gruppenkopf_2


Folgender Trick schafft hier Abhilfe:

  • Den Gruppenkopf split­ten ("Bereich unter­halb ein­fü­gen") in Gruppenkopf 1a und 1b
    crystalreports_gruppenkopf_4
  • Gruppenkopf 1a ent­hält den eigent­li­chen (d.h. bis­he­ri­gen) Gruppenkopf
  • Alle Objekte aus dem Detailbereich in den Gruppenkopf 1b kopieren
    crystalreports_gruppenkopf_5
  • -> Bereichsassistent -> Gruppenkopf 1 -> Option "Zusammenhalten" akti­vie­ren (Achtung – aber NICHT "Gruppe zusammenhalten")
    crystalreports_gruppenkopf_8
  • Bedingte Formatierung für die Unterdrückung Gruppenkopf 1b erstel­len (-> Bereichsassistent -> Gruppenkopf 1b -> Schaltfläche "x+2" neben Option "Unterdrücken" – Achtung, "Unterdrücken" nicht aktivieren!)
    crystalreports_gruppenkopf_61
  • Folgende Formel einfügen:
    crystalreports_gruppenkopf_7

Nun wird zu jeder Gruppe (im Gruppenkopf) min­des­tens eine Zeile unter dem Gruppenname ange­zeigt, wenn dies nicht mehr auf die Seite passt, dann wird der kom­plette Gruppenkopf auf der nächs­ten Seite dargestellt.

crystalreports_gruppenkopf_9

Related Posts

Bedingte Unterdrückung Detailbereich wie beschrieben.

Bedingte Unterdrückung Gruppenkopf 1b:

whi­le­prin­ting­re­cords;
{}=Previous({})

Sonst wird nach einem Seitenumbruch inner­halb der Gruppe der erste Datensatz der Seite dop­pelt aus­ge­ge­ben. Und inner­halb der Gruppe habe ich kein Problem mit ver­wais­ten Datensätzen. Siehe Abbildung: Xtreme Anatomic Mens Saddle ist doppelt.

Und vie­len Dank für den Beitrag.

whi­le­prin­ting­re­cords;
{Gruppierfeld}=Previous({Gruppierfeld})

Gruppierfeld natür­lich. Bug im Editor, hat die spit­zen Klammern fehlinterpretiert …

In der beding­ten Unterdrückung von GK 1b fehlt noch die Einschränkung
"and not(OnFirstRecord)", sonst wird die aller­erste Gruppe fehlerhaft
dar­ge­stellt. Es ist halt genau die Invertierung der Bedingung für das
Unterdrücken des Detailbereiches: not(A or B) = not(A) and not(B)

Ansonsten: genau das, was ich heute gesucht hatte 🙂

Comments are closed.

Pin It on Pinterest