如何使用 Joda-Time 在 Jasper Reports 中设置默认参数

How to use Joda-Time to set default paraameters in Jasper Reports

我有一个 Jasper 报告,它使用以下设置默认查询日期:

<parameter name="FROM_DATE" class="java.util.Date" isForPrompting="false">
    <defaultValueExpression><![CDATA[new org.joda.time.DateTime().minus(org.joda.time.Period.years(2)).toDate()]]></defaultValueExpression>
</parameter>
<parameter name="TO_DATE" class="java.util.Date" isForPrompting="false">
    <defaultValueExpression><![CDATA[new org.joda.time.DateTime().toDate()]]></defaultValueExpression>
</parameter>

无论我减去多少年,报告似乎总是 运行 今天日期之前的那一年。我想这里出现了两个问题——为什么它似乎总是默认为一年以及如何将其配置为默认为指定的年数?任何帮助表示赞赏。

参数应放在 Jasper 的顶部,在字段、数据集和查询之前。因为你会在细节处或其他地方使用参数,所以需要先在顶部声明它。