如何在报告中执行百分比计算?

时间:2015-01-02 11:52:00

标签: jasper-reports

我正在尝试构建以下格式的报告:

Some Column A | Some Column B | Some Column C | Percentage Allocation
-------------------------------------------------------------
Value N       | Value B       | 100           | 10%
Value C       | Value S       | 200           | 20%
Value D       | Value Y       | 300           | 30%
Value A       | Value X       | 400           | 40%
-------------------------------------------------------------
                              | 1000          |

Percentage_Allocation列应按如下方式计算:100/1000 * 100

我创建了两个变量:

GRAND_TOTAL定义为Column CPERCENT_ALLOCATION中值的总和 Field value of Column C divided by GRAND_TOTAL定义为Some Column A | Some Column B | Some Column C | Percentage Allocation ------------------------------------------------------------- Value N | Value B | 100 | 100% Value C | Value S | 200 | 66% Value D | Value Y | 300 | 50% Value A | Value X | 400 | 40% ------------------------------------------------------------- | 1000 |

我得到的输出是:

PERCENT_ALLOCATION

我理解这种情况正在发生,因为Evaluation Time的值是在报表上创建新行时计算的。但我希望只有在加载了所有细节后才计算它。也许这是不可能的?我不知道,我能做些什么来实现我的目标输出?

更新:

所以我发现有一个名为PERCENT_ALLOCATION的属性可以帮助我决定何时应该计算列Report。我已将其设置为GRAND_TOTAL,以便Column C的值取PERCENT_ALLOCATION中所有值的总和。但现在我发现Column C仅使用Some Column A | Some Column B | Some Column C | Percentage Allocation ------------------------------------------------------------- Value N | Value B | 100 | 40% Value C | Value S | 200 | 40% Value D | Value Y | 300 | 40% Value A | Value X | 400 | 40% ------------------------------------------------------------- | 1000 | 中的最后一个值进行计算。所以我的报告看起来像这样:

{{1}}

感谢。

1 个答案:

答案 0 :(得分:1)

不要计算变量中的百分比。在报告中的Text Field中执行计算。使用Some Column C的字段值,并将其除以GRAND_TOTAL变量。