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

标签 java jasper-reports

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

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

${_THIS}.computeSomeValue()

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

最佳答案

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

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

关于java - 在 Jasper Reports 中迭代 JRBeanCollectionDataSource 时如何获取当前 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8002117/

相关文章:

java - BIRT 报表设计器看不到我的 java 类

java - 如果需要支持两个版本,如何处理 Java 中的包名称更改?

java - 字体 'Arial' 对 JVM 不可用

java - 在 Jasper 报告中如何使用 XML 数据源的子报告创建报告 pdf

java - 交易回滚和网络服务

java - 重新排列字符串

java - 将多个按钮设置为禁用

java - 使用打印机打印 Jasper 报告

java - 尝试使用 Java 打印 JasperReports 报告时,Tomcat Apache 服务器在尝试再次查看报告时关闭

java - JasperReports 不适用于 Grails 2.4 : Could not initialize class net. sf.jasperreports.engine.xml.JRXmlDigesterFactory