Bausteine verwenden

Hallo

Die Beschreibung der Bausteine klang genau wie das was wir gesucht haben, leider haben wir bisher keine Möglichkeit gefunden sie sinnvoll einzusetzen.

Wir wollten sie, unter anderem, für folgende Dinge einsetzen

  1. Kopfzeile / Fusszeile für Listenreports, sodass auf jeder Seite beispielsweise der Name der Liste in der Kopfzeile angezeigt wird und “Seite x/y” in der Fusszeile angezeigt wird.
  2. Die Angabe der Suchkriterien die zur Erzeugung der Liste geführt hat, mit dynamischer Höhe, nur auf der ersten Seite.

Leider haben wir beides nicht zustande gebracht.
Es ergeben sich folgende Fragen:

  1. Kann ein Baustein so gemacht oder eingebunden werden, dass er auf jeder Seite, nur auf der ersten Seite oder nur auf den Folgeseiten angezeigt wird? Ich habe sie bisher immer nur auf die erste Seite bzw., bei Angabe der Ebene “Folgeseiten” im Baustein-Projekt, nur auf der zweiten Seite anzeigen können. Wenn ja, wie geht das?
  2. Kann ein Baustein eine dynamische Grösse haben, also nur so gross sein wie nötig? Und kann der eigentliche Inhalt der Liste unterhalb des Bausteins positioniert werden? Die Verkettung der Objekte scheint das richtige dafür zu sein, damit funktioniert es aber auch nicht. Falls sowas geht, wie?

Oder sind Bausteine das falsch für solche Anforderungen? Gibt es eine andere Möglichkeit, absehen davon eine bestehende Liste zu kopieren und abzuändern, immer wieder verwendete Elemente wie Kopf- und Fusszeilen nur einmal erstellen zu müssen?

Fügen Sie hierzu einfach zwei Text-Objekte in das Baustein-Projekt ein, welche am oberen und unteren Rand positioniert werden. Für die Kopfzeile kann z.B. eine übergebene Variable mit dem per DOM ausgelesenen Namen der Haupt-Datei ausgegeben werden.

Als Inhalt des Text-Objektes in der Fußzeile wird “Pages() + " von " + TotalPages$()” verwendet.

Dies wird am besten über Variablen gelöst, die entsprechend übergeben werden. Als Darstellungsbedingung verwenden Sie anschließend “Page() = 1”, eine dynamische Höhe können Sie ebenfalls als Formel hinterlegen, andernfalls kann auch eine Tabelle mit freiem Inhalt verwendet werden, bei der die Höhe einer Zeile automatisch berechnet wird, sodass alle notwendigen Informationen dargestellt werden können.

Im Dialog “Projektbausteine und Berichtsabschnitte” (Projekt > Bausteine, im Hauptprojekt) haben Sie die Möglichkeit eine Darstellungsbedingung zu hinterlegen. Hier kann auch eine Formel verwendet werden, z.B. “Page() <> 1” für die Anzeige der Inhalte des Bausteins auf Folgeseiten. Beachten Sie, dass auch mehrere Bausteine oder Bausteine in Bausteinen verwendet werden können.

Eine dynamische Größe für einen Baustein ist über die Layout-Bereiche möglich - Sie können zudem die Position der einzelnen Objekte im Baustein mittels Formeln an die Seitengröße anpassen.

Die Verkettung ist für die Positionierung von Objekten an ein Baustein-Element möglich, beachten Sie hierzu bitte das Kapitel “Projektbausteine” im List & Label Designer-Handbuch.

Das Einfügen von Elementen per DOM-API wäre eine Alternative. So können Sie codeseitig entsprechende Anpassungen an einem Projekt vornehmen.

1 Like

Vielen Dank für die ausführliche Antwort.

Wir haben den Fehler begangen Kopf- und Fusszeile in den Bausteinen als Tabellen zu erstellen. Damit wurden sie, wie beschrieben, nur auf der ersten oder zweiten Seite dargestellt.
Mit Text-Elementen werden Kopf- und Fusszeile auf allen Seiten angezeigt und lassen sich auch über die Darstellungsbedingung steuern.

Was ich noch nicht ganz verstanden habe ist die Information zu Bausteinen mit dynamischer Grösse.
Wie kann ich im Report, in den ich den Baustein einbinde, herausfinden welche Höhe der Baustein hat und die Position des Berichtscontainers dort entsprechend anpassen?

Das können Sie vor dem Laden des Projektes per DOM-API herausfinden. Zunächst wird überprüft, welche Bausteine existieren, diese separat per DOM-API angesprochen und anschließend deren Layout-Bereiche ausgelesen, um die so gesammelten Informationen als Variable(n) an den Hauptbericht zu übergeben.

Das klingt nicht nach einer für uns gangbaren Lösung. Wir können aber gut ohne Bausteine mit dynamischer Höhe auskommen. Die meisten Listen werden wahrscheinlich als Kopie anderer Listen erstellt werden und an dem dynamischen Bestandteil, den wir aktuell gemacht hätten, würde sich wohl nie wieder was ändern.