Sich abwechselnde Berichtsbereiche abhängig von Parametern

Guten Tag,

ich würde gerne einen Bericht erstellen, welche aus 2 Teilstücken besteht.
Diese Teilstücke wechseln sich ab, wobei der 1. Teil immer identisch ist (mit der Ausnahme von kleinen 2 Textfeldern) und der 2. Teil 1-n Seiten haben kann, abhängig von der Anzahl von Einträgen in der Spalte “Zuordnung”.

Beide Teile erhalten alle Informationen aus dem gleichen Datatable.

Ich bin mir dessen bewusst, dass es möglich wäre die Teile einzeln nacheinander zu erstellen und dann zusammenzuführen. Ich würde aber gerne wissen ob die Funktion der Berichtsabschnitte dahingehend ausreicht, um die Anzahl der LL-Aufrufe im Code bei einem zu belassen.

Vielen Dank für Ihre Hilfe.

Wie bzw. aus was bestehenden denn die beiden genannten Teilstücke?

Sind das vom Layout her zwei komplett unterschiedliche Berichte, die sich nur zufällig die gleiche Datenquelle/DataTable teilen?

Oder sind das einfach nur zwei Tabellen im gleichem Bericht mit unterschiedlichen Spalten?

Denn man könnte ja sonst ganz einfach im Berichtscontainer die gleiche Tabelle zweimal definieren mit den jeweils passenden Spalten pro Teilstück und vielleicht bei der zweiten Tabelle im Berichtscontainer noch “Umbruch vor Ausgabe” auf Ja stellen oder sowas in der Art.

Es ist quasi eine Front-Page mit Informationen und einzelnen Textfeldern, die aus der Tabelle entnommen werden. Die 2. Seite ist der Anhang, welcher von der Spalte Firma abhängt.
Sobald die Firma sich ändert soll wieder die Frontpage kommen. Der Anhang hat 1-n Seiten, auf der 1. Seite des Anhangs muss ein Hinweis darüber stehen.

Also eine Seitenwechselbedingung in der Tabelle, mit if(Previous Firma != Firma), allerdings müsste eben dann das Cover-Blatt folgen, bevor die Tabelle weitergeht

Vielleicht kannst du die Frontpage durch x Gruppenkopfzeilen realisieren. Die 2. Seite sind dann die Datenzeilen. Dann kannst du die Firma als Wechselbedingung eintragen. Ist vermutlich aufwändig, müsste aber funktionieren.

Ich fürchte, dass in diesem Fall, wenn sich das besagte Cover pro Firma wiederholen soll auch Bestandteil der Berichtslogik sein muss und sich daher auch in der Tabelle befinden muss. Der Ansatz mit dem Gruppenkopf (auch hier kann man einen Seitenwechsel definieren) ist dafür schon gut geeignet… aber es muss dann eben im Gruppenkopf das besagte Cover “nachgebaut” werden.

Hi,

neben den bereits erwähnten Möglichkeiten gäbe es noch eine weitere Variante. Dazu müsste jedoch die übergebene Datenstruktur angepasst werden. Wäre das denkbar?

Genauer gesagt bräuchte es zwei Tabellen, die in einer Master-Detail-Beziehung zueinander stehen. Tabelle 1 mit den Firmen-Infos, welche das Cover abbilden. Tabelle 2 mit dem restlichen Teil des Reports. Code-seitig müsste für List & Label der AutoMasterMode auf AsVariables gesetzt und ein DataMember mitgegeben werden:

            //Pass data to LL, set DataMember to "Firmen"
            LL.SetDataBinding(MyData, "Firmen");

            //Set AutoMasterMode
            LL.AutoMasterMode = LlAutoMasterMode.AsVariables;

            //Open Designer
            LL.Design();

Was dann passiert ist, dass - wie im obigen Code-Beispiel - die “Firmen” als Variablen angemeldet werden und der Rest als Felder. Der Clou ist nun, dass sich List & Label selbst um den Rest kümmert. D. h. es wird für jeden neuen Firmen-Datensatz automatisch ein Seitenumbruch ausgelöst sowie Seitenzähler und Summen werden zurückgesetzt. Das ganze ist auch hier beschrieben: Datenbindung

Der Screenshot zeigt eine Ausgabe von Firmen (rot) mit ihren Ansprechpartner (blau) und Kommunikationsinfos (orange) dieser. Und das alles in einem Report.

Eventuell könnte das auch ein Weg sein deine Anforderung umzusetzen.

1 Like

Vielen Dank, das ist genau die Art Lösung nach der ich gesucht habe.

1 Like