java - Jasper Reports,在 bean 中传递列表/数组

标签 java jasper-reports

我必须生成一份报告,显示有关一个对象的信息(因此输入只有一个 bean)。

第一个问题是 - 这个 bean 应该包含子 bean 的列表(例如,带有评论类型和评论日期的评论)。这样我就可以将它们传递给子报告。

第二个问题是 - 有一个包含 4 个子 bean 的数组,其中包含很少的字段。我可以为每个子 bean 的属性(firstSubBeanName、secondSubBeanName...)创建一个单独的字段,但它很难看:(。理想情况下,应该有一种方法以这种方式访问​​这些 bean:

$F{test}[0].name

请帮忙。

最佳答案

如果您的列表有名称(即对象的属性),则只需将此属性作为子报表的数据源表达式传递

$F{subBeansList}

子报表应该准备好接收此类数据。如果您使用 struts,则可能应该使用此类:

org.apache.struts2.views.jasperreports.ValueStackDataSource

作为要传递到子报表的列表字段的中介。

第二个问题,简单的方法是使用列表,所以可以使用这个表达式:

$F{test}.thelist.get(0)

关于java - Jasper Reports,在 bean 中传递列表/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7865291/

相关文章:

java - 如何将用户函数添加到从 JasperCompilerManager 编译的 jrxml 中

java - JasperReports 上的字段内字段

jasper-reports - 如何在 Jasper 中处理多个组详细信息?

java - 使用Java提取音频增益

java - 将大字符串流式传输到 JAXB 中

java - 如何在编码时为属性添加前缀

java - iReport/jasperReports 如果节点存在,我如何检查 xml 数据源

java - 我在运行我的项目时收到 java.lang.StackOverflowError?

java - Android 执行 if 语句,即使它不应该执行?

mysql - iReport不接受SQL SUM函数