【问题标题】:Orbeon: check if any yes-no answer in a repeated grid is trueOrbeon:检查重复网格中的任何是 - 否答案是否为真
【发布时间】:2019-02-11 13:36:30
【问题描述】:

我有一个包含多个控件的重复网格,其中一个是是-否控件。

在重复网格之外的控件中,我想显示一个警告(使用公式),只要任何是-否答案为是,就会出现该警告。

我的尝试:

contains(string-join($my-yes-no-control), 'true')

但是,Orbeon Form Builder 告诉我这是一个Incorrect XPath expression。似乎字符串连接功能不可用。为什么不呢,否则我该怎么做?

这是一个示例表单: http://demo.orbeon.com/demo/fr/orbeon/builder/edit/1a97481f06e382fbfd689a4286a9ed3e1ef7c3be

【问题讨论】:

  • 分享源代码和想要的输出
  • 问题出在...添加了示例链接
  • 你想要的输出是什么?如果单选按钮Yes 被选中,你想得到布尔值True,如果不是,你想得到False
  • 如果 any 单选按钮是我想要true 否则false...

标签: xpath orbeon xforms


【解决方案1】:

下面的表达式做到了:

$my-yes-no-control/string() = 'true'

如果你想深入挖掘,这个表达式中可能有两件事不是很明显:

  • /string():请参阅此detailed explanation,了解为什么需要它。
  • 在 XPath 中,您可以只将序列与项进行比较,如果该项存在于序列中,则比较将返回 true。

【讨论】:

  • 终于成功了,谢谢!我花了一些时间才发现=eq 不一样...The "value comparison" operators (eq, lt, etc.) are designed for comparing single values (i.e. sequences of one value each). The "general comparison" operators (=, <, etc.) are designed for comparing sequences of more than one value.
  • 优秀的 Tagas,我很高兴它成功了,事实上,在这种情况下,eq 的行为与= 不同。 -亚历克斯
猜你喜欢
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 2013-07-17
相关资源
最近更新 更多