Creazione di moduli con sezioni ripetibili creating-forms-with-repeatable-sections

CAUTION
AEM 6.4 ha raggiunto la fine del supporto esteso e questa documentazione non viene più aggiornata. Per maggiori dettagli, consulta la nostra periodi di assistenza tecnica. Trova le versioni supportate qui.

Le sezioni ripetibili sono pannelli che possono essere aggiunti o rimossi in modo dinamico da un modulo.

Ad esempio, quando si richiede un lavoro, il ricercatore di lavoro fornisce i dettagli precedenti sull'occupazione, come il nome dell'azienda, il ruolo, il progetto e altre informazioni. L'informazione di tutti i datori di lavoro richiede sezioni diverse ma simili. In questo caso, il modulo per l'occupazione fornisce una sezione datore di lavoro e fornisce anche un'opzione per aggiungere in modo dinamico altre sezioni di questo tipo. Queste sezioni, aggiunte in modo dinamico, sono note come sezioni ripetibili.

Per creare pannelli ripetibili è possibile utilizzare uno dei metodi seguenti:

Utilizzo di Instance Manager tramite script  using-instance-manager-via-scripts-nbsp

  1. In modalità di modifica, seleziona un pannello, quindi tocca cmppr . Nella barra laterale, in Proprietà, abilita Rendi pannello ripetibile. Specifica i valori per Massimo e Minimo campi.

    Il campo Massimo specifica il numero massimo di volte in cui un pannello può essere visualizzato sulla pagina. Puoi specificare -1 nel campo Conteggio massimo per consentire la visualizzazione del pannello per un numero infinito di volte.

    Il campo Minimo specifica il numero minimo di volte in cui un pannello viene visualizzato sul modulo. Se in seguito si imposta il campo Conteggio minimo su zero, è possibile rimuovere tutte le istanze tramite script al termine del rendering.

    note note
    NOTE
    Per creare un pannello non ripetibile, impostare su uno il valore del campo Massimo e Minimo. Il layout a soffietto non supporta -1 nel campo Conteggio massimo . Puoi specificare un numero elevato per definire il concetto di valore infinito.
  2. L’elemento padre del pannello, che deve essere ripetuto, deve contenere pulsanti di aggiunta ed eliminazione per gestire le istanze dei pannelli ripetibili. Effettuare le seguenti operazioni per inserire i pulsanti nell'elemento padre e abilitare gli script nei pulsanti:

    1. Dalla barra laterale, trascinate un componente pulsante nell’elemento padre del pannello. Seleziona il componente e tocca edit-rules . Le regole del pulsante si aprono nell’editor di regole.

    2. Nella finestra Editor regole, fai clic su Crea.

      Seleziona Editor visivo nella riga Oggetti modulo e funzioni.

      1. Nell'area della regola, in QUANDO, selezionare stato è selezionato.

      2. Sotto THEN:

        • Per creare un pulsante Aggiungi pannello, seleziona Aggiungi istanza e trascina il pannello utilizzando pannello laterale di attivazione o selezionalo utilizzando Rilascia oggetto o seleziona qui.
        • Per creare un pulsante Elimina pannello, seleziona Rimuovi istanza e trascina il pannello utilizzando pannello laterale di attivazione o selezionalo utilizzando Rilascia oggetto o seleziona qui.

      Seleziona Editor di codice nella riga Oggetti modulo e funzioni. Fai clic su Modifica regole e nell'area codice:

      • Per creare un pulsante Aggiungi pannello, specificare this.panel.instanceManager.addInstance()
      • Per creare un pulsante di eliminazione del pannello, specificare this.panel.instanceManager.removeInstance(this.panel.instanceIndex)

      Fai clic su Fine.

      note note
      NOTE
      Se un campo appartiene a un pannello ripetibile, non è possibile accedervi direttamente utilizzando il suo nome negli script. Per accedere al campo, specifica l’istanza ripetibile a cui appartiene il campo utilizzando la instances API in InstanceManager. La sintassi da utilizzare instances API in InstanceManager è:
      <panelName>.instanceManager.instances[<instanceNumber>].<fieldname>
      Ad esempio, è possibile creare un modulo adattivo con un pannello ripetibile con una casella di testo. Quando si precompila il modulo con tre caselle di testo ripetibili, è necessario utilizzare il codice xml sottostante:
      <panel1><textbox1>AA1</panel1></textbox1>
      <panel1><textbox1>AA2</panel1></textbox1>
      <panel1><textbox1>AA3</panel1></textbox1>
      Per leggere i dati AA1, specifica:
      Panel1.instanceManager.instances[0].textbox.value
      Per leggere i dati AA2, specifica:
      Panel1.instanceManager.instances[1].textbox.value
      Per ulteriori informazioni, consulta: Classe: InstanceManager#instances in Riferimento API Java di AEM Forms.
      note note
      NOTE
      Quando tutte le istanze di un pannello vengono rimosse da un modulo adattivo, per aggiungere un’istanza del pannello rimosso, utilizza la sintassi _panelName per acquisire il gestore di istanze del pannello e l’API addInstance di instance manager per aggiungere l’istanza eliminata. Ad esempio, _panelName.addInstance(). Aggiunge un'istanza del pannello rimosso.

Utilizzo del layout a soffietto per il pannello principale   using-the-accordion-layout-for-the-parent-panel-nbsp

Un pannello dispone di diverse opzioni di layout. L'opzione Layout per il design accordiano è preconfigurata per pannelli ripetibili. Esegui i seguenti passaggi per il pannello ripetibile con l'opzione Layout per la progettazione accordian:

  1. Nell’elemento padre del pannello da ripetere, tocca cmppr . Puoi vedere le proprietà nella barra laterale. In Layout a discesa, seleziona Accordion.

  2. Tocca su un pannello da ripetere cmppr . Puoi visualizzare le proprietà del pannello nella barra laterale. Abilita la Rendi pannello ripetibile e specifica il valore per Massimo e Minimo campi.

    Ora è possibile utilizzare il segno più (+) ed eliminare ( pannello di eliminazione ) per aggiungere e rimuovere i pannelli.

Uso di sottomoduli ripetuti da modello di modulo (XDP/XSD) using-repeating-subforms-from-form-template-xdp-xsd

Il sottomodulo ripetibile è simile ai pannelli ripetibili in Forms adattivo. In AEM Forms Designer, eseguire i seguenti passaggi per creare un sottomodulo ripetuto:

  1. Nella palette Gerarchia, selezionare il sottomodulo principale del sottomodulo che si desidera ripetere.
  2. Nella palette Oggetto, fare clic sulla scheda Sottomodulo, quindi selezionare Flusso dall’elenco Contenuto.
  3. Selezionare il sottomodulo da ripetere.
  4. Nella palette Oggetto, fare clic sulla scheda Sottomodulo, quindi selezionare Posizionato o Flusso dall’elenco Contenuto.
  5. Fare clic sulla scheda Binding e selezionare Ripeti sottomodulo per ogni elemento dati.
  6. Per specificare il numero minimo di ripetizioni, selezionare Conteggio min. e digitare un numero nella casella associata. Se questa opzione è impostata su 0 e al momento dell’unione dei dati non vengono forniti dati per gli oggetti del sottomodulo, il sottomodulo non viene posizionato durante il rendering del modulo.
  7. Per specificare il numero massimo di ripetizioni, selezionare Massimo e digitare un numero nella casella associata. Se non si specifica un valore nella casella Massimo, il numero di ripetizioni dei sottomoduli sarà illimitato.
  8. Per specificare un numero impostato di ripetizioni del sottomodulo, indipendentemente dalla quantità di dati, selezionare Conteggio iniziale, quindi digitare un numero nella casella associata. Se si seleziona questa opzione e non sono disponibili dati o sono presenti un numero inferiore di voci rispetto al valore di Conteggio iniziale specificato, le istanze vuote del sottomodulo verranno comunque posizionate nel modulo.
  9. Aggiungere due pulsanti nel sottomodulo principale, uno per aggiungere un’istanza e l’altro per eliminare un’istanza di sottomodulo ripetibile. Per i passaggi dettagliati vedi Creare un’azione.
  10. Ora collega il modello di modulo al modulo adattivo. Per i passaggi dettagliati vedi Creare un modulo adattivo basato su un modello.
  11. Utilizzare i pulsanti creati nel passaggio 9 per aggiungere e rimuovere sottomoduli.

Il file .zip allegato contiene un sottomodulo ripetibile di esempio.

Ottieni file

Utilizzo delle impostazioni di ripetizione di uno schema XML (XSD) using-repeat-settings-of-an-xml-schema-xsd-br

È possibile creare pannelli ripetibili da uno schema XML e dalla proprietà minOccours & maxOccours di qualsiasi elemento di tipo complesso. Per informazioni dettagliate sullo schema XML, vedere Creare moduli adattivi utilizzando lo schema XML come modello di modulo.

Nel codice seguente, la SampleTypeIl pannello utilizza la proprietà minOccours e 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
Per il layout non generico, utilizza i componenti pulsante per moduli adattivi per aggiungere e rimuovere istanze.
recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da