总结重复部分的计算值

时间:2019-07-12 08:49:07

标签: orbeon

我试图对重复部分(section-a-it)内的计算值求和,并将结果放在重复部分外的计算值上,但它不起作用。

我试图像

那样声明我的求和字段(section-a-summary-total)之类的公式

sum($section-a-it/section-a-it-iteration/section-a-repetition/section-data/section-value-total[string() castable as xs:decimal])

所有组合每次都删除一个单个节节点。

我的表单如下:

<form>
    <section-a>
        <section-a-summary>
            <section-a-summary-total/>
        </section-a-summary>
        <section-a-it>
            <section-a-it-iteration>
                <section-a-repetition>
                    <section-data>
                        <section-percent/>
                        <section-value/>
                        <section-value-total/>
                    </section-data>                                    
                </section-a-repetition>
            </section-a-it-iteration>                            
        </section-a-it>                        
    </section-a>
</form>

每次迭代section-value-total内的声明类似于round-half-to-even($section-data-value* ($section-percent div 100))

当我在section-value-totalsection-percent上引入值时,

section-value可以正常工作,但是section-a-summary-total始终是0.00

我已经尝试过https://doc.orbeon.com/form-builder/formulas/formulas-examples#sum-of-values-in-a-repeat

我在https://pastebin.com/eTHqY0ia中附加了原始源代码

如果我尝试将其放入sum()round-half-to-even($section-value[string() castable as xs:decimal] * ($section-percent[string() castable as xs:decimal] div xs:decimal(100)),2)有时会在第一次迭代中起作用

在尝试了一些想法并进行了一些计算上的更改之后,在此版本的此点上,您的解决方案有效https://pastebin.com/6MSFq1WL,我有能力更新价值。我不得不放入xxf:analysis.calculate="true",因为仅在添加新行之后才计算值。

1 个答案:

答案 0 :(得分:0)

尝试将您的section-a-summary-total字段计算为:

sum($section-value-total[string() castable as xs:decimal])

当您位于重复的网格之外(“迭代”之外)并引用字段的值时,表达式(在这种情况下为$section-value-total)将返回该值的所有值的序列字段,您可以直接将其传递给sum()