如何统计指定区域中的必填控件数量

编程语言 2026-07-11

设想在某个区域内有4 个控件,其中只有3 个是必填的(required="true()")。

如何动态计算必填控件的数量?

我尝试了以下这个“计算型”的xPath公式,但似乎并不工作:

  • 控件名称:FS_ElectricalRequired
  • 公式:

count(//scnElectricalWork//*[@required='true']) * 测试表单

解决方案

请尝试以下方法:

count(//scnElectricalWork//*[
    xxf:is-control-required(concat(local-name(), '-control'))
])

该函数 xxf:is-control-required() 接受一个控件标识符。上面的表达式依赖于表单中的命名约定:如果你有一个名为 gaga 的控件,相应的元素将是 <gaga>,控件的ID将是 gaga-control

在模型中,计算是在进行验证(其中“必填”是验证的一部分)之前进行的。因此,我们不能在这里使用计算值,需要改用动作语法。你可以把下面的片段放在你的 xf:model 里面,例如刚好在开头标签之后,这样它们就位于表单定义的前部,便于编辑。我也在演示中的表单上进行了更新以反映这一点。

<fr:listener
  version="2018.2"
  events="form-load-after-controls"
  actions="set-alex-suggestion"/>

<fr:action name="set-alex-suggestion" version="2018.2">
    <fr:control-setvalue
        control="AlexSuggestion"
        value="
            count(//scnElectricalWork//*[
                xxf:is-control-required(concat(local-name(), '-control'))
            ])
        "/>
</fr:action>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章