Teilformulare im LiveCycle Designer
Teilformulare sind ein sehr mächtiges Konzept im Adobe LiveCycle Designer.
Teilformulare fassen Teilobjekte zusammen und können auch zur Tabellenausgabe genutzt werden.
Gruppierung von Unterobjekten
- Zusammenfassung räumlich und thematisch zusammengehöriger Objekte
- Eine sinnvolle Zusammenfassung von Objekten erleichtert sehr die Übersicht im Formular, beschleunigt massiv die Pflege von Formularen und verringert Fehler
- Teilformulare können auch in einer hierarchischen Beziehung untereinander stehen
Fließrichtung und "In Position"
- Besonders sorgfältig sollte auf die sinnvolle Wahl der Flußrichtung der Teilobjekte unter dem Teilformular geachtet werden. Häufig wird eine Flußrichtung von "oben nach unten" oder von "links nach rechts" die beste Wahl sein.
- Bei "oben nach unten" werden die Felder im Teilformular untereinander auf dem Formular ausgegeben.
- Bei "links nach rechts" werden die Felder im Teilformular auf einer Zeile nebeneinander ausgegeben. Erst wenn in einer Zeile kein Platz mehr ist, erfolgt ein Zeilenumbruch.
- in Position (Festlegung aller Objekte im Raum mit X- und Y-Koordinaten (Abstand vom Rand links bzw. oben))
- "In Position" sollte nur gewählt werden, wenn alle Teilobjekte eines Teilformulars eine exakte räumliche Lokalisierung haben und sich deren Koordinaten nicht durch relativen Bezug zum Teilformular und hierarchisch höheren Teilformularen bestimmen lassen. Bei "In Position" kommt es z. B. zu Problemen, wenn ein Teilobjekt kopiert/dupliziert wird und in ein anderes Teilformular verschoben wird. Es kann auch sehr mühsam und zeitaufwendig sein eine größere Anzahl von Teilobjekten exakt durch X- und Y-Koordinaten definieren zu müssen, bzw. ändern zu müssen, wenn sich die Gesamtlage des Teilformulars ändern muss, weil z. B. benachbarte Teilformulare mehr Platz benötigen als ursprünglich geplant.
Sichtbarkeit Teilformulare
Es soll hier eine Variable mit dem Materialgrundtext ausgegeben werden. Aber wenn der Materialgrundtext in der Schnittstelle nicht versorgt ist, soll keine Leerzeile erscheinen
Sondern so
Der Name des Textknotens im Formular heißt MATGRUND_TEXT und hat eine entsprechende Bindung
Der Textknoten MATGRUND_TEXT wird nun unter das Teilformat "Materialgrundtext" gehängt.
Das Teilformular "Materialgrundtext" hat keine Datenbindung, aber entscheidend ist nun, dass unter dem Reiter "Bindung" der Haken gesetzt ist unter "Teilformular wiederh. f. jedes Datenelement" und es gibt keinen "Min-Zähler" und "Maximal" = 1. Das bedeutet, dass wenn kein Knotenelement unter dem Teilformular mit Daten gefüllt ist, wird auch kein Knotenelement (keine Leerzeile) ausgegeben.
Eine wichtige Hürde gibt es hierbei noch. SAP füllt ein Zahlenfeld mit dem Initialwert 0 und ein Charakter-Feld mit Leerzeichen. Aus Sicht vom Adobe LiveCycle Designer ist das entsprechende Feld somit gefüllt. Daher muß man im Kontext beim entsprechenden Feld eine Bedingung haben, die auf sich selber verweist mit "ungleich initial". So wird z. B. bei einem Zahlenfeld nicht 0 an den Adobe LiveCycle Designer übergeben, sondern tatsächlich kein Feldinhalt und so kann das Teilformular entscheiden das entsprechende Feld auszublenden.
Nun wird die Leerzeile nicht dargestellt, sofern der Textknoten MATGRUND_TEXT nicht gefüllt ist mit Inhalt.
Abstände definieren
- Abstände des Teilformulars von benachbarten Objekten links, oben, rechts und unten
- Ausblenden/Anzeige aller Objekte des Teilformulars in Abhängigkeit von einer logischen Bedingung
- Die Felder im Formular werden oft horizontal und vertikal bündig ausgerichtet werden.
Ränder definieren
- Umrandung des Teilformulars (links, oben, rechts, unten) über die Registerkarte "Rand"
Tabellenausgabe mit Teilformular
- Bindung des Teilformulars an einen Data-Tabellenknoten (Loop über Tabelle)
- Flexibler als die Tabellenausgabe über ein Teilformular ist die Tabellenausgabe über das UI-Element "Tabelle".
- Die Tabellenausgabe über ein Teilformular kann auch unkompliziert 2 (oder mehr) Zeilen pro Datensatz darstellen. Hierzu würde man eine Hierarchie von Teilformularen aufbauen. Das oberste Teilformular bindet an den DATA-Knoten der Tabelle. Die Teilformulare unter dem oberen Teilformular stellen jeweils einige Spalten der Tabelle dar. So kann man mehrere Zeilen pro Datensatz darstellen.
Bindung Teilformular an Ordner, Strukturen, Tabellen
- Bindung des Teilformulars an einen Ordner/Struktur/Tabelle
- Teilobjekte binden dann relativ zu Teilobjekten des referenzierten Objekts
Teilformulare in Bibliotheken
- Ablage von Teilformularen in Bibliotheken, die auch in anderen Formularen genutzt werden können (auch copy&paste ist möglich)
Überlauf von Teilformularen
- Unter der Palette "Objekt" gibt es den Reiter "Paginierung", wo auch der "Überlauf" eines Teilformulars eingestellt wird. Also was soll passieren, wenn die Ausgabe von einem Teilformular einen Seitenumbruch bewirkt. Im Default wird eine weitere Ausgabeseite der gleichen Masterseite erzeugt. Man kann jedoch einstellen, dass beim Überlauf auch eine andere Masterseite aufgerufen wird.
- Hier sieht man sowohl die relevante Masterseite, "Seite_1_b", dessen Inhaltsbereich "MAIN_1_B" als auch die Inhaltsseite "Hauptfenster_N" und der untergeordneten Teilformulare.
Bei der Inhaltsseite "Hauptfenster_N" sieht man die Zuweisung zum Inhaltsbereich "MAIN_1_B" und somit auch zu seiner Masterseite "Seite_1_b".
Das untergeordnete Teilformular S_TEXT05 kann nun z. B. bei einem Überlauf der Sprung zu einem anderen Inhaltsbereich/Masterseite auslösen.
Empfehlung Nutzung Teilformulare
- Abstände werden auf der höchsten Teilformularebene wie möglich definiert und so tief in der Hierarchie wie nötig, bis hinunter zu den einzelnen Feldern
- Die Fließrichtung von Teilformularen sollte von Ausnahmen abgesehen immer in Fließrichtung "von oben nach unten" oder "links nach rechts" gewählt werden. Die Koordinaten von Feldern ergibt sich somit durch das Zusammenspiel der Hiarchie von Teilformularen, deren Fließrichtung und der Breite von Teilformularen und Feldern. Dies erleichtert Layoutanpassungen und nur so kann man Felder und Teilfelder ausblenden, sodass nachfolgende Teilformulare/Felder nachrücken und deren Platz einnehmen und so Platz auf dem Gesamtformular sparen.
- Die Vorgehensweise der Bestimmung der Abstände/Ränder etc. sollte möglichst einheitlich und intuitiv erfolgen.
Web-Links
Literatur
- SAP Interactive Forms by Adobe, von Jürgen Hauser, Andreas Deutesfeld, u. a., 2. Auflage, S. 201 ff.