在Jasper Reports中迭代JRBeanCollectionDataSource时如何获取当前bean?

时间:2011-11-03 21:28:47

标签: java jasper-reports

Jasper Reports文档对此问题保持沉默,并且JRDataSource接口未明确允许访问当前bean。如果要调用某些非属性方法,则当前的bean句柄非常有用。

到目前为止我在jasper报告源中找到的唯一解决方案是在报告中使用_THIS字段并在其上调用所需的方法:

${_THIS}.computeSomeValue()

是否有更好,更标准的方法?

2 个答案:

答案 0 :(得分:1)

我通常使用扩展JRDefaultScriptlet的custom_Scriptlet(如果我需要任何其他与我的bean相关的方法调用)。我认为更好的方法是收集您将需要的所有数据(在您的bean中使用setter / getter方法作为实例变量,或在填写报表时作为参数传递)。

这样你可以让属性bean方法处理其余的事情。

答案 1 :(得分:0)

尝试:

$ P {REPORT_DATA_SOURCE} .getData()。get($ V {REPORT_COUNT} - 1)