为了找出总成本,我想不出正常的计算技巧。所以我使用了一个非常小的 XQuery 来解决这个问题。
我不知道您使用的是表单生成器还是“手动”编码的 Xforms,但我使用“手动”进行开发。下面是完整的 Xforms 代码,您可以在 Orbeon Xforms Sandbox 上运行它。
<xhtml:html xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:f="http://orbeon.org/oxf/xml/formatting"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<xhtml:head>
<xforms:model xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema" id="main-model">
<xforms:instance id="form-instance">
<form>
<sale>
<number-of-units>1</number-of-units>
<unit-price>100</unit-price>
</sale>
<sale>
<number-of-units>2</number-of-units>
<unit-price>500</unit-price>
</sale>
</form>
</xforms:instance>
</xforms:model>
</xhtml:head>
<xhtml:body>
<table>
<tr>
<td>
Total price:
</td>
<td>
<xforms:output value="sum(
for $i in instance('form-instance')/sale
return $i/number-of-units * $i/unit-price
)
" />
</td>
</tr>
</table>
</xhtml:body>
</xhtml:html>
浏览器输出:
如果您使用的是表单生成器,您可以根据需要选择结果表达式并用于计算绑定定义的属性。
表达:
sum(
for $i in instance('form-instance')/sale
return $i/number-of-units * $i/unit-price
)
祝你好运!