当前位置: 首页 > 知识库问答 >
问题:

如何将对象列表从Java应用程序传递到子报表?

荆鸿畅
2023-03-14

我有一个带有一个条形图和一个表格的报告。这两个元素由从我的Java应用程序传递到报告的对象列表填充。

现在我想将这两个元素放在两个不同的子报告中,但是我不知道如何将对象列表传递给子报告。我已经将每个对象的字段添加为主报表中的字段和子报表中的参数,但它不起作用。

谁能帮我解决这个问题?

共有1个答案

常嘉平
2023-03-14

大概是这样的:

将集合作为参数传递到主报表中,并在子报表的数据源中使用此参数:

//主报表的java代码

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listOfObject);
Map<String, Object> params = new HashMap<String, Object>();
params.put("myList", listOfObject);
jasperPrint = JasperFillManager.fillReport(jasperReport, params, ds);

结束 java 代码

(可能是

JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource())

如果不需要在主报告中显示数据)

主要定义。jrxml报告参数myList为java.util.Collection

将子报表添加到主报表中(添加到摘要带中)
在主报表中设置子报表属性:
连接类型=使用数据源表达式
数据源表达式=新的JRBeanCollectionDataSource($P{myList})

在子报表中定义所需字段(基于listOfObjects)。

 类似资料:
  • 我已经创建了表的结构,在第2页中,源数据是一个JSON,包含产品及其属性列表。我想将JSON数据显示到表中,实际上有一个包含表的子报表,但不知道如何将JSON数据传递到子报表,并根据JSON数据中的productList键进行填充。报告从接收用户数据的java类填充。 我不知道如何填写第 2 页的表格,有人可以帮助我吗? 这是我在Jaspersoft Studio 6.10中的代码 主报告 子报表

  • 我想在iReport中将数据集从主报表转移到子报表。在Odoo版本中,我就这样使用过。 现在我使用 Odoo 版本 8 和版本 8 的新jasper_reports模块。所以我将一些jar文件从jasper_reports模块转移到iReport IDE。后。。。来自Odoo版本7的所有报告都导致了Groovy错误。这就是为什么我在iReport中将Groovy语言改为Java语言的原因。但。。。

  • 我需要您的帮助,将csv数据源传递给subReports。 我将非常感谢您的建议或解决方案。 我使用的是iReport 5.0专业版。 我有一个非常复杂的报告,该报告从多个(大约10个)csv文件中获取数据。 我已经为报告的每个部分创建了子报告,每个子报告作为一个单独的报告运行良好。 但是当我尝试将所有子报表集成到主报表中时,我无法将数据源传递给子报表。 在Main报告中,我创建了一个名为CSVD

  • 我正在从 JRBeanCollectionDataSource 生成报告。此报告是关于客户的订单的。 这是我的代码 当客户时,需要生成包含客户详细信息和客户订单列表的报告。由于接受一个集合,这就是我所做的。 如何提取< code>Customer中的< code>CustomerOrder列表并将其作为子报表传递?

  • 我将页码信息从主报表传递到页脚子报表。在主报表中,我已经声明了子报表参数pageTot和pageNum。它们通过向导映射到主报告$V{PAGE _ COUNT}和$V{PAGE _ NUMBER}中的参数。在子报表中,我声明了两个参数pageNum和pageTot。在它们的参数属性中,我取消了将use作为提示,并将它们都设置为java.lang.integer类型。然后,我替换了文本字段的文本字段

  • 我通过在我的Java类中调用下面的这个方法加载一个AngularJS页面,只是一个示例。如果我有一个对象,例如人,如何发送到角页面?