2016-09-15 83 views
0

我正在使用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和,因此我可以看到它不包括那一個。我爲其他日期範圍運行了報告,並且總計總是恰好是最後一行中的值小於它應該的值。

據我可以告訴變量聲明正確。任何想法爲什麼我錯過了總和中的最後一行值?

+0

報告一般如何?有沒有你使用的細節帶? – tobi6

+0

是的,我有一個頁面標題與主標題和子報表本身運行在細節帶。如前所述,我把總數放在摘要中 - 但我也在頁眉中嘗試了它作爲一個實驗,並且它顯示了相同的值。我嘗試將評估時間更改爲所有可能的選項,但它從未拿起最後一行。雖然....我想知道我是否可以將它設置爲Page,然後使用另一個變量,它將所有頁面總數與設置爲報告的評估時間相加。假設它一路拾起所有的行。我想它不會受傷。我將在星期一嘗試。 – djailer

+0

如果它不起作用,請[編輯]你的問題,並添加一些細節,如jrxml源代碼和截圖。 – tobi6

回答

1

這裏是我用來解決這個JRXML:

<variable name="page_total" class="java.lang.Integer" resetType="Page" calculation="Sum"> 
    <variableExpression><![CDATA[$V{day_rounded}]]></variableExpression> 
</variable> 
<variable name="paged_summed" class="java.lang.Integer" incrementType="Page" calculation="Sum"> 
    <variableExpression><![CDATA[$V{page_total}]]></variableExpression> 
</variable> 

我總計每頁我天的價值觀和有RESET設置爲「頁」該變量。我總結了它們,並將INCREMENT設置爲'其他變量的頁面。

現在我的總數都加起來了。謝謝@ tobi6!

+0

不用擔心,樂意幫忙。 – tobi6