iReport(4.0.1)中包含各种字段的报告包括:$F{value}
(整数)和$F{created_at}
。
我想计算可以给出的变量:
$F{value}
在给定日期之前$F{created_at}
的总和$F{value}
在给定日期之后$F{created_at}
的总和知道如何做到这一点?
答案 0 :(得分:7)
您必须使用两个不同的变量才能执行此操作。对于您的变量,请在“变量表达式”中使用类似的内容。 Date类还有一个after()函数。如果表达式求值为true,则将添加$ F {value},否则将添加0。
$ F {created_at} .before($ P {givenDate})? $ F {值}:0
要使用变量求和,需要将计算类型更改为“Sum”。默认的重置类型,报告将对整个报告中的值进行求和。其他重置类型在报表的不同部分(列,页面或组)上的工作方式相同。
以下是“之前”案例的XML:
<variable name="sumValueCreatedBefore" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[F{created_at}.before($P{givenDate}) ? $F{value} : 0]]></variableExpression>
</variable>
答案 1 :(得分:0)
还有另一种解决方案:在选择陈述中编写子查询
像
选择 (从tablename中选择sum(Fieldname),其中dategiven date)为aftersum
来自tablename的条件