Voraussetzungen
Sie sind mit der XFA-Spezifikation vertraut.
Weitere Informationen: Adobe-Homepage, Seite
Adobe XML Forms Architecture (XFA) (über
search.adobe.com )
Hinweis
Adobe bezeichnet das im XFA-Format abgelegte Layout eines Formulars als Formularvorlage. Im SAP-System beinhaltet eine Formularvorlage zusätzlich zum Layout auch Informationen zur Datenbeschaffung.
Kontext
Sie können Formularlayouts alternativ zur manuellen Erstellung mit
Adobe LiveCycle Designer über eine Programmierschnittstelle (API) programmgesteuert generieren. Das programmgesteuert erzeugte Formularlayout ist im
Adobe LiveCycle Designer anzeigbar.
Empfehlung
Da die Programmierschnittstelle im Vergleich zum vollen Funktionsumfang des Adobe LiveCycle Designers nur eine Auswahl an XML-Tags und Attributen der XFA-Spezifikation anbietet, empfehlen wir, hiermit nur einfache Formulare zu generieren.
Vorgehensweise
- Nutzen Sie zum Definieren eines Formularlayouts die Interfaces aus dem Paket SAXFT.
Hinweis
Ein Interface entspricht genau einem Tag aus der XFA-Spezifikation.
- Erzeugen Sie den Root-Knoten, indem Sie ein Objekt der Klasse
CL_SXFT_TEMPLATE über
CREATE_OBJECT instanziieren.
An diesem Objekt können Sie die Methode
GET_FACTORY() aufrufen,
über die Sie ein Factory-Objekt erhalten.
- Erzeugen Sie die nachfolgenden XFA-Elemente, indem Sie sich über eine Create-Methode des Factory-Objekts das entsprechende Objekt instanziieren lassen.
-
Bauen Sie das XFA-Dokument folgendermaßen auf:
-
Setzen Sie einfache Attribute über Set-Methoden und übergeben Sie dem Parameter VALUE den Attributwert in Hochkommata.
-
Setzen Sie Attribute, die eigene Elemente sind, über Set-Methoden und übergeben Sie dem Parameter VALUE ein Objekt, welches das Attribut (und somit das neue Element) repräsentiert.
Hinweis
Ausnahme: Sie müssen Attribute, die eigene Elemente sind, aber nur wenige eigene Attribute haben, nicht extra erzeugen. Sie können die Werte über die entsprechende Set-Methode direkt setzen (z.B. <
margin > und <
color >).
-
Setzen Sie Kind-Elemente über die Methode
IF_SXFT_NODE~APPEND_CHILD(NEW_CHILD). Das Interface
IF_SXFT_NODE wird von allen Interfaces umfasst, die XFA-Elemente repräsentieren.
-
Nutzen Sie für Attribute, die sehr häufig gesetzt werden, zusammenfassende Interfaces:
-
Das Interface
IF_SXFT_ALIGNMENT fasst die Set-Methoden für die Attribute
VALIGN und
HALIGN zusammen. Dieses Interface wird von all denjenigen Interfaces umfasst, welche Elemente mit diesen
Attributen repräsentieren.
-
Das Interface
IF_SXFT_MEASUREMENT fasst die Set-Methoden für die Attribute X, Y, W, H und Layout zusammen. Dieses Interface wird von all denjenigen Interfaces umfasst, welche Elemente mit diesen Attributen repräsentieren.
Beispiel
Eine Beispielimplementierung finden Sie in dem Programm RSXFT_XFT_API_DEMOII.
Das Programm erzeugt ein Formularlayout (XFA-Datei), die außer dem Kopf- und Fußbereich einen statischen Text, eine Auswahlliste, Optionsfelder, ein Texteingabefeld und eine Drucktaste enthält. Die Generierung des Formularlayouts umfasst keine Datenbindung (keinen Kontext der Formularvorlage).