CrystalReports: Unterberichte: Unterschied zwischen den Versionen
Zeile 112: | Zeile 112: | ||
− | + | === Unterbericht speichern und platzieren === | |
Mit der Schaltfläche '''<code>OK</code>''' beenden Sie das Anlegen der Unterberichts. | Mit der Schaltfläche '''<code>OK</code>''' beenden Sie das Anlegen der Unterberichts. |
Version vom 18. März 2013, 21:29 Uhr
Inhaltsverzeichnis
1 Was sind Unterberichte?
Ein Unterbericht ist ein Bericht in einem Bericht. Man kann in einen Report fast beliebig viele Unterberichte einfügen. Ein Unterbericht wird folgendermaßen eingefügt:
- Man öffnet den Report, in den man einen Unterbericht einfügen will.
- Man wählt aus dem Menü Einfügen-->Unterbricht.,
- Man gibt einen Namen für den Unterbericht ein, der möglichst aussagekräftig ist.
- Man öffnet den Berichtsassistenten, um den Bericht festzulegen.
- Man legt im Register Verknüpfungen fest, wie der Unterbericht mit dem Hauptbericht verbunden werden soll.
Der Unterbericht hat alle Bestandteile eines "normalen" Berichts, also Kopf-Bereiche, Details und Fuß-Bereiche.
2 Warum Unterberichte?
Es gibt Situationen, wo man Details aus mehreren Tabellen unabhängig voneinander auflisten will. Beispiel:
In einem Lieferschein will man die Positionen des Lieferscheins aufführen, das ist klar. Die Positionen befinden sich dann üblicherweise im Detail-Bereich des Berichts. Es werden also alle Positionen des Lieferscheines aufgelistet.
Will man nun aber z.B. auch die Termine des Auftrags auflisten, stellt sich die Frage: Wo sollen die Terminfelder im Bereicht stehen?
In Detail-Bereich nicht, da stehen ja schon die Positionen! Würde man einfach einen neuen Detail-Bereich einfügen und da die Termin-Felder platzieren, würde das einen "Misch-Masch" zwischen Lieferschein-Positionen und Terminen geben. Hinter jeder einzelnen Position würden alle Termine stehen! Das geht also nicht.
Die Lösung bietet ein Unterbericht: Dieser Unterbericht benimmt sich wie ein eigenständiger Bericht, er hat einen Seiten- und Berichtskopf, einen Seiten- und Berichtsfuß und eben seinen eigenen Detail-Bereich! Der Unterbericht wird z.B. im Berichts-Fuss eingefügt. Damit wird am des Hauptberichts, wenn alle Lieferscheinpositionen aufgelistet wurden, eine Liste mit den Termin-Positionen aufgeführt.
Auf diese Art und Weise könnte man nun auch noch z.B. die Memo-Texte des Auftrags auflisten: Man fügt einfach einen weiteren Unterbericht ein, in dessen Detail-Bereich die Auftrags-Memos aufgeführt werden!
3 Anwendung eines Unterberichts am Beispiel eines Lieferscheins mit Memo-Texten
An diesem Beispiel wird die Anwendung eines Unterberichts erläutert. Wenn Sie dieses Beispiel nachvollziehen möchten, öffnen Sie einen bestehenden Lieferschein-Bericht und speichern ihn sicherheitshalber gleich unter einem anderen Namen ab.
Der Unterbericht soll im Berichtsfuß stehen, also am Ende der Lieferschein-Positionen. Sie könnten ihn auch im Berichtskopf platzieren, wenn Ihnen das lieber ist. Nur im Detail-Bereich, im Seitenkopf und Seitenfuß macht er keinen Sinn.
3.1 Eine Sektion im Berichtsfuß einfügen
Damit wir Platz haben für unseren Unterbericht, klicken Síe links im Berichtsfuß mit der rechten Maustaste und wählen aus dem Menü Sektion unterhalb einfügen.
3.2 Unterbericht einfügen
Wählen Sie aus dem Menü Einfügen-->Unterbricht. Geben Sie einen Namen für den Unterbericht ein, der möglichst aussagekräftig ist. Beispiel:
Dann öffnen Sie den Berichtsassistenten mit einem Klick auf die entsprechende Schaltfläche Berichtsassistent, um die Einzelheiten des Berichts festzulegen.
3.2.1 Datenquelle festlegen
Genau wie bei einem "normalen" Report müssen nun die Datenquelle festlegen, also z.B. die REFLEX-Datenbank. Normalerweise ist das der ODBC-Eintrag "REFLEX".
Mit der Schaltfläche Ende
geht's weiter.
3.2.2 Tabelle und Felder festlegen
Nun müssen Sie auswählen, mit welcher Datenbank-Tabelle Sie arbeiten wollen, in unserem Beispiel ist es die Tabelle MEMOTEXTE
:
Mit der Schaltfläche Weiter
geht's weiter.
Anschließend müssen Sie auswählen, welche Felder Sie in den Bericht übernehmen wollen.
In unserem Beispiel sind das die Felder:
-
AUFTRNR
(Auftragsnummer) -
BETREFF
(Die kurze Betreffszeile) -
MEMOTEXT
(Der eigentliche Memo-Text) -
DATUM
(Das Erfassungsdatum)
Mit der Schaltfläche Weiter
geht's weiter.
Die Seiten 'Gruppierung und Datensatzauswahl können wird in unsrem Beispiel überspringen. Natürlich können Sie in Ihrem konkreten Fall durchhaus gruppen wollen oder nur bestimmte Datensätze auswählen wollen. In diesem Fall müssten Sie auf diesen Seite entsprechende Angaben machen.
Mit der Schaltfläche Ende
beenden Sie den Assistenten.
3.2.3 Verknüpfungen
Dies ist ein sehr wichtiger Punkt!
Über die Verknüpfung legen Sie fest, wie die Daten im Unterbericht gefiltert werden sollen. In unserem Fall ist es ja so, dass wir nur die Memo's eines bestimmten Auftrags sehen wollen, nämlich des Auftrags, auf den sich auch der Lieferschein bezieht! Also müssen wir dem Unterbericht "sagen", dass er nur die Daten auflisten soll, die zu der Auftragsnummer des Lieferscheins gehören.
- Man legt im Register Verknüpfungen fest, wie der Unterbericht mit dem Hauptbericht verbunden werden soll.
Suchen Sie dazu in der linken Tabelle das Feld AUFTRNR
aus. Doppelklicken Sie darauf! Nun passiert folgendes:
- CrystalReports sucht im Unterbericht nach einem Feld mit dem gleichen Namen. Wir haben es oben in den Unterbericht eingefügt (und zwar nur deshalb, weil so die Verknüpfung einfacher wird).
- Dann erstellt CrystalReports automatisch ein Parameter-Feld
?pm-MaufKo.AuftrNr
. Dieses Parameter-Feld stellt die Verbindung zwischen der AUFTRNR des Hauptberichts und der AUFTRNR des Unterberichts her!
3.3 Unterbericht speichern und platzieren
Mit der Schaltfläche OK
beenden Sie das Anlegen der Unterberichts.
Der Unterbericht wird nun im Hauptbericht platziert. Dazu "hängt" CrystalReports den Unterbericht an den Maus-Cursor: Bewegen Sie die Maus zu Stelle, an der Sie den Unterbericht einfügen wollen.
Klicken Sie erst mit der linken Maustaste, wenn der Maus-Cursor an der richtigen Stelle steht!