【问题标题】:Orbeon forms - repeated sub-sectionOrbeon 表格 - 重复的小节
【发布时间】:2021-03-01 16:13:45
【问题描述】:

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

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

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

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

示例表单:https://demo.orbeon.com/demo/fr/orbeon/builder/edit/81751a85c9206ee58ade5b1c16afeea6dc790327

【问题讨论】:

  • 有一个解决方案,但它目前在 Orbeon Forms 中暴露了一个错误。我正在研究它,当我们对此有更多了解时,我会在这里跟进。 -亚历克斯
  • 只是好奇:您有机会尝试下面提到的解决方案吗?如果是这样,它对你有用吗? -亚历克斯
  • 嘿,亚历克斯,我还没有尝试过。这周我会尝试测试它。

标签: orbeon


【解决方案1】:

在表单生成器中:

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

  2. 在section内部,添加重复的网格;我称之为内部重复。

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

  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 次外部迭代。但是,如果您删除最后一个外部迭代,我们在数据中没有关于要创建多少内部迭代的示例。因此,我们将 1 保留在 Form Builder 中,并在表单加载后立即将其删除,这就是我们在第 5 步中使用 action syntax 所做的事情。

【讨论】:

  • 作为“section-1”我应该设置外部部分名称,对吧?我已根据您的建议修改了示例表单 (demo.orbeon.com/demo/fr/orbeon/builder/edit/…),但它没有按我的预期工作。当我运行表单时,外部部分应该有 0 次迭代,但是当我添加第一个重复时,内部部分也应该添加(1 次重复)。
  • @m.makos 是的,section-1 是外部部分名称。您在demo.orbeon.com 上的表单链接现在无法使用;你有没有删除那里的表格?如果没有,也许其他人做了。或者,您也可以将源上传到 Gist (gist.github.com)。
  • @Alex,这是新的示例表单:demo.orbeon.com/demo/fr/orbeon/builder/edit/…。这里是源代码:gist.github.com/mmakos-profidata/…
  • @m.makos 知道了,谢谢你的例子;您的示例有效,但我想您没有看到第一次迭代被删除,因为您使用的是测试,并且您在打开 /new 页面时使用运行时的操作语法添加的代码,所以这不是您可以在 Form Builder 中使用 Test 进行测试。 i.imgur.com/xF2MY4R.gif 还有一点:你可以把你的代码用action语法放在模型的开头,这样你点击edit source就可以看到了。
  • @m.makos 太好了,我很高兴我们解决了这个问题。
猜你喜欢
  • 2019-05-06
  • 1970-01-01
  • 2021-04-27
  • 2015-01-18
  • 2016-12-25
  • 2012-01-16
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多