Java 运行前一周的报告

Java 运行前一周的报告,java,jasper-reports,ireport,jasperserver,Java,Jasper Reports,Ireport,Jasperserver,让我先说一句,我是JasperReports的不速之客,所以如果我的问题有一个明确的答案,我很抱歉。我有一份现有的JR报告,每隔一个月手动运行一次。我可以打开报告,从下拉列表中选择一个输入月份,它会向我反馈该月份的数据 除了手动每月运行外,我希望此报告每周运行一次,并仅返回过去7天的数据 我知道我可以很容易地设置一个计划运行,但对我来说,输入似乎是固定的,而且我只会一周接一周地返回相同的运行 我正在使用iReport4.5 我觉得最简单的解决方案是复制此报告,并使新报告只运行每周功能(我永远不会

让我先说一句,我是JasperReports的不速之客,所以如果我的问题有一个明确的答案,我很抱歉。我有一份现有的JR报告,每隔一个月手动运行一次。我可以打开报告,从下拉列表中选择一个输入月份,它会向我反馈该月份的数据

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

我知道我可以很容易地设置一个计划运行,但对我来说,输入似乎是固定的,而且我只会一周接一周地返回相同的运行

我正在使用iReport4.5


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

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


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

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


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

这(应该)归结为如何将数据输入报告这(应该)归结为如何将数据输入报告日期是如何定义的?另一个日期对象?_日期是数据库中的日期字段。如何定义_日期?另一个日期对象?_Date是数据库中的日期字段。
WHERE TRUNC(the_date) BETWEEN COALESCE($P{start_date}, TRUNC(sysdate-7)) 
                      AND COALESCE($P{end_date}, TRUNC(sysdate))