使用一组自适应表单创建自适应表单 create-an-adaptive-form-using-a-set-of-adaptive-forms

CAUTION
AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

概述 overview

在工作流(如开立银行帐户的应用程序)中,您的用户会填写多个表单。 您可以将表单堆叠在一起并构建一个大型表单(父表单),而不是要求他们填写一组表单。 向较大的表单添加自适应表单时,它将添加为面板(子表单)。 添加一组子表单以创建父表单。 您可以根据用户输入显示或隐藏面板。 父表单的按钮(如提交和重置)会覆盖子表单的按钮。 要在父表单中添加自适应表单,您可以从资产浏览器中拖放自适应表单(如自适应表单片段)。

可用功能包括:

  • 独立创作
  • 显示/隐藏适当的表单
  • 延迟加载

与使用单个组件创建父表单相比,独立创作和延迟加载等功能可提供更佳的性能。

NOTE
不能将基于XFA的自适应表单/片段用作子表单或父表单。

幕后 behind-the-scenes

您可以在父表单中添加基于XSD的自适应表单和片段。 父表单的结构与 任意自适应表单. 将自适应表单添加为子表单时,它将作为面板添加到父表单中。 绑定子表单的数据存储在 dataafBoundData 父表单的XML架构的部分。

例如,您的客户会填写申请表。 表单的前两个字段是名称和标识。 其XML为:

<afData>
    <afUnboundData>
        <data />
    </afUnboundData>
    <afBoundData>
        <data xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
            <applicantName>Sarah Rose</applicantName>
            <applicantId>1234</applicantId>
        </data>
    </afBoundData>
</afData>

您可以在应用程序中添加其他表格,以让客户填写其办公地址。 子表单的架构根为 officeAddress. 应用 bindref /application/officeAddress/officeAddress. 如果 bindref未提供,则会添加子表单,因为 officeAddress 子树。 请参阅下面表单的XML:

<afData>
    <afUnboundData>
        <data />
    </afUnboundData>
    <afBoundData>
        <data xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
            <applicantName>Sarah Rose</applicantName>
            <applicantId>1234</applicantId>
            <officeAddress>
                <addressLine>1, Geometrixx City</addressLine>
                <zip>11111</zip>
            </officeAddress>
        </data>
    </afBoundData>
</afData>

如果您插入另一个表单,允许客户提供住宅地址,请应用 bindref /application/houseAddress or /houseAddress.XML如下所示:

<afData>
    <afUnboundData>
        <data />
    </afUnboundData>
    <afBoundData>
        <data xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
            <applicantName>Sarah Rose</applicantName>
            <applicantId>1234</applicantId>
            <officeAddress>
                <addressLine>1, Geometrixx City</addressLine>
                <zip>11111</zip>
            </officeAddress>
            <houseAddress>
                <addressLine>2, Geometrixx City</addressLine>
                <zip>11111</zip>
            </houseAddress>
        </data>
    </afBoundData>
</afData>

如果要保留与架构根( Address在本例中),使用索引二进制文件。

例如,应用bindrefs /application/address[1]/address[1]/application/address[2]/address[2]. 表单的XML为:

<afData>
    <afUnboundData>
        <data />
    </afUnboundData>
    <afBoundData>
        <data xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
            <applicantName>Sarah Rose</applicantName>
            <applicantId>1234</applicantId>
            <address>
                <addressLine>1, Geometrixx City</addressLine>
                <zip>11111</zip>
            </address>
            <address>
                <addressLine>2, Geometrixx City</addressLine>
                <zip>11111</zip>
            </address>
        </data>
    </afBoundData>
</afData>

您可以使用 bindRef 属性。 的 bindRef 属性允许您指定指向XML架构树结构中某个位置的路径。

如果子表单未绑定,则其数据存储在 dataafUnboundData 父表单的XML架构的部分。

您可以多次将自适应表单添加为子表单。 确保 bindRef 已正确修改,以便自适应表单的每个使用实例都指向数据根下的不同子根。

NOTE
如果不同的表单/片段映射到同一子根,则数据会被覆盖。

使用资产浏览器将自适应表单添加为子表单 adding-an-adaptive-form-as-a-child-form-using-asset-browser

执行以下步骤,使用资产浏览器将自适应表单添加为子表单。

  1. 在编辑模式下打开父表单。

  2. 在侧栏中,单击 资产 assets-browser . 在“资产”下,选择 自适应表单 从下拉菜单中。
    在资产下选择自适应表单

  3. 拖放要作为子表单添加的自适应表单。
    将自适应表单拖放到您的网站中 您拖放的自适应表单将作为子表单添加。

recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da