2010-03-30 46 views
0

背景同步打印當細胞及文本字段的表達

圖像中的總計部下面示出了用於趨勢柱奇怪的結果。文本應該是true當名爲的列的值低於的值等於名爲的列的值當前的

打印當表達&文本域表達

表達式是使用相同的代碼進行評估:

new java.lang.Boolean(
    $V{LAST_WEEK_TALLY_0}.add(
    $V{LAST_WEEK_TALLY_1}).add(
    $V{LAST_WEEK_TALLY_2}).add(
    $V{LAST_WEEK_TALLY_3}).longValue() == 
    $V{THIS_WEEK_TALLY_0}.add(
    $V{THIS_WEEK_TALLY_1}).add(
    $V{THIS_WEEK_TALLY_2}).add(
    $V{THIS_WEEK_TALLY_3}).longValue() 
) 

Evalutation時間文本字段被設置爲樂隊

問題

看起來好像打印當表達代碼正在評估值的上一頁當前列一列下爲時已晚。正在打印的值對於該行是正確的。這意味着的打印時的表達式文本字段表達式不會同時進行評估。

問題

什麼我需要做的,使打印當表達文本字段表達同時計算出相同的結果呢?那麼這將產生字真正總計趨勢列每當Previous == Current

回答

0

的不雅,但功能的解決方案是靜態文本字段合併在一起,並避免同步打印當表達文本字段表達贊成只是後者。

($V{LAST_WEEK_TALLY_0}.add(
    $V{LAST_WEEK_TALLY_1}).add(
    $V{LAST_WEEK_TALLY_2}).add(
    $V{LAST_WEEK_TALLY_3}).longValue() == 
$V{THIS_WEEK_TALLY_0}.add(
    $V{THIS_WEEK_TALLY_1}).add(
    $V{THIS_WEEK_TALLY_2}).add(
    $V{THIS_WEEK_TALLY_3}).longValue()) ? "-" : 
($V{LAST_WEEK_TALLY_0}.add(
    $V{LAST_WEEK_TALLY_1}).add(
    $V{LAST_WEEK_TALLY_2}).add(
    $V{LAST_WEEK_TALLY_3}).longValue() < 
$V{THIS_WEEK_TALLY_0}.add(
    $V{THIS_WEEK_TALLY_1}).add(
    $V{THIS_WEEK_TALLY_2}).add(
    $V{THIS_WEEK_TALLY_3}).longValue()) ? "Up" : "Down" 
1

我有兩個建議,不知道如果任一會工作:

1. iReport的
使用求和假設你正在使用交叉表,還有一個特點,總結該行或在總該列。製作前一個總數,等於前一個總數,當前總數也一樣。
然後在趨勢列,寫這樣Current_Value - Previous_value ==0

2.表達式查找查詢
的款項這是更強大的解決方案,也許有點複雜,但。我通常不會太依賴iReport,並始終準備好數據。
如果使用Java生成報表數據,在調用報表之前可以很容易地填寫所有值。

+0

查詢查詢中的總和將會很困難。由於數據的性質,我無法輕鬆使用交叉表報告。感謝您的迴應! – 2010-04-01 16:01:21