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 job search fornisce i dettagli occupazionali precedenti come il nome della società, 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'impiego fornisce una sezione per il datore di lavoro e offre anche la possibilità di aggiungere in modo dinamico altre sezioni di questo tipo. Tali sezioni, aggiunte in modo dinamico, sono note come sezioni ripetibili.
Per creare pannelli ripetibili, potete usare uno dei seguenti metodi:
In modalità di modifica, selezionate un pannello, quindi toccate . Nella barra laterale, in Proprietà, attivare Realizza pannello ripetibile. Specificare i valori per i campi Maximum e Minimum.
Il campo Massimo specifica il numero massimo di volte in cui un pannello può essere visualizzato sulla pagina. Potete 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 che un pannello viene visualizzato sul modulo. Se si imposta il campo Conteggio minimo su zero, in seguito sarà possibile rimuovere tutte le istanze tramite gli script al termine della rappresentazione.
Per creare un pannello non ripetibile, impostate su uno il valore del campo Massimo e Minimo. Il layout a soffietto non supporta -1 nel campo Conteggio massimo. Potete specificare un numero elevato per definire il concetto di valore infinito.
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 per l'elemento padre e attivare gli script sui pulsanti:
Dalla barra laterale, trascinate un componente pulsante nell’elemento padre del pannello. Selezionate il componente e toccate . Le regole del pulsante si aprono nell'editor delle regole.
Nella finestra Editor regole, fare clic su Crea.
Selezionare Editor visivo nella riga Oggetti modulo e funzioni.
Nell'area della regola, in WHEN, selezionare lo stato su.
In THEN:
Selezionare Editor di codice nella riga Oggetti modulo e funzioni. Fare clic su Modifica regole e nell'area codice:
this.panel.instanceManager.addInstance()
this.panel.instanceManager.removeInstance(this.panel.instanceIndex)
Fare clic su Fine.
Se un campo appartiene a un pannello ripetibile, non è possibile accedervi direttamente utilizzando il suo nome negli script. Per accedere al campo, specificare l'istanza ripetibile alla quale il campo appartiene utilizzando l'API instances
in InstanceManager
. La sintassi per utilizzare l'API instances
in InstanceManager
è la seguente:
<panelName>.instanceManager.instances[<instanceNumber>].<fieldname>
Ad esempio, è possibile creare un modulo adattivo con un pannello ripetibile dotato di una casella di testo. Quando si precompila il modulo con tre caselle di testo ripetibili, è necessario disporre del codice xml seguente:
<panel1><textbox1>AA1</panel1></textbox1>
<panel1><textbox1>AA2</panel1></textbox1>
<panel1><textbox1>AA3</panel1></textbox1>
Per leggere i dati AA1, specificare:
Panel1.instanceManager.instances[0].textbox.value
Per leggere i dati AA2, specificare:
Panel1.instanceManager.instances[1].textbox.value
Per ulteriori informazioni, vedi: Classe: InstanceManager#instance in riferimento API Java AEM Forms.
Quando tutte le istanze di un pannello vengono rimosse da un modulo adattivo, per aggiungere un’istanza del pannello rimosso, utilizzate la sintassi _panelName per acquisire il instance manager del pannello e l’API addInstance di instance manager per aggiungere l’istanza eliminata. Ad esempio, _panelName.addInstance(). Aggiunge un’istanza del pannello rimosso.
Un pannello offre diverse opzioni di layout. L'opzione Layout per la progettazione accordian offre supporto per pannelli ripetibili. Effettuate le seguenti operazioni per visualizzare il pannello ripetibile con l'opzione Layout per la progettazione accordiera:
Sul pannello padre da ripetere, toccate . Potete visualizzare le proprietà nella barra laterale. Nel menu a discesa Layout, selezionare Accordion.
In un pannello, che deve essere ripetuto, toccare . Potete visualizzare le proprietà del pannello nella barra laterale. Attivate la scheda Rendi pannello ripetibile e specificate il valore per i campi Massimo e Minimo.
Ora è possibile utilizzare i pulsanti più (+) ed eliminazione ( ) per aggiungere e rimuovere i pannelli.
Il sottomodulo ripetibile è simile ai pannelli ripetibili dell'Forms adattivo. In AEM Forms Designer, effettuare le seguenti operazioni per creare un sottomodulo ripetibile:
Il file .zip allegato contiene un sottomodulo ripetibile di esempio.
È 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 Creazione di 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>
Per il layout non conciliare, utilizzate i componenti pulsante per moduli adattivi per aggiungere e rimuovere istanze.