Masterseite, Inhaltsbereich, Inhaltsseite, Ausgabeseite und Paginierung

Aus SAP-Wiki
Zur Navigation springenZur Suche springen


Für das Verständnis des Aufbaus eines Formulars und der Seitensteuerung ist das Verständnis der Begriffe Masterseite, Inhaltsbereich, Inhaltsseite, Formularseite, Ausgabeseite und Überlauf sehr wichtig. Die Seitensteuerung kann komplex und schwer zu durchschauen sein. Umso wichtiger ist es die grundsätzlichen technischen Zusammenhänge zu kennen und dann durch sprechende Bezeichnung von Masterseiten, Inhaltsbereichen, Inhaltsseiten und überlaufrelevanten Teilformularen das Verständnis der Zusammenhänge für die Formularentwickler so einfach wie möglich zu machen..

Grundlagen Masterseite

In einer oder mehr "Masterseiten" definiert der Adobe LiveCycle Designer die grundlegende Struktur der Formularseite(n). Auf den Masterseite stehen Kopfinformationen des Formulars (z. B. Logo, Seitenangaben, Fußzeilen), die auf jeder neuen Ausgabeseite sich wiederholen. Die Masterseite legt auch die Größe und Lage des Inhaltsbereichs fest - nicht jedoch dessen Inhalt. Im Inhaltsbereich werden v. a. auch dynamische Inhalte des Formulars platziert, die sich über mehr als eine Ausgabeseite erstrecken können und einer nach dem anderen abgearbeitet werden. Die Inhalte des Inhaltsbereichs werden auf den Inhaltsseiten definiert.

Der Bereich für dynamische Inhalte wurde bei SAPscript und SmartForms MAIN genannt. Beim Adobe LiveCycle Designer "Inhaltsbereich", bzw. dessen Inhalt „Inhaltsseite“. Daher sprechen die Formularentwickler auch im Bereich von Adobe Forms meist vom MAIN, wenn sie den Inhaltsbereich/Inhaltsseite meinen.

Masterseiten1.JPG

Aufgeklappte Masterseite "Seite1"

Masterseiten2.JPG

Der Inhaltsbereich wird auf jeder Masterseite automatisch angelegt und durch ein spezielles Symbol Masterseiten4.JPG gekennzeichnet. Hier heißt dieser Inhaltsbereich C1.

Kann sich ein Formular über mehrere Ausgabeseiten erstrecken, gibt es auch gewöhnlich mindestens 2 Masterseiten. Auf der ersten Masterseite steht häufig ein Firmenlogo, eine Adresse und ein Infoblock. Diese Informationen werden meist nur für die erste Ausgabeseite benötigt. Daher wird beim Überlauf des Inhaltsbereichs der ersten Masterseite meist auf die zweite Masterseite referenziert. Die Kopfinformationen wie Adresse und Infoblock werden gewöhnlich für die zweite Masterseite nicht erneut dargestellt und daher steht für den Inhaltsbereich auf der zweiten Masterseite mehr Platz zur Verfügung und die Formularausgabe wird schlanker und papiersparender.

Reihenfolge Abarbeitung Masterseiten und Inhaltsseiten

Die Reihenfolge der Abarbeitung von Masterseiten und Inhaltsseiten zu verstehen ist bei komplexen Formularen eine Herausforderung.

Zuweisung Seite zum Inhaltsbereich

Gewöhnlich folgt es diesem Muster

  1. Zunächst wird die erste/oberste Masterseits abgearbeitet. In der Masterseits ist ein Inhaltsbereich definiert
  2. Eine Inhaltsseite referenziert auf diese Masterseite und wird abgearbeitet
  3. Gibt es in dieser Inhaltsseite einen Überlauf, bleibt die Prozessierung entweder auf der gleichen Masterseite oder wenn auf der Inhaltsseite/dem entsprechen Teilformular ein anderer Inhaltsbereich/andere Masterseite referenziert wird, wird mit der referenzierten Masterseite fortgesetzt
  4. Ist die Prozessierung der einen Inhaltsseite abgeschlossen, wird mit der darunter befindlichen Inhaltsseite fortgesetzt.
  5. Diese Inhaltsseite referenziert wiederum auf eine Masterseite/Inhaltsbereich und diese Masterseite wird abgearbeitet
  6. Die Prozessierung des Formulars ist abgeschlossen, wenn alle Inhaltsseiten abgearbeitet sind.

Begrenzung Ausgabeseiten von Masterseiten FIRST und NEXT ohne Zuweisung Inhaltsbereich

Es kann auch anders gesteuert werden. Hier in einem Projektbeispiel, wo die ausgegebenen Textobjekte außerhalb von den Masterseiten keinem Inhaltsbereich und keiner Masterseite zugewiesen wurden.

Masterseiten10.JPG


  • Auf der Masterseite FIRST wird die Ausgabe explizit auf die erste Ausgabeseite begrenzt.

Masterseiten11.JPG


  • Auf der Masterseite NEXT werden alle Ausgabenseiten nachfolgend der ersten Ausgabeseite ausgegeben.

Masterseiten12.JPG


  • Die Objekte außerhalb der Masterseiten haben keine "Seite" und suchen sich daher die passende Masterseite aufgrund der ausgegebenen Druckseite.

Masterseiten13.JPG

Neue "Masterseite" anlegen

Eine neue Masterseite lässt sich anlegen indem der Cursor auf Masterseiten6.JPG gestellt wird und dort rechte Maustaste "Neue Masterseite". Hier wurden die Masterseiten "Seiten1", "Seiten2" und "Seiten3" angelegt. Sehr häufig werden diese Seiten FIRST und NEXT genannt. Unter diesen Begriffen FIRST und NEXT verstehen auch viele Berater die Bedeutung dieser Masterseiten. Daher sollte man, wenn es passt, die Masterseiten FIRST und NEXT nennen.

Masterseiten7.JPG

Neue "(Inhalts-)Seite" anlegen

Um Inhalte im Inhaltsbereich auszugeben, wird eine neue (Inhalts-)Seite angelegt durch rechte Maustaste auf den obersten Knoten Masterseiten8.JPG und Wahl des Eintrags "Neue Seite". Sie heißt hier nach dem Einfügen "SEITE1". Sie muss nicht gleichnamig zur Masterseite sein, aber erleichtert die Zuordnung, wenn nur eine Inhaltsseite dem Inhaltsbereich einer Masterseite zugewiesen wird. Beim Überlauf eines Inhaltsbereichs kann die Inhaltsseite aber auch auf eine andere Masterseits wechseln, z. B. von der der Masterseite „Seite1“ zur Masterseite „Seite2“.

Masterseiten9.JPG

Seite Inhaltsbereich zuweisen / Reiter Paginierung

Zur Inhaltsseite SEITE1 wird nun festgelegt welchen Inhaltsbereich (Main-Bereich) die Seite darstellen soll.

Masterseiten3.JPG

Diese Zuordnung erfolgt in der Palette "Objekt" und hier auf dem Reiter "Paginierung". Hier wird nun der Inhaltsbereich "C1" zugewiesen bei "Platzieren". Dadurch wird automatisch die Headerstruktur der Masterseite "Seite1" gezogen. Die anderen Angaben können meist auf den Defaultwerten bleiben.

Sehr wichtig ist auch der Eintrag in "Überlauf". Hier sagt man der Seite, auf welcher Masterseite/in bzw. welchem Inhaltsbereich die Seite fortgesetzt werden soll, wenn die Ausgabeseite in einer Inhaltsseite oder Teilformular überschritten wird. In diesem Fall bei "Ohne" geht man davon aus, dass es keinen Überlauf geben kann, bzw. die Überlaufsteuerung durch übergeordnete Teilformulare oder die Inhaltsseite erfolgt.

Gibt es mehrere Inhaltsseiten, wie in diesem Fall, werden die Inhaltsseiten SEITE1, SEITE2 und SEITE3 hintereinander abgearbeitet und die Inhaltsseite benutzt jeweils die Masterseiten, die dem gewählten Inhaltsbereich einer Masterseite zugewiesen wurden, sofern nicht ein Teilformular in einer Seite die Platzierung auf einem anderen Inhaltsbereich/Masterseite vornimmt. In diesem Fall sollte man den Sprung im Namen des Teilformulars kennzeichnen, um die Seitensteuerung nachvollziehbar zu machen, wie z. B. hier, wo das Teilformular "EoGS1_MAIN_N" auf den Inhaltsbereich "MAIN_N" (und Masterseite "Seite_n") hinweist.

Mit der Platzierung von Inhaltsseiten und Teilformularen und dem Überlauf von Inhaltsseiten und Teilformularen bei durchdachter Hierarchisierung von Teilformularen kann sehr fein gesteuert werden, auf welcher Masterseite Inhalte ausgegeben werden. Dies ist insbesondere auch für die gezielte Ansteuerung von Druckausgabeschächten (über die Papierart der Masterseite) notwendig.

Paginierung6.JPG

Paginierung7.JPG

Überlaufkopfbereich und Überlauffußbereich

Paginierung und Kopfzeilen von Tabellen

Es ist möglich unter dem Reiter Paginierung 2 verschiedene Überschriftenzeilen zu hinterlegen.

Hier gibt es 2 Kopfzeilen mit den Namen "Kopfzeile" und "Kopfzeile_ff".

PaginierungTab1.JPG


PaginierungTab2.JPG


Die Kopfzeile "Kopfzeile" wird nur auf der ersten Seite aktiv geschaltet.

PaginierungTab3.JPG


Die Kopfzeile "Kopfzeile_ff" wird nur auf den weiteren Seiten aktiv geschaltet.

PaginierungTab4.JPG

Inhaltsseite in "Position" oder "Textfluss"

Sehr häufig wird ein Formular nicht lediglich auf einer Ausgabeseite ausgegeben, sondern kann auf zwei oder mehr Ausgabeseiten erfolgen. Damit die Daten nicht lediglich auf einer Ausgabeseite dargestellt werden, darf die Seite nicht im Inhalt "Position" sein, sondern im "Textfluss". Zudem muss "Seitenumbrüche im Inhalt zulassen" aktiviert sein.

Beim "Textfluss" ist in aller Regel die Einstellung "Von oben nach unten" bei der Fließrichtung sinnvoll. Dadurch werden die Teilformulare/Objekte im Inhaltsbereich von oben nach unten ausgebeben. Sollen die Objekte dann in einem (Unter-)Teilformular "von links nach rechts" gereiht werden, kann das im entsprechenden Teilformular eingestellt werden.

Masterseiten4.jpg

Wenn im Inhalt "Position" eingestellt ist und eine Tabelle im Inhalt ausgegeben werden soll, die eine DIN-A4-Seite überschreiten würde, schreibt der Adobe LiveCycle Designer den Inhalt bis hinein in den Fußbereich der Seite und beendet danach die Ausgabe.

Masterseiten5.jpg

Es ist unschön, dass "Textfluss" nicht bereits Voreinstellung ist oder in diesen Fällen eine Warnung kommt. Es kann Zeit und Nerven kosten diesen Fehler zu finden, wenn bei der Formularausgabe teilweise oder komplett kein Seitenumbruch erfolgt.

"Position" sollte nur dann gewählt werden, wenn jedes Objekt im Inhaltsbereich eine genau definierte X-/Y-Koordinatenposition hat.

Begriffsverwirrung Masterseite, Inhaltsbereich, MAIN, Inhaltsseite, Ausgabeseite

Der Adobe LiveCycle Designer macht es dem SAP-Entwickler nicht leicht die Objektzusammenhänge zu verstehen und zu kommunizieren. Viele Begriffe sind einander sehr ähnlich. Umso wichtiger ist es hier präzise zu sein.

  • Masterseite = Oberste Strukturierungsebene des Formulars. Darstellung der auf jeder Ausgabeseite wiederholenden Kopf-/Fußinformationen des Formulars und Platzierung/Größe des Inhaltsbereichs
  • Inhaltsbereich entspricht dem MAIN bei SAPscript und Smart Forms. Darstellungscontainer für statische oder dynamische Inhalte vom Formular
  • (Inhalts-)Seite = Inhalte, die einem Inhaltsbereich einer Masterseite zugeordnet werden
  • Ausgabeseite = Physikalische Ausgabeseite beim Druck

Schusterjunge, Seitenumbrüche und co.

  • Der LiveCycle Designer bietet eine Reihe von recht einfachen Möglichkeiten Einfluß auf die Platzierung von Inhalten auf Ausgabeseiten zu nehmen, dass Inhalte nicht aufgrund eines Überlaufs getrennt werden, die zusammenbleiben sollen.
  • Die wichtigste und häufigste Einstellung ist im Teilformular die Checkbox „Seitenumbrüche im Inhalt zulassen“. Wird dieser Haken nicht gesetzt, bleibt der Inhalt des Teilformulars zusammen. Hier ist wichtig, dass der Inhalt dieses Teilformulars nicht eine Ausgabeseite übersteigt. In diesem Fall hat das Formular ein Problem. Es ist im Inhaltsbereich nicht genügend Platz, um den Inhalt des Teilformulars komplett darzustellen, aber gleichzeitig wurde es durch die nicht gesetzte Checkbox nicht erlaubt den Inhalt über mehrere Ausgabeseiten auszugeben. In so einem Fall wird der Inhalt, der nicht mehr auf den Inhaltsbereich passt, dennoch über den Inhaltsbereich fortgesetzt bis zum Ende der Seite und dort dann abgeschnitten. Das sieht dann sehr irritierend aus, aber letztlich nachvollziehbar, wenn man sich diesen Zusammenhang bewußt macht. So fällt der Fehler auch schneller auf, als wenn schon am Ende des Inhaltbereichs abgeschnitten würde. In so einem Fall muss auf dieser Teilformularebene die Checkbox „Seitenumbruch im Inhalt zulassen“ gesetzt werden. Es sollte dann überlegt werden, in welchem untergeordneten Teilformular die Checkbox nicht gesetzt wird. Hier sollte man die Teilformulare mit den jeweiligen Inhaltsn so erstellen, dass die Inhalte betriebswirtschaftlich sinnvoll gruppiert werden.
  • http://livecycle.helpmax.net: Grundlagen zum Festlegen von Seitenumbrüchen

Masterseiten4.jpg

Sehr einfach kann man auch die Checkboxen „Nicht trennen: Vorherige“ und „Nicht trennen: Nachfolgende“ nutzen. Hier wird ein Teilformular/Objekt mit dem vorherigen Teilformular/Objekt, bzw. nachfolgenden Teilformular/Objekt zusammengehalten. Meist werden diese Checkboxen jedoch durch ein Teilformular realisiert, was mehrere untergeordnete Teilformulare/Objekte zusammenfasst und auf dieser Ebene dann durch das Nichtsetzen der Check „Seitenumbrüche im Inhalt zulassen“ die entsprechenden Teilformulare/Objekte zusammengehalten. Die entsprechenden Teilformulare/Objekte können im Hierarchiebaum markiert werden und mit der rechten Maustaste „Umschließen mit Teilformular“ durch ein Teilformular umschlossen werden.

Paginierung7.JPG

Projektbeispiel Paginierung "Nicht trennen Vorherige"

Hier in einem Projekt wurde unter einer Tabelle ein Teilformular "Totals" ausgegeben, was einige Felder der Tabelle als Summe darstellt.

Schusterjunge1.JPG


Schusterjunge2.JPG


Da hier die Überschrift der Tabelle über die Masterseite realisiert wurde, konnte die Zeile mit "Totals" als einzige Zeile unter der Überschriftenzeile ausgegeben werden, was sehr unschön aussieht.

Schusterjunge3.JPG


Über der Zeile "Total" sollte nun immer mindestens eine Tabellenzeile ausgegeben werden auf der gleichen Ausgabeseite. Es wird dafür im Reiter "Paginierung" beim Teilformular "Totals" die Checkbox "Nicht trennen: Vorherige" gesetzt.

Schusterjunge4.JPG


Bei der nächsten Anzeige des Formulars wird nun eine Zeile der Tabelle auf die letzte Ausgabeseite über "Totals" wie gewünscht dargestellt.

Schusterjunge5.JPG

Man könnte denken, dass das Setzen der Checkbox "Nicht trennen: Nächste" bei der Tabelle "itab" zum gleichen Ergebnis führen würde, aber das ist nicht der Fall. Hier würde eine leere Seite (nur die Masterseite) ausgegeben und erst dann die Tabelle. Im Zweifel sollte man von dem kleinsten Teilformular ausgehen. Hier also ausgehend vom Teilformular "Totals", was lediglich eine Zeile beansprucht bei der Ausgabe und hier wie oben beschrieben "Nicht trennen: Vorherige" setzen.

Projektbeispiel: Scripting Zwischensumme am Ende einer Seite und Übertrag auf nächste Seite

Literatur

  • SAP Interactive Forms by Adobe, von Jürgen Hauser, Andreas Deutesfeld, Stephan Rehmann, Thomas Szücs und Philipp Thun, 2. Auflage, S. 184, 211, 304, 314, 370, 316