Erstellen von Formularen mit wiederholbaren Abschnitten creating-forms-with-repeatable-sections

Adobe empfiehlt, die modernen und erweiterbaren Kernkomponentenzur Datenerfassung zu verwenden, um neue adaptive Formulare zu erstellenoder adaptive Formulare zu AEM Sites-Seiten hinzuzufügen. Diese Komponenten stellen einen bedeutenden Fortschritt bei der Erstellung adaptiver Formulare dar und sorgen für beeindruckende Anwendererlebnisse. In diesem Artikel wird der ältere Ansatz zum Erstellen adaptiver Formulare 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 auf eine Stelle gibt die oder der Arbeitssuchende beispielsweise Details zur vorherigen Beschäftigung an, wie Firmenname, Rolle, Projekt und andere Informationen. Die Informationen aller Arbeitgebenden erfordern unterschiedliche, aber ähnlich aussehende Abschnitte. In einem solchen Fall bietet das Beschäftigungsformular einen Arbeitgeberabschnitt sowie eine Option, um weitere dieser 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:

Verwenden des Instanzmanagers über Skripte  using-instance-manager-via-scripts-nbsp

  1. Wählen Sie im Bearbeitungsmodus einen Bereich und dann cmppr aus. 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 Panel maximal auf der Seite angezeigt werden kann. Geben Sie im Feld für die maximale Anzahl den Wert „-1“ an, damit das Panel beliebig oft angezeigt werden kann.

    Das Feld „Minimum“ gibt an, wie oft ein Panel mindestens auf dem Formular angezeigt wird. Wenn Sie die Mindestanzahl auf null setzen, können Sie später über Skripte alle Instanzen entfernen, nachdem die Ausgabedarstellung abgeschlossen ist.

    note note
    NOTE
    Um einen nicht wiederholbaren Bereich zu erstellen, setzen Sie die Werte der Felder „Maximum“ (Höchstanzahl) und „Minimum“ (Mindestanzahl) auf jeweils 1. Beim Akkordeon-Layout wird der Wert „-1“ im Feld für die maximale Anzahl nicht unterstützt. Sie können eine hohe Zahl angeben, um einen fast unbegrenzten Wert zu erreichen.
  2. Das übergeordnete Element des Panels, das wiederholt werden soll, muss Schaltflächen zum Hinzufügen und Löschen enthalten, um Instanzen der wiederholbaren Panels 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:

    1. Ziehen Sie eine Schaltflächenkomponente per Drag-and-Drop aus der Randleiste in das übergeordnete Element des Bereichs. Wählen Sie die Komponente und dann edit-rules aus. Die Regeln der Schaltfläche werden im Regeleditor geöffnet.

    2. Klicken Sie im Fenster des Regeleditors auf Erstellen.

      Wählen Sie in der Zeile „Formularobjekte“ und „Funktionen“ Visual Editor.

      1. Wählen Sie im Regelbereich unter „WENN“ den Status Angeklickt.

      2. Unter „DANN“:

        • Um eine Schaltfläche zum Hinzufügen eines Bereichs zu erstellen, wählen Sie Instanz hinzufügen und ziehen Sie den Bereich per Drag-and-Drop mit toggle-side-panel oder wählen Sie ihn mithilfe von Objekt ablegen oder hier auswählen aus.
        • Um eine Schaltfläche zum Löschen eines Bereichs zu erstellen, wählen Sie Instanz entfernen und ziehen Sie den Bereich per Drag-and-Drop mit toggle-side-panel oder wählen Sie ihn mithilfe von Objekt ablegen oder hier auswählen aus.

      Wählen Sie in der Zeile „Formularobjekte und Funktionen“ die Option Code-Editor aus. Klicken Sie auf Regeln bearbeiten und in den Code-Bereich:

      • Um eine Schaltfläche zum Hinzufügen eines Bereichs zu erstellen, geben Sie this.panel.instanceManager.addInstance() an.
      • Um eine Schaltfläche zum Löschen eines Bereichs zu erstellen, geben Sie this.panel.instanceManager.removeInstance(this.panel.instanceIndex) an.

      Klicken Sie auf Fertig.

      note note
      NOTE
      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>
      Angenommen, Sie erstellen ein adaptives Formular mit einem wiederholbaren Bereich, der ein Textfeld enthält. 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.
      note note
      NOTE
      Wenn alle Instanzen eines Bereichs aus einem adaptiven Formular entfernt wurden, können Sie eine Instanz des entfernten Bereichs hinzufügen, indem Sie mithilfe der Syntax „_panelName“ den Instanz-Manager des Bereichs erfassen und dann die gelöschte Instanz mit der addInstance-API des Instanz-Managers hinzufügen. Beispiel: _panelName.addInstance(). Dies fügt eine Instanz der entfernten Bereichs hinzu.

Verwenden des Akkordeon-Layouts für den übergeordneten Bereich   using-the-accordion-layout-for-the-parent-panel-nbsp

Ein Bereich weist verschiedene Layout-Optionen auf. Die Option zum Layout für das Akkordeon-Design bietet standardmäßig 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:

  1. Wählen Sie im übergeordneten Element des zu wiederholenden Bereichs cmppr aus. Sie können die zugehörigen Eigenschaften in der Randleiste anzeigen. Wählen Sie in der Dropdown-Liste Layout die Option Akkordeon.

  2. Wählen Sie in einem Bereich, der wiederholt werden soll, cmppr aus. Sie können die Eigenschaften des Bereichs in der Randleiste sehen. 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 ( delete-panel ) verwenden, um Bereiche hinzuzufügen und zu entfernen.

Verwenden von wiederholten Teilformularen aus der Formularvorlage (XDP/XSD) using-repeating-subforms-from-form-template-xdp-xsd

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:

  1. Wählen Sie das übergeordnete Teilformular des zu wiederholenden Teilformulars in der Palette „Hierarchie“ aus.
  2. Klicken Sie in der Palette „Objekt“ auf die Registerkarte „Teilformular“ und wählen Sie in der Liste „Inhalt“ die Option „Textfluss“ aus.
  3. Wählen Sie das zu wiederholende Teilformular aus.
  4. Klicken Sie in der Palette „Objekt“ auf die Registerkarte „Teilformular“ und wählen Sie in der Liste „Inhalt“ die Option „Position“ oder „Textfluss“ aus.
  5. Klicken Sie auf die Registerkarte „Bindung“ und wählen Sie die Option „Teilformular für jedes Datenelement wiederholen“ aus.
  6. Um die Mindestanzahl von Wiederholungen festzulegen, wählen Sie die Option für die Mindestanzahl aus und geben Sie im entsprechenden Feld eine Zahl ein. Wenn diese Option auf den Wert „0“ gesetzt ist und zum Zeitpunkt der Datenzusammenführung keine Daten für die Objekte im Teilformular zur Verfügung stehen, wird das Teilformular beim Rendern des Formulars nicht platziert.
  7. Um die maximale Anzahl von Teilformularwiederholungen festzulegen, wählen Sie „Max.“ aus und geben Sie im entsprechenden Feld eine Zahl ein. Wenn Sie im Feld „Max.“ keinen Wert eingeben, ist die Anzahl von Teilformularwiederholungen unbeschränkt.
  8. Wenn Sie unabhängig von der Datenmenge eine bestimmte Anzahl an Teilformularwiederholungen festlegen möchten, wählen Sie „Anfangszahl“ aus und geben Sie im entsprechenden Feld eine Zahl ein. Wenn Sie diese Option aktivieren und keine oder weniger Daten zur Verfügung stehen als unter „Anfangszahl“ angegeben, werden leere Instanzen des Teilformulars in das Formular eingefügt.
  9. Fügen Sie im übergeordneten Teilformular zwei Schaltflächen hinzu: eine zum Hinzufügen der Instanz und eine andere zum Löschen der Instanz des wiederholbaren Teilformulars. Ausführliche Anweisungen finden Sie unter Erstellen einer Aktion.
  10. Verknüpfen Sie nun die Formularvorlage mit dem adaptiven Formular. Ausführliche Anweisungen finden Sie unter Erstellen eines adaptiven Formulars basierend auf einer Vorlage.
  11. Verwenden Sie die in Schritt 9 erstellten Schaltflächen, um Teilformulare hinzuzufügen und zu entfernen.

Die angehängte ZIP-Datei enthält ein Beispiel für ein wiederholbares Teilformular.

Datei abrufen

Verwenden der Wiederholungseinstellungen eines XML-Schemas (XSD) using-repeat-settings-of-an-xml-schema-xsd-br

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 mithilfe eines XML-Schemas als Formularmodell.

Im folgenden Code verwendet der SampleTypeBereich 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>
NOTE
Bei einem anderen Layout als dem Akkordeon-Layout verwenden Sie Schaltflächenkomponenten für adaptive Formulare, um Instanzen hinzuzufügen und zu entfernen.
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2