Orbeon 表格 - 重复小节

Orbeon forms - repeated sub-section

我重复了部分(最小重复次数 = 0;最大重复次数 = 9)。在本节中,它被命名为重复子节(最小重复次数 = 1;最大重复次数 = 9)。如果我从部分中删除任何重复,然后 运行 测试并将第一个重复添加到部分,子部分出现时没有重复(尽管我已将最小重复次数设置为 1)。验证器未检测到任何错误。

当我向部分添加重复时,是否可以向子部分添加重复?

当我向部分添加重复时,可能我必须调用子部分模板:

但我不知道应该如何以及在何处调用它。也许在这里的某个地方:

示例格式:https://demo.orbeon.com/demo/fr/orbeon/builder/edit/81751a85c9206ee58ade5b1c16afeea6dc790327

在表单生成器中:

  1. 添加第一个外部部分,使其重复;我将其称为外部重复。

  2. 在节内,添加重复的网格;我将其称为内部重复。

  3. 在重复网格的Section/Grid设置中,勾选初始迭代次数使用模板:

  4. 确保您有 1 次外部迭代和 1 次内部迭代:

  5. 编辑表单的源代码并在 <xf:model>:

    中添加以下内容
     <fr:listener version="2018.2" modes="new" events="form-load-after-data"
                  actions="clear-outer-section"/>
     <fr:action name="clear-outer-section" version="2018.2">
         <fr:repeat-clear repeat="section-1"/>
     </fr:action>
    

对于步骤 1 到 4,当用户创建外部重复的新迭代时,内部重复中的迭代次数将基于您在外部重复的第一次迭代中在 Form Builder 中拥有的迭代次数,而不是从 0 次迭代开始。您的问题是您想要 0 次外部迭代。但是如果你删除最后一个外部迭代,我们在数据中没有关于要创建多少内部迭代的示例。因此,我们在 Form Builder 中保留 1,并在加载表单后立即将其删除,这就是我们在第 5 步中使用 action syntax.

所做的事情