Adobe empfiehlt die Verwendung der modernen und erweiterbaren Datenerfassung Kernkomponenten für Erstellen neuer adaptiver Forms oder Hinzufügen von Adaptive Forms zu AEM Sites-Seiten. Diese Komponenten stellen einen bedeutenden Fortschritt bei der Erstellung adaptiver Forms dar und sorgen für beeindruckende Benutzererlebnisse. In diesem Artikel wird der ältere Ansatz zum Erstellen von Adaptive Forms mithilfe von Foundation-Komponenten beschrieben.
Wiederholbare Abschnitte sind Bereiche, die dynamisch zu einem Formular hinzugefügt oder daraus entfernt werden können.
Bei der Bewerbung um einen Arbeitsplatz gibt der Arbeitssuchende beispielsweise frühere Beschäftigungsdetails wie Firmenname, Rolle, Projekt und andere Informationen an. Informationen aller Arbeitgeber erfordern unterschiedliche, aber ähnlich aussehende Abschnitte. In einem solchen Szenario stellt das Beschäftigungsformular einen Arbeitgeberabschnitt bereit und bietet außerdem die Möglichkeit, weitere solche Abschnitte dynamisch hinzuzufügen. Diese Abschnitte, die dynamisch hinzugefügt werden, werden als wiederholbare Abschnitte bezeichnet.
Sie können wiederholbare Bereiche mit einer der folgenden Methoden erstellen:
Wählen Sie im Bearbeitungsmodus einen Bereich und tippen Sie dann auf . Aktivieren Sie in der Randleiste unter „Eigenschaften“ Bereich wiederholbar machen. Geben Sie Werte für die Felder Maximum und Minimum an.
Das Feld Maximum gibt an, wie oft ein Bereich maximal auf der Seite angezeigt werden kann. Sie können -1 im Feld "Maximum Count"(Höchstanzahl) angeben, damit der Bereich unbegrenzt oft angezeigt werden kann.
Das Feld Minimum gibt an, wie oft ein Bedienfeld mindestens auf dem Formular angezeigt wird. Wenn Sie die Mindestanzahl auf null setzen, können Sie später alle Instanzen über Skripte entfernen, nachdem die Ausgabedarstellung abgeschlossen ist.
Um einen nicht wiederholbaren Bereich zu erstellen, setzen Sie die Werte der Felder „Maximum“ (Höchstanzahl) und „Minimum“ (Mindestanzahl) auf jeweils 1. Das Akkordeon-Layout unterstützt -1 im Feld Maximale Anzahl nicht. Sie können eine hohe Zahl angeben, um den Begriff "unendlicher Wert"zu erhalten.
Das übergeordnete Element des Bereichs, der wiederholt werden soll, sollte Schaltflächen zum Hinzufügen und Löschen enthalten, um Instanzen der wiederholbaren Bereiche zu verwalten. Führen Sie die folgenden Schritte aus, um Schaltflächen in das übergeordnete Element einzufügen und Skripte auf den Schaltflächen zu aktivieren:
Ziehen Sie eine Schaltflächenkomponente per Drag-and-Drop aus der Randleiste in das übergeordnete Element des Bereichs. Wählen Sie die Komponente aus und tippen Sie auf . Die Regeln der Schaltfläche werden im Regeleditor geöffnet.
Klicken Sie im Fenster des Regeleditors auf Erstellen.
Wählen Sie in der Zeile „Formularobjekte“ und „Funktionen“ Visual Editor.
Wählen Sie im Regelbereich unter „WENN“ den Status Angeklickt.
Unter „DANN“:
Auswählen Code-Editor in der Zeile "Formularobjekte und Funktionen". Klicken Sie auf Regeln bearbeiten und in den Code-Bereich:
this.panel.instanceManager.addInstance()
an.this.panel.instanceManager.removeInstance(this.panel.instanceIndex)
an.Klicken Sie auf Fertig.
Wenn ein Feld zu einem wiederholbaren Bereich gehört, können Sie mithilfe des Namens in Ihren Skripten nicht direkt darauf zugreifen. Um auf das Feld zuzugreifen, müssen Sie die wiederholbare Instanz, zu der das Feld gehört, unter Verwendung der instances
-API in InstanceManager
angeben. Die Syntax für die Verwendung der instances
-API in InstanceManager
lautet:
<panelName>.instanceManager.instances[<instanceNumber>].<fieldname>
Beispiel: Sie erstellen ein adaptives Formular mit einem wiederholbaren Bedienfeld mit einem Textfeld. Wenn Sie das Formular mit drei wiederholbaren Textfeldern vorausfüllen, benötigen Sie die nachfolgende xml:
<panel1><textbox1>AA1</panel1></textbox1>
<panel1><textbox1>AA2</panel1></textbox1>
<panel1><textbox1>AA3</panel1></textbox1>
Zum Lesen von AA1-Daten müssen Sie Folgendes angeben:
Panel1.instanceManager.instances[0].textbox.value
Zum Lesen von AA2-Daten müssen Sie Folgendes angeben:
Panel1.instanceManager.instances[1].textbox.value
Weitere Informationen finden Sie unter: Klasse: InstanceManager#instances in der AEM Forms Java API-Referenz.
Wenn alle Instanzen eines Bereichs aus einem adaptiven Formular entfernt werden, erfassen Sie zum Hinzufügen einer Instanz des entfernten Bereichs die _panelName-Syntax, um den Instanzmanager des Bereichs zu erfassen, und verwenden Sie die addInstance-API des Instanzmanagers, um die gelöschte Instanz hinzuzufügen. Beispiel: _panelName.addInstance(). Dies fügt eine Instanz der entfernten Bereichs hinzu.
Ein Bedienfeld verfügt über verschiedene Layoutoptionen. Die Option "Layout für Akkordeon-Design"verfügt standardmäßig über Unterstützung für wiederholbare Bereiche. Führen Sie die folgenden Schritte aus, um einen wiederholbaren Bereich mit der Option zum Layout für das Akkordeon-Design zu erstellen:
Klicken Sie im übergeordneten Element des zu wiederholenden Bereichs auf . Sie können die Eigenschaften in der Seitenleiste sehen. Wählen Sie in der Dropdown-Liste Layout die Option Akkordeon.
Tippen Sie in einem Bereich, der wiederholt werden soll, auf . Sie können die Eigenschaften des Bereichs in der Randleiste anzeigen. Aktivieren Sie die Registerkarte Bereich wiederholbar machen und geben Sie den Wert für die Felder Maximum und Minimum ein.
Jetzt können Sie die Schaltflächen Plus (+) und Löschen () verwenden, um Bereiche hinzuzufügen und zu entfernen.
Wiederholbare Teilformulare ähneln den wiederholbaren Bedienfeldern in adaptiven Formularen. Führen Sie in AEM Forms Designer die folgenden Schritte aus, um ein sich wiederholendes Teilformular zu erstellen:
Die angehängte ZIP-Datei enthält ein Beispiel für ein wiederholbares Teilformular.
Sie können wiederholbare Bereiche aus einem XML-Schema mit den Eigenschaften „minOccurs“ und „maxOccurs“ eines beliebigen Elements eines komplexen Typs erstellen. Ausführliche Informationen zum XML-Schema finden Sie unter Erstellen adaptiver Formulare mit dem XML-Schema als Formularmodell.
Im folgenden Code verwendet der SampleType
Bereich die Eigenschaften „minOccurs“ und „maxOccurs“.
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="https://adobe.com/sample.xsd"
xmlns="https://adobe.com/sample.xsd"
xmlns:xs="https://www.w3.org/2001/XMLSchema"
>
<xs:element name="sample" type="SampleType"/>
<xs:complexType name="SampleType">
<xs:sequence>
<xs:element name="leaderName" type="xs:string" default="Enter Name"/>
<xs:element name="assignmentStartDate" type="xs:date"/>
<xs:element name="gender" type="GenderEnum"/>
<xs:element name="noOfProjectsAssigned" type="IntType"/>
<xs:element name="assignmentDetails" type="AssignmentDetails"
minOccurs="0" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AssignmentDetails">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="durationOfAssignment" type="xs:unsignedInt" use="required"/>
<xs:attribute name="numberOfMentees" type="xs:unsignedInt" use="required"/>
<xs:attribute name="descriptionOfAssignment" type="xs:string" use="required"/>
<xs:attribute name="financeRelatedProject" type="xs:boolean"/>
</xs:complexType>
<xs:simpleType name="IntType">
<xs:restriction base="xs:int">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GenderEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="Female"/>
<xs:enumeration value="Male"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Bei einem anderen Layout als dem Akkordeon-Layout verwenden Sie Schaltflächenkomponenten für adaptive Formulare, um Instanzen hinzuzufügen und zu entfernen.