我正在使用Jaspersoft Studio 5.6.2並且有一個列顯示兩個日期之間經過天數的列的報告。Jasper Sum不包括最後一個值
如果日期範圍小於24小時,我想至少顯示一天,所以我創建了一個變量來轉換字段值以表示該字段值。我也想避免負值:
Name: day_rounded
Class: java.lang.Integer
Calculation: No Calculation
Expression: $F{days}==0?1:$F{days}<0?0:$F{days}
Increment: None
Reset: Report
這是我給它們加總起來創建的變量:
Name: totals
Class: java.lang.Integer
Calculation: Sum
Expression: $V{day_rounded}
Increment: None
Reset: Report
$ F {}天從查詢兩個日期之間的差異。
...
DATEDIFF(dd,irr.xxxstart_dt, ISNULL(irr.xxxend_dt,$P{end_dt})) AS days
...
我用$ F {days}值和$ V {day_round}值一起運行報告,它們看起來不錯。
當我把$ V {totals}放入摘要帶(它也位於Page Header中)時,該值不包含最後一行的值。例如,如果我使用計算器並總結列出的所有天數,我會得到1494.報告顯示最後一行的值爲1485和天,因此我可以看到它不包括那一個。我爲其他日期範圍運行了報告,並且總計總是恰好是最後一行中的值小於它應該的值。
據我可以告訴變量聲明正確。任何想法爲什麼我錯過了總和中的最後一行值?
報告一般如何?有沒有你使用的細節帶? – tobi6
是的,我有一個頁面標題與主標題和子報表本身運行在細節帶。如前所述,我把總數放在摘要中 - 但我也在頁眉中嘗試了它作爲一個實驗,並且它顯示了相同的值。我嘗試將評估時間更改爲所有可能的選項,但它從未拿起最後一行。雖然....我想知道我是否可以將它設置爲Page,然後使用另一個變量,它將所有頁面總數與設置爲報告的評估時間相加。假設它一路拾起所有的行。我想它不會受傷。我將在星期一嘗試。 – djailer
如果它不起作用,請[編輯]你的問題,並添加一些細節,如jrxml源代碼和截圖。 – tobi6