2011-11-03 79 views
1

Jasper Reports文檔在這個問題上保持沉默,JRDataSource接口沒有明確允許訪問當前bean。當前的bean句柄非常有用,如果你想調用一些非屬性方法。如何在Jasper Reports中遍歷JRBeanCollectionDataSource時獲取當前bean?

我發現迄今看在碧玉報告來源唯一的解決辦法是使用∎本場在報告中並調用它所需的方法:

${_THIS}.computeSomeValue() 

是否還有更好的,更標準進場?

回答

1

我通常使用擴展JRDefaultScriptlet的custom_Scriptlet(如果我需要任何其他方法調用與我的bean有關)。我認爲一種更好的方法就是收集您將需要的所有數據(無論是在bean中作爲實例變量使用setter/getter方法,還是在填充報告時作爲參數傳遞)。

通過這種方式,您可以將屬性bean方法留給其餘部分。

+0

大多數時候,是的,最好的辦法是在填寫前準備數據。那個報告。但是在某些情況下,當前bean的句柄會讓生活更輕鬆。例如,在運行時知道bean屬性,而不是在編譯時報告。 – dcernahoschi

0

嘗試:

$ P {} REPORT_DATA_SOURCE .getData()得到($ V {} REPORT_COUNT - 1)