可重複的區段是可動態新增或移除至表單的面板。
例如,在申請職務時,求職者會提供先前的雇傭詳細資料,例如公司名稱、職責、專案和其他資訊。 所有雇主的資訊需要不同但相似的部分。 在這種情況下,雇用表提供雇主部分,並提供動態添加更多此類部分的選項。 這些動態添加的節稱為「可重複」節。
您可以使用下列其中一種方法來建立可重複的面板:
在編輯模式中,選取面板,然後點選。 在側欄的「屬性」下,啟用「使面板可重複」。指定Maximum和Minimum欄位的值。
「最大值」欄位會指定面板在頁面上出現的最大次數。 您可以在「最大計數」欄位中指定-1,讓面板出現無限次數。
「最小值」欄位會指定面板在表單上出現的次數下限。 如果您將「最小計數」欄位設為零,稍後您就可以在轉譯完成後,透過指令碼移除所有例項。
若要建立非可重複的面板,請將「最大值」和「最小值」欄位的值設為1。 accordion版面不支援「最大計數」欄位中的-1。 您可以指定一個高數來表示無限值的概念。
要重複的面板的父級應包含添加和刪除按鈕,以管理可重複面板的實例。 執行以下步驟,將按鈕插入父項並啟用按鈕上的指令碼:
從側欄,將按鈕元件拖放至面板的父項。 選取元件並點選。 按鈕的規則在規則編輯器中開啟。
在「規則編輯器」窗口中,按一下建立。
在「表單對象和函式」行中選擇「可視編輯器」。
在規則區域的WHEN下,選擇狀態被按一下。
在THEN下:
在「表單對象和函式」行中選擇「代碼編輯器」。 按一下「編輯規則」,然後在程式碼區域中:
this.panel.instanceManager.addInstance()
this.panel.instanceManager.removeInstance(this.panel.instanceIndex)
按一下Done。
如果欄位屬於可重複面板,則不能在指令碼中使用其名稱直接訪問該面板。 若要存取欄位,請使用InstanceManager
中的instances
API,指定欄位所屬的可重複例項。 使用InstanceManager
中instances
API的語法為:
<panelName>.instanceManager.instances[<instanceNumber>].<fieldname>
例如,您可建立具有文字方塊的可重複面板的最適化表單。 當您使用三個可重複的文字方塊預先填入表格時,需要下列xml:
<panel1><textbox1>AA1</panel1></textbox1>
<panel1><textbox1>AA2</panel1></textbox1>
<panel1><textbox1>AA3</panel1></textbox1>
要讀取AA1資料,請指定:
Panel1.instanceManager.instances[0].textbox.value
要讀取AA2資料,請指定:
Panel1.instanceManager.instances[1].textbox.value
如需詳細資訊,請參閱:類別:AEM Forms Java API reference中的InstanceManager#instances。
從最適化表單移除面板的所有例項後,若要新增已移除面板的例項,請使用_panelName語法來擷取面板的例項管理員,並使用例項管理員的addInstance API來新增已刪除的例項。 例如,_panelName.addInstance()。 它會新增移除面板的例項。
面板有各種版面選項。 針對accordian設計的「版面」選項可立即支援可重複的面板。 使用Layout for accordian設計選項對可重複面板執行以下步驟:
在要重複的面板的父項上,按一下。 您可以在側欄中看到屬性。 在Layout下拉式清單中,選擇Accordion。
在要重複的面板上,點選。 您可在側欄中看到面板屬性。 啟用「使面板可重複」標籤,並指定 Maximum 和 Minimum 欄位的值。
現在,您可以使用加號(+)和刪除()按鈕來新增和移除面板。
可重複的子表單類似於Adaptive Forms中可重複的面板。 在AEM Forms Designer中,執行下列步驟以建立重複的子表單:
附加的。zip檔案包含範例可重複的子表單。
您可以從XML架構和任何複雜類型元素的minOccours & maxOccurs屬性建立可重複的面板。 有關XML架構的詳細資訊,請參閱使用XML架構作為表單模型建立自適應表單。
在下列程式碼中,SampleType
面板會使用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>
對於非收合式版面,請使用最適化表單按鈕元件來新增和移除例項。