使用JasperReports Server的预定报告

时间:2014-11-04 23:30:27

标签: jasper-reports scheduled-tasks jasperserver

我有一个使用Jaspersoft iReport Designer 5.1设计的报告,其中两个输入参数使用默认值表达式定义,以定义日期范围

<parameter name="lowerDate" class="net.sf.jasperreports.types.date.DateRange">
    <parameterDescription><![CDATA[Enter Lower date]]><parameterDescription>
    <defaultParameterExpression><![CDATA[new net.sf.jasperreports.types.date.DateRangeBuilder("YEAR").toDateRange().getStart()]]></defaultValueExpression>
</parameter>

<parameter name="upperDate" class="net.sf.jasperreports.types.date.DateRange">
    <parameterDescription><![CDATA[Enter Upper date]]><parameterDescription>
    <defaultParameterExpression><![CDATA[new net.sf.jasperreports.types.date.DateRangeBuilder("DAY").toDateRange().getEnd()]]></defaultValueExpression>
</parameter>

在JRS的报告配置中,我定义了输入参数并将它们绑定到报告参数名称,并将它们设置为非强制性。该报告运行正常,并在没有提示的情况下,使用年份开始日期和今天的当前日期适当填充日期字段。

我的问题是,当我通过我已配置为每天运行的计划运行报表时,我无法获得相同的行为。在计划配置中,因为我没有将输入参数设置为必需,所以是空白的 - 假设应使用报告中指定的默认值,但是'upperDate'参数不反映当前日期但保留原始值报告首先运行。我在配置中尝试了各种组合,但似乎没有任何内容使报告在计划的运行期间更新日期值。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我有一些预定的报告,我想使用默认值,例如某些参数的当前或上一个日期。我这样做的方法是在JRS计划中将参数留空。然后在报告的SQL中,我将null参数替换为我想要使用的默认值(当前日期,前一天的日期等)。