Transaktion SFP - Teilformulare

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

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

Adobe Teilformular6.jpg


Sondern so

Adobe Teilformular5.jpg

Der Name des Textknotens im Formular heißt MATGRUND_TEXT und hat eine entsprechende Bindung

Adobe Teilformular2a.jpg


Adobe Teilformular3.jpg


Der Textknoten MATGRUND_TEXT wird nun unter das Teilformat "Materialgrundtext" gehängt.

Adobe Teilformular2.jpg


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.

Adobe Teilformular4.jpg

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.

Adobe Teilformular5.jpg

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.

Maßeinheit1.jpg

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".

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.

Paginierung5.JPG

Paginierung3.JPG

Bei der Inhaltsseite "Hauptfenster_N" sieht man die Zuweisung zum Inhaltsbereich "MAIN_1_B" und somit auch zu seiner Masterseite "Seite_1_b".

Paginierung4.JPG

Das untergeordnete Teilformular S_TEXT05 kann nun z. B. bei einem Überlauf der Sprung zu einem anderen Inhaltsbereich/Masterseite auslösen.

Paginierung1.JPG

Paginierung2.JPG

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