Creare moduli con sezioni ripetibili (Componenti core) repeat-panel

Versione
Collegamento articolo
AEM 6.5
Fai clic qui
AEM as a Cloud Service
Questo articolo

Una sezione ripetibile fa riferimento a una parte di un modulo che può essere duplicata o ripetuta più volte per raccogliere informazioni per più istanze degli stessi dati.

Si consideri, ad esempio, un modulo utilizzato per raccogliere informazioni sull’esperienza lavorativa di una persona. È possibile che sia disponibile una sezione ripetibile per l’acquisizione dei dettagli di ogni processo precedente. In genere, la sezione ripetibile contiene campi quali il nome dell’azienda, la qualifica, le date di assunzione e le responsabilità lavorative. L’utente può aggiungere più istanze della sezione ripetibile per immettere informazioni su ogni lavoro svolto.

Ripetibilità

Alla fine di questo articolo imparerai a:

  • Creare una sezione ripetibile in un modulo adattivo
  • Impostare il numero minimo o massimo di ripetizioni per un componente Modulo adattivo
  • Utilizza l’editor di regole per configurare azioni di aggiunta o eliminazione per le sezioni ripetibili

È possibile utilizzare i componenti Pannello, Pannello a soffietto, Schede orizzontali, Schede verticali o Procedura guidata per rendere ripetibili le sezioni di un modulo adattivo. È possibile aggiungere componenti figlio a questi componenti per creare una sezione ripetibile in un modulo.

Gli esempi in questo documento si basano sul componente Panel. È possibile eseguire gli stessi passaggi per rendere ripetibili i componenti Pannello, Pannello a soffietto, Schede orizzontali, Schede verticali o Procedura guidata.

Aggiungere o eliminare sezioni ripetibili in un modulo add-or-delete-repeatable-section-in-panel-container

Per ripetere un pannello nel modulo o rimuovere pannelli ripetibili, un autore del modulo utilizza un componente pulsante per aggiungere o rimuovere un’istanza del pannello. Per aggiungere o eliminare sezioni ripetibili (pannelli) in un modulo:

Rendi il contenitore pannello ripetibile make-panel-container-repeatable

Scheda Accessibilità

Per rendere ripetibile un pannello, effettuate le seguenti operazioni:

  1. Selezionare un contenitore di pannelli e selezionare cmppr .

  2. Fai clic sul pannello di ripetizione e attiva l'opzione per rendere il pannello ripetibile.

  3. Imposta ripetizioni minime come richiesto per le sezioni ripetibili minime. Puoi impostare ripetizioni minime su zero per la mancata ripetizione dei pannelli o per rimuovere i pannelli ripetuti. Per impostazione predefinita, il valore minimo di ripetizione è zero.

  4. Imposta il numero massimo di ripetizioni per ripetere il numero di volte richieste nel pannello; per impostazione predefinita il valore è infinito.

    note note
    NOTE
    • Il valore di ripetizione minima non può essere -ve.
    • Per creare un pannello non ripetibile, imposta il valore del campo massimo e minimo su uno.

Aggiungi sezione ripetibile utilizzando Gestione istanze (tramite script) add-repeatable-section-using-instance-manager-via-scripts

L’elemento principale del pannello da ripetere deve contenere un pulsante Aggiungi per gestire l’istanza di ripetizione del pannello. Per inserire pulsanti nell'elemento padre e attivare gli script sui pulsanti, effettuare le seguenti operazioni:

  1. Aggiungi un componente pulsante all'elemento padre del pannello. Nell'esempio di video seguente, viene utilizzato un componente pulsante con il nome dell'etichetta Add e il nome del campo AddPanel. Selezionare il componente e selezionare edit-rules . Le regole del componente Pulsante si aprono nell’editor di regole.

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

    Selezionare Editor visivo nella riga Oggetti e funzioni modulo.

    1. Nell'area delle regole, in WHEN, selezionare lo stato su cui fare clic.
    2. In THEN, seleziona Aggiungi istanza e trascina il pannello utilizzando toggle-side-panel oppure selezionalo utilizzando Rilascia oggetto o seleziona qui.

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

    • Per creare un pulsante Aggiungi pannello, specificare this.panel.instanceManager.addInstance()

    Fai clic su Fine.

Eliminare le sezioni ripetibili utilizzando Gestione istanze (tramite script) delete-repeatable-section-using-instance-manager-via-scripts

L’elemento padre del pannello deve contenere un pulsante Elimina per eliminare l’istanza dei pannelli ripetibili. Per inserire pulsanti nell'elemento padre e abilitare gli script sui pulsanti per eliminare i pannelli ripetibili, effettuare le seguenti operazioni:

  1. Aggiungi un componente pulsante all'elemento padre del pannello. Nel video seguente viene utilizzato un componente pulsante con il nome etichetta delete e il nome campo DeletePanel. Selezionare il componente e selezionare edit-rules . Le regole del componente Pulsante si aprono nell’editor di regole.

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

    Selezionare Editor visivo nella riga Oggetti e funzioni modulo.

    1. Nell'area delle regole, in WHEN DeletePanel, selezionare lo stato su cui si fa clic.
    2. In THEN, seleziona Rimuovi istanza e trascina il pannello tramite toggle-side-panel oppure selezionalo tramite Rilascia oggetto o seleziona qui.

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

    • Per creare un pulsante Elimina pannello, specificare this.panel.instanceManager.removeInstance(this.panel.instanceIndex)

    Fai clic su Fine.

NOTE
Se un campo appartiene a un pannello ripetibile, non è possibile accedervi direttamente utilizzando il relativo nome negli script. Per accedere al campo, specificare l'istanza ripetibile a cui appartiene il campo utilizzando l'API instances in InstanceManager. Sintassi per l'utilizzo dell'API instances in InstanceManager:
<panelName>.instanceManager.instances[<instanceNumber>].<fieldname>
Ad esempio, puoi 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 il codice xml seguente:
<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
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 la gestione delle istanze del pannello e l’API addInstance di gestione istanze per aggiungere l’istanza eliminata. _panelName.addInstance(). Aggiunge un’istanza del pannello rimosso.

Utilizzo di sottomaschere ripetute dal modello di modulo (XDP/XSD) using-repeating-subforms-from-form-template-xdp-xsd

La sottomaschera ripetibile è simile ai pannelli ripetibili in Adaptive Forms. Per creare una sottomaschera ripetuta in AEM Forms Designer, effettuare le seguenti operazioni:

  1. Nella tavolozza Gerarchia selezionare la sottomaschera padre della sottomaschera che si desidera ripetere.
  2. Nella tavolozza Oggetto fare clic sulla scheda Sottomodulo e nell'elenco Contenuto selezionare Flussi.
  3. Selezionare la sottomaschera da ripetere.
  4. Nella tavolozza Oggetto, fare clic sulla scheda Sottomodulo e selezionare Posizionato o Flusso nell'elenco Contenuto.
  5. Fare clic sulla scheda Associazione e selezionare Ripeti sottomaschera per ogni elemento dati.
  6. Per specificare il numero minimo di ripetizioni, selezionare Conteggio minimo e digitare un numero nella casella associata. Se questa opzione è impostata su 0 e non vengono forniti dati per gli oggetti nel sottomodulo al momento dell'unione dei dati, il sottomodulo non viene posizionato al momento del rendering del modulo.
  7. Per specificare il numero massimo di ripetizioni di sottomaschera, selezionare Max e digitare un numero nella casella associata. Se non si specifica un valore nella casella Max, il numero di ripetizioni della sottomaschera è illimitato.
  8. Per specificare un numero impostato di ripetizioni di sottomaschera, indipendentemente dalla quantità di dati, selezionare Conteggio iniziale e digitare un numero nella casella associata. Se si seleziona questa opzione e non sono disponibili dati o sono presenti meno voci di dati rispetto al valore Conteggio iniziale specificato, le istanze vuote del sottomodulo verranno comunque inserite nel modulo.
  9. Aggiungere due pulsanti nella sottomaschera padre: uno per aggiungere un'istanza e un altro per eliminare un'istanza di una sottomaschera ripetibile. Per i passaggi dettagliati, vedi Generare un'azione.
  10. Collega ora il modello di modulo al modulo adattivo. Per i passaggi dettagliati, consulta Creare un modulo adattivo basato su un modello.
  11. Utilizzare i pulsanti creati nel passaggio 9 per aggiungere e rimuovere sottomaschere.

Il file .zip allegato contiene un modulo secondario 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 & maxOccurs 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, il pannello SampleType utilizza la proprietà minOccours & 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>

Consulta anche see-also

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab