2012-05-04 108 views
2

我目前正在嘗試創建一個JasperReport報告與一些特殊的輸入控件行爲。我的需求是:JasperReports動態輸入控件

  • 四個輸入控件,其中兩個是dateboxes,其他的人都是單選按鈕
  • 取決於單選按鈕選擇,數據箱的一個應該是可見的還是不
  • 所以如果選項1被選中,同時顯示兩個日期框;如果選擇了選項2,則只顯示一個日期框

我不知道是否有一個「乾淨」的解決方案 - 沒有找到任何東西。

任何指針都會有幫助。

回答

2

Print表達式與JasperReports服務器上的輸入控件無關。

沒有內置支持隱藏和顯示基於不同值的輸入控件。級聯輸入控制的基礎架構當然可以擴展以實現這一目標......但這並不是微不足道的。

我會採取的路徑是自定義顯示輸入控件的.jsp頁面。 JasperReports服務器終極指南中有一部分叫做「自定義輸入控件表單」,這會讓你開始沿着這條路走下去。

+0

謝謝你的回覆。你的陳述證實了我的假設;似乎是通過自定義.jsp頁面而不會變得太複雜的唯一方法。 – kinkee

0

對於日期框部分,您可以使用print when expression來決定報表的某些塊是否可見。

對於其他「輸入」,如果您的意思是要在報告中顯示一些數據,則可以在報告中製作一些Parameter,然後在導出報告之前設置Parameter以避免用戶輸入。

+0

嘿Rangi,謝謝你的回答。我已經嘗試設置printWhen表達式 - 但不幸的是,輸入控件不接受這個屬性。基本上我想實現的是:如果選擇選項1,則查詢將使用兩個日期,否則僅顯示一個日期框並在查詢中使用它的值。 – kinkee

+0

「dosen't accpet this attribute」是什麼意思?您確實需要添加更多信息。你的申請是什麼?劑量用戶如何輸出報告?當你嘗試使用'printWhenExpression'時你有什麼問題? –

+0

嗯,我已經在JasperServer上部署了一個報告,用於評估指定日期範圍的數據 - 該範圍由用戶設置,可以通過設置日期框(FromDate-ToDate)或僅設置一個日期框(FromSpecifiedDate-today)來設置。用戶應該能夠通過單選按鈕決定顯示哪些日期框。 InputControls與我的報告中定義的參數有關,所以無法通過設置printWhen,或者我錯了嗎?通過設置屬性,我得到錯誤「屬性'printWhen'不允許出現在元素'參數'」 – kinkee