2011-11-03 80 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)