1

让我先说我是JasperReports的菜鸟,所以如果我的问题有明显的答案,我深表歉意。我有一份现有的JR报告,每隔一个月手动运行一次。我可以打开报告,从下拉列表中选择一个输入月份,它会反馈给我该月的数据。

除了每月手动运行之外,我还希望此报告每周运行一次,并仅返回过去 7 天的数据。

我发现我可以很容易地设置计划运行,但对我来说,输入似乎是固定的,我只会一周又一周地回到同一周。

我正在使用iReport 4.5

我觉得最简单的解决方案是复制此报告,并使新报告仅运行每周功能(我永远不会每周手动运行,仅每月运行)。但是在网上浏览了一些教程之后,我看不到如何只运行前 7 天的报告。

4

1 回答 1

1

创建两个名为 start_date 和 end_date 的参数,类型为 Date。然后,在您的查询中,使用以下语法(我有一个 Oracle 数据源;根据您自己的需要进行调整):

WHERE TRUNC(the_date) BETWEEN COALESCE($P{start_date}, TRUNC(sysdate-7)) 
                      AND COALESCE($P{end_date}, TRUNC(sysdate))

如果用户手动运行报表,他或她可以通过您的输入控件输入开始和结束日期。如果报告是计划报告,请将输入控件留空,默认为过去 7 天。

于 2013-10-15T13:05:37.373 回答