2011-04-27 55 views
2

我有一個關於邊框應該如何顯示細節樂隊的問題,我想得到一些幫助。邊框細節樂隊

說一下,可能有很多LOTS數據的一個詳細的列,我的意思是有時一個記錄可能實際上需要2〜3頁來顯示。

現在客戶的要求,我們應該讓報告時間一直顯示邊框的底線,因爲它符合頁面(即使這個記錄其尚未結束)

我想什麼的結束:

  • 使用1px高度線創建一個列腳註。
    將「浮動列頁腳」設置爲TRUE。

    結果:效果很好,但是如果在頁腳尾部之後有一個彙總帶,則該行將在表格末尾留出額外的空白空間。我認爲我很接近,但我無法擺脫奇怪的空白空間

  • 用邊框製作一個框架,將「細節溢出時打印」設置爲TRUE,然後將所有細節帶到這個框架中。

    結果:不如我所料:(

由於本報告不僅包含詳細帶一張桌子,桌子的高度是隨機的工作就像在背景或頁腳邊框技巧。不適合這裏

否則我該怎麼辦?

回答

1

有一個PrintWhenExpression把戲,可與頁腳幫助:

How to hide Page X/Y when report is 1 page ? - JasperForge Forum

訣竅是把國旗在報告參數圖,然後使用該標誌來決定是否文本(或字段,線條等)應該被打印。

要在Page Footer中使用一條線,總會有一些頁面帶有額外的行。在這種情況下,報告始終從第1頁開始,並且報告中的表格始終在打印摘要帶之前結束。這意味着,只要達到了彙總段,該線就不再需要了。因此:

  • 在頁腳中添加符合PrintWhenExpression:

    新布爾((Boolean.TRUE).equals($ P {} REPORT_PARAMETERS_MAP。獲得( 「stopFlag」)))

  • 然後做出總結帶虛擬文本框與PrintWhenExpression這樣的:

    $ P {} REPORT_PARAMETERS_MAP。把( 「stopFlag」,Boolean.TRUE)

這招有效,但可能需要一些調整對於不同的佈局。

1

當談到網頁終止的選擇是有限的,其取得甚至很難,因爲如果你不顯示項目爲空時,它仍然假定空間使用。

我會堅持搞亂列腳或頁腳作爲最佳選擇。

1

Dave給出的選項是正確的。

如果您關心仍在使用的空間,請將band和textfield高度設置爲零。

在我的情況下使用Dave的選項工作(並且我不需要額外的空間來使用)。在0 heigth總結帶一個0高度的文本框

$P{REPORT_PARAMETERS_MAP}.get("lastPage")!=null 

並將此作爲PrintWhenExpression

我把這個作爲我只是想在最後一頁顯示的字段PrintWhenExpression

$P{REPORT_PARAMETERS_MAP}.put("lastPage",":)")