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

如何从列表< MyObject >创建报告(jasperreport)?[重复]

陈项禹
2023-03-14

我已经创建了报告(report1.jrxml)复制了它(report1.jasper),我只想用这个列表的信息来填充它:List

public class MyObject {
    private String name;
    private int phone;
    //getters & setters...
}

列表的数据已从数据库中检索,因此我想使用列表的信息来填充报告。

我想创建一个pdf。

请帮助我。


共有2个答案

拓拔安邦
2023-03-14

如果你问到将集合从java代码传递到jasperreports,最好的方法是使用:

net.sf.jasperreports.engine.data.JRBeanCollectionDataSource

编辑:

完整示例:

HashMap<String, Object> parameters = new HashMap<>();
List<MyObject> objects = new ArrayList<>();
JRBeanCollectionDataSource jDataSource = new JRBeanCollectionDataSource(objects);

// Load report
ClassPathResource report = new ClassPathResource("/myReport.jasper");
InputStream input = report.getInputStream();

// Fill the report with data
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(input);
JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, jDataSource);

// Export the report to the output
ByteArrayOutputStream output = new ByteArrayOutputStream()
JRExporter exporter = new JRPdfExporter();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();

// Return the byte[]
return output.toByteArray();
钱欣悦
2023-03-14
匿名用户

以下是相关代码:

List<MyObject> list//list contains the data used to fill report
JasperDesign design=JRXmlLoader.load(file);//file is your .jrxml file or .jasper file
JasperReport report==JasperCompileManager.compileReport(design);
JasperPrint print=JasperFillManager.fillReport(report,parameter,new JRBeanCollectionDataSource(list));

现在,您可以使用< code>print对象将报告导出到所需的格式。希望有帮助。

 类似资料:
  • Navicat Monitor 允许你创建、配置和计划发送报告。你可以在报告中包含以下 4 种类型的图表: 启动或关闭状态 面积图或折线图 复制图表 费时查询分析 创建新报告 你可以通过在以下的页面单击 图标或“+ 新建报告”创建新报告。 图表 费时查询 复制 配置 【提示】你可以前往配置页面编辑和删除报告。 选择实例。 添加要包含在报告中的图表。有关将图表添加到报告的更多信息,请参阅添加图表。

  • 我有一个列表,我想创建一个名为的扩展。 我不想覆盖,因此不能使用append、extend或insert。我想知道是否有一个快速的方法来完成这项工作(比使用理解列表或Deep.copy更快)

  • 问题内容: 我有一个字符串列表,例如: 我想为列表中的每个元素创建一个列表,该列表的名称应与字符串完全相同: 如何在Python中做到这一点? 问题答案: 你可以通过创建一个dict: 然后按(例如:)访问每个你不想走单独的变量之路!

  • 我有一组数据要使用jasper报告以表格格式显示,并且当前正在编写. jrxml文件。 在我的数据集中,我有数据可以帮助我们了解表的列数,从而使它成为表的动态列。 因此,问题是从数据库中提取的数据是特定于行的;那么,我怎样才能把它转换成表的列数呢? 我有一个从其中提取数据的dB表: 我必须同样创建报告: -: LEVEL的数量成为特定测试的列数。

  • 使用Java8 lambdas,在给定可能键的和的情况下,有效创建新的的“最佳”方法是什么?在这种情况下,您将得到一个包含可能的键的并希望生成一个其中是基于的某个方面构造的某种类型,即映射值类型。 我已经研究了几种方法,但认为一种方法比另一种方法更好(可能有一个例外--参见代码)。我将把“最佳”解释为代码清晰度和运行时效率的结合。这些是我想出来的。我肯定有人能做得更好,这是这个问题的一个方面。我不

  • 子报告是JasperReports的一个很好的功能。 此功能允许在另一个报表中合并报表,也就是说,一个报表可以是另一个报表的子报表。 子报告可以帮助我们简化报表设计,因为我们可以创建许多简单的报表并将它们封装到主报表中。 子报表的编译和填充就像普通报告一样。 任何报告模板在合并到另一个报告模板时都可以用作子报告,而(报告模板的内部)没有任何更改。 子报表与普通报表模板类似。 它们实际上是net.s