Jasper Report 组变量总和返回错误值

问题描述 投票:0回答:1

在我使用 Tibco Jaspersoft 6.3 生成的报告中,我遇到了一个奇怪的问题。 我有一个数据源如下:

order_number - fiscal code - price - region_id

记录可以有相同的order_number,如下:

1 - xxyyzz - 10$ - 001

1 - mmnnxx - 5$  - 001

2 - kkhhff - 6$  - 001

3 - ppookk - 7$  - 001

1 - aayyzz - 10$ - 002

2 - llnnxx - 5$  - 002

2 - oohhff - 6$  - 002

2 - vvookk - 7$  - 002

对于具有相同

order_number
的每组记录,我有一个变量,它使用表达式计算名为
ticket_value
的值。此计算工作正常,我看到每个
order_number
的正确值。

我有基于区域的

price
ticket_value
的总和变量。

我创建了两个组,一组用于

region_id
,一组用于
order_number
。我计算
ticket_value
组页脚中的单个
order_number
以及 Region_id 页脚中每个区域的价格和
ticket_values
的总和。

每个

region_id
的价格总和值都是正确的,但我没有每个
ticket_value
的正确的
region_id
总和值,而且我不明白变量配置中的错误在哪里。

这里是使用的变量的定义:

<variable name="ticket_somma_numero_ordine" class="java.lang.Double" resetType="Group" resetGroup="Gruppo_NUMERO_ORDINE">
        <variableExpression><![CDATA[$V{totale_importo_numero_ordine}.compareTo(new BigDecimal(36.15)) > 0 ? 36.15 : $V{totale_importo_numero_ordine}.doubleValue()]]></variableExpression>
    <variable name="sommatoria_ticket" class="java.lang.Double" resetType="Group" resetGroup="Gruppo_REGIONE" incrementType="Group" incrementGroup="Gruppo_NUMERO_ORDINE">
        <variableExpression><![CDATA[$V{sommatoria_ticket} + $V{ticket_somma_numero_ordine}]]></variableExpression>
        <initialValueExpression><![CDATA[0.0]]></initialValueExpression>
    </variable>

编辑:

我注意到 sum 变量

sommatoria_ticket
这个逻辑是错误的:查看上面的数据示例,有两条记录
order_number
= 1,其中
region_id
= 1;在这种情况下,
sommatoria_ticket
的值加倍;如果记录为3,则值为x3...

似乎每个子组只显示一次

ticket_value
计算,但在计算
sommatoria_ticket
变量时,会针对子组的每一行进行计算。

我尝试更改变量的增量类型和重置类型,以及文本字段的评估时间,但问题没有解决

jasper-reports
1个回答
0
投票

使用

calculation="Sum"
而不是显式地对表达式中的变量求和:

<variable name="sommatoria_ticket" class="java.lang.Double" resetType="Group" resetGroup="Gruppo_REGIONE" incrementType="Group" incrementGroup="Gruppo_NUMERO_ORDINE" calculation="Sum">
    <variableExpression><![CDATA[$V{ticket_somma_numero_ordine}]]></variableExpression>
    <initialValueExpression><![CDATA[0.0]]></initialValueExpression>
</variable>

您可以在 JasperReports 示例文档中查看一些示例。

© www.soinside.com 2019 - 2024. All rights reserved.