累积百分比

时间:2012-07-31 17:53:56

标签: jasper-reports ireport


 Drug      Item Count   Total Cost  Cost/Item   % Total Cost    Cumulative % Total Cost
 Humalog          10          250   $25.00          6.7%           6.7%
 Novolog          5           100   $20.00          2.7%           9.4%
 Apidra           20          600   $30.00          16.1%          25.5%
 Velosulin        10          800   $80.00          21.5%          47.0%
 Lantus           50         1200   $24.00          32.3%          79.3%
 Levemir          35          770   $22.00          20.7%          100.0%

我在iReport中有一个详细的乐队成功计算每件物品的成本和总成本的百分比 - 见上面的模拟。对于总费用的百分比,我采用$ F {cost} / $ V {sum_all_costs}。不过,我在总成本的累积百分比方面遇到了一些麻烦。我可以得到一个显示累积和的变量:

Name: RUNNING_SUM
Calculation: Sum
Reset type: Report
Increment type: None
Variable Expression: $F{cost}
Evaluation Time: Now <-- when the variable is used in the detail band

有关如何获取此累计金额并获得累积百分比的任何想法?

1 个答案:

答案 0 :(得分:1)

显示运行总计很简单(正如您在问题中所示)。运行百分比的问题在于您需要首先了解总数。正如您所指出的,从概念上讲,您需要稍后评估分母。但是没有办法指明它。

当我在过去这样做时,我这样做:将整个当前报告视为子报告。报告中唯一需要的更改是添加一个名为$ P {GrandTotal}的参数。然后创建一个重新使用相同查询的全新报告。它计算GrandTotal并将其传递给子报表。主报告根本不需要任何显示元素。既然子报表以总计作为参数,您可以将运行百分比设为$F{RUNNING_SUM} / $P{GrandTotal}

注意:主报告实际上不需要运行完全相同的查询。使用修改后的查询来计算数据库中的总数可能是有意义的。只要它以某种方式计算总数就可以了。