JasperReports - 交叉表页脚中的累积和

时间:2016-05-24 16:10:10

标签: java jasper-reports crosstab cumulative-sum dynamic-jasper

是否可以在JasperReports中的交叉表元素中获取累积总和(下图中的最后一行)?我只是"需要一些变量来保存前一列总值的值。

enter image description here

而不是最后一行,我尝试添加(在交叉表元素之后)1个静态文本,其值为"累积"并且在具有累积值的水平列表之后(我已经在我的XML数据源中计算了累积值)。如果使用列数少于5,6,7 ,如果交叉表应保持与左对齐(在导出之前将其与Java API中间编程对齐),这是可以解决的问题)。如果元素在水平方向上居中,或者由于列数而将表分成多个部分,则Aligment会崩溃。

我还尝试了衡量总量度"或类似的东西使用措施,参数和变量,但不能使它工作。

DynamicJasper似乎也没有这方面的解决方案(我今天对它进行了测试,很遗憾,如果我错过了其API中的内容)。

如果您有任何使用Jaspersoft Studio,JasperReport API或DynamicJasper的解决方案,请提供帮助。提前致谢!

1 个答案:

答案 0 :(得分:0)

好的,所以既然我创建了自己的XML数据源,我就决定采用解决方法。

原始XML文件结构如下:

<rootElement>
    <company>
        <name>Company A</name>
        <percentage>0.0509</percentage>
        <value>10000</value>
    </company>
    <company>
        <name>Company B</name>
        <percentage>0.0433</percentage>
        <value>10000</value>
    </company>
    <!-- and the rest goes here -->
</rootElement>

总计是使用计算类型总和计算的,而值表达式是字段

要获取行累积,我会在每个<company>标记中再添加一个子元素,因此XML结构为:

<rootElement>
    <company>
        <name>Company A</name>
        <percentage>0.0509</percentage>
        <value>10000</value>
        <cumulativePerPercentage>38000</cumulativePerPercentage>
    </company>
    <company>
        <name>Company B</name>
        <percentage>0.0433</percentage>
        <value>10000</value>
        <cumulativePerPercentage>66000</cumulativePerPercentage>
    </company>
    <!-- and the rest goes here -->
</rootElement>

对于累积行,我在字段 cumulativePerPercentage 上创建新度量,计算类型为平均值