Zum Hauptinhalt springen

Weitere Beispiele

Master-Detail Bericht mit Master Daten jeder Seite wiederholen

Das Beispiel zeigt einen Master Detail Bericht der alle Trassen (EL_SEGMENT) und die Rohre (EL_DUCT) der jeweiligen Trasse anzeigt.

Das Prinzip kann auf jede Master-Detail Ausgabe angewendet werden.

Am Kopf jeder Seite wird bei dieser Methode, wenn nicht alle Rohre auf eine Seite passen, der Kopf mit den Trassen Informationen wiederholt.

Der Trick hierbei ist die Felder der Master Tabelle (EL_SEGMENT) nicht in den Band Bereich zu schreiben sondern in das Kopf Band des untergeordneten Detail Bandes.

Vorschau:

Designer:

Aufsetzen:

Zuerst einen neuen Bericht aufsetzen auf die Tabelle EL_SEGMENT (Band "A")

select * from EL_SEGMENT where {Parameter.Filter} order by FID limit 100 

Um den Test zu beschleunigen, wurde ein "limit 100" gesetzt um nur 100 Trassen Datensätze zurück zugeben. Dies ist nur zum Test damit der Bericht schneller erzeugt werden kann und muss für den Produktiv Bericht entfernt werden.

Fügen Sie keine Felder in das Band "A" ein bzw entfernen Sie vorhandene Felder.

Markieren Sie das Band "A" und tragen Sie links bei "Unterdrücken" den wert "true:" ein.

Diese verhindert das der Bereich gedruckt wird und somit platz einnimmt. Wenn Sie dies nicht machen werden Sie einen Versatz feststellen.

Klicken Sie dann auf "Kind Band" um ein Detail Band "B" hinzuzufügen.

Geben Sie den SQL ein der zu allen Trassen alle Rohre zurück liefert.

Im dem Beispiel ist {A.FID} die FID der jeweiligen Trasse

select * from EL_DUCT where fid in (select fid_duct from EL_SEGMENT_DUCT where fid_segment={A.FID})

Fügen Sie in Band "B" Alle Felder von Rohr ein die sie sehen wollen. Markieren Sie Band "B" und klicken Sie dann links den Knopf "Kopf Band" hinzufügen.

Aktivieren Sie dann links die Option "Auf jeder Seite wiederholen". Dies erzwingt das der Kopf auf jeder Seite erscheint.

Klicken Sie dann den "T"-Knopf um ein Textfeld in das Kopf Band einzufügen. Ändern Sie dann den Text auf das Feld um das sie aus der Tabelle EL_SEGMENT (TRASSE) ausgeben wollen. z.B. {A.FID}

Beachten Sie das Sie nur Felder von Bändern ausgeben können die dem Kopf Band übergeordnet sind!

Wenn Sie tiefer verschachtelte Master Detail Bänder haben müssen Sie statt "A" den Aliasnamen des jeweiligen Bandes verwenden aus dem die Daten gelesen werden sollen.

Den Aliasnamen finden sie jeweils am Anfang des SQL Bandes.