我们使用控件获得性能问题,这些控件以$ dollar格式输入数字。为了解决这个性能问题,我们在控件绑定中使用而不是实现了以下计算功能。
<xforms:bind id="Amount"
nodeset="instance('sample_form')/Amounts/Amount"
calculate="if (. !=0)
then format-number(xs:double(.),'$#,##0.000')
else ."/>
但是上面代码的问题是,它将控件的值转换为String类型,导致控件中的错误,其值依赖于此。请为我提供上述问题的解决方案或提供更好的建议来处理这种情况。
答案 0 :(得分:0)
如果你只想显示格式化的值(因为你考虑使用calculate
,我认为是这种情况),那么你可以将你的表达式放在calculate
里面一个:
<xforms:output value="..."/>
如果您同时需要输入和输出,并且您希望实例中存储的值只是未格式化的数字,那么我认为使用<fr:currency>
除了某种方式之外还有一种简单的方法重新实现<fr:currency>
提供的功能。如果您同时需要输入和输出,那么我建议您进一步调查,以找到并解决性能问题的根源。