2013-10-15 67 views
1

讓我先說我是JasperReports的noob,所以如果我的問題有明顯的答案,我很抱歉。我有一個現有的JR報告,它以一個月的間隔手動運行。我可以打開報告,從下拉菜單中選擇一個輸入月份,它會反饋那個月的數據。運行前一週的報告

除了人工每月運行之外,我還希望此報告按每週計劃運行,並且僅返回過去7天的數據。

我發現我可以很容易地設置一個預定的運行,但對我來說,它看起來像輸入是固定的,並且我只會一週又一週地返回。我正在使用iReport 4.5

我覺得最簡單的解決方案是複製這份報告,並讓新的報告只運行每週功能(我永遠不會每週只做一次手動運行)。但在瀏覽了一些在線教程之後,我不知道如何僅在前七天內完成報告。

+0

這(應該)歸結爲如何將數據送入報告 – MadProgrammer

回答

1

創建兩個類型爲Date的start_date和end_date參數。然後,在您的查詢,請使用以下語法(我有一個Oracle數據源;調整自己的需要):

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

如果用戶手動運行報告時,他或她可以輸入起點和終點通過您的輸入控制日期。如果報告是預定報告,請將輸入控件保留爲空,並且它將默認爲最近7天。

+0

如何定義the_date?另一個日期對象? –

+0

the_date是數據庫中的日期字段。 – Lisa