基于总和,如何计算各行的百分比?

3
价格由$F{price}表示,我创建了一个变量来对每个项目的价格求和以获得总价$V{total_price},它们都是java.Math.BigDecimal
我阅读了一些帖子,建议将总文本字段评估时间属性更改为AUTO,我已经这样做了,但百分比是根据每个项目的累计总和计算的,因此我得到第一个项目的百分比为100,以此类推。如何在计算每个项目的百分比时一次性获取总价?

Example

1个回答

3

你很接近了,"auto" 应该用在百分比文本框上。

据我所理解,你有这个变量,来总结价格。

<variable name="total_price" class="java.math.BigDecimal" calculation="Sum">
    <variableExpression><![CDATA[$F{price}]]></variableExpression>
</variable>

要获得您的百分比字段,只需添加一个textField,其中 evaluationTime="auto",在此处将 $F{price} 除以 $V{total_price}

自动 - 对于参与文本字段表达式的每个变量,都会在对应其重置类型的时间进行评估。 字段现在被评估。 此评估类型应用于组合在一起的表达式的值,例如总数的百分比。

示例

<textField evaluationTime="Auto" pattern="#,##0.00 %">
    <reportElement x="200" y="0" width="100" height="20" uuid="e88223c7-12b6-401d-80b7-6c8341773027"/>
    <textElement textAlignment="Right" verticalAlignment="Middle"/>
    <textFieldExpression><![CDATA[$F{price}.doubleValue()/$V{total_price}.doubleValue()]]></textFieldExpression>
</textField>

evaluationTime="Auto" - 我真的很喜欢这个合法的“黑科技”。在使用Map时使用黑科技是一件疯狂的事情...)) - Alex K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接