如何根据总和计算行的百分比?

时间:2016-04-15 17:07:26

标签: jasper-reports percentage

价格由$F{price}表示,我创建了一个变量,用于汇总每个商品的价格以获得总价$V{total_price},两者都是java.Math.BigDecimal

我看了一些帖子,建议将Evaluation Time属性更改为AUTO我已完成的总text field,但百分比是根据每个项目的累计总和计算的,因此我获得100作为第一项的百分比,依此类推。在评估每个项目的百分比时,如何立即获得总价?

Example

1 个答案:

答案 0 :(得分:2)

是的,你很接近,应该在textField百分比上使用auto。

据我所知,你有这个变量,总结一下价格

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

要获取您的百分比字段,只需添加一个带有evaluationTime="auto"的textField,其中$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>