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

使用单Java bean生成jasper报表

祁烈
2023-03-14

我需要创建订单申报报告,我正在使用jasper studio创建jasper模板。在该模板中,我有订单id、客户详细信息和他的地址,我必须用这些详细信息创建一个报告。

我下面有jasper报告代码

    JasperCompileManager.compileReportToFile("src/main/resource/orderDeclarationForm.jrxml");
    JasperPrint jasperPrint = JasperFillManager.fillReport("src/main/resource/orderDeclarationForm.jasper", new HashMap<String, Object>(), new JRTableModelDataSource(getTableModelData()));
    // JasperExportManager.exportReportToPdfFile("resource/orderDeclarationForm.jrprint");
    JasperExportManager.exportReportToPdfFile(jasperPrint, "src/main/resource/orderDeclarationForm.pdf");

但是不是jrtableModelDataSource,我必须传递Java bean类,所以jasper引擎必须从一个Java bean中获取数据,我已经将JavaBean作为DataSource,它获取bean列表,但我的要求只是一个具有订单详细信息的bean。请给我一点建议

共有1个答案

秦鸿羽
2023-03-14

如果您只需要将一个bean实例传递给JasPerfillManager.FillReport方法,那么只要它们的计数可行(在您的例子中,只有3个),就可以将它们作为参数传递。

    Map<String,Object> params = new HashMap<String,Object>();
    params.put("orderId", xxx);
    params.put("customerDetails", xxx);
    params.put("address", xxx);

之后,传递此params Map对象:

JasperPrint jasperPrint = JasperFillManager.fillReport("src/main/resource/orderDeclarationForm.jasper", params, new JRTableModelDataSource(getTableModelData()));

有关如何从.jrxml文件中读取参数的更多信息,请查看此链接。

多谢了。

 类似资料:
  • 因为JasperReport可以将JavaBean集合作为数据源。我们可以用一个引用多个SetCollections的单个对象发送一个SetCollection吗。并使用这些引用传递给编译后的jrxml文件,每次传递不同的setCollection时,都使用对JasPerfillManager.FillReport()的多重调用。我只是想知道编译后的jrxml文件是否会用最后一次调用填充,或者是否

  • 我正在 jasper 报告中创建一个包含 3 个嵌套列表的表,我成功地创建了该表直到第二个列表,但对于第三个列表,它不起作用。有什么办法可以做到这一点吗?我正在为第二个列表使用子报告。 // Java代码 碧玉报告主文件代码 运行代码后我得到的输出。 实际输出 预期产出 谢谢你

  • 问题内容: 我必须基于将动态提供的各种参数来生成报告。在某些情况下,参数可以为null。例如,我必须从具有 ID* , 姓名 , 年龄 , 性别 和 maritalStatus 作为字段的表 Person中 ,生成有关 30岁已婚男性的 报告。在另一些时候,可能需要 不考虑年龄 就 结婚的女性 。如果我在这两种情况下都使用相同的碧玉,则年龄限制在第二种情况下将为null。有什么办法可以解决这种情况

  • 现在,我不再得到“no such file or directory”错误消息,而是得到“net.sf.jasperreports.engine.jrexception:java.net.MalformedUrlException”异常,根据堆栈跟踪,它是由第四个命令(jrxmlloader.load(input))引起的。谁能告诉我我做错了什么吗? 谢谢

  • 问题内容: 我正在尝试从列表中生成一个简单的 JR 报告。 我一直在 从bean检索name时出错:name 此错误是由于错误的getter方法名引起的,因为jasper使用反射来从bean中获取字段。但是,即使更正了getter方法名称。我不断收到这个例外。还有其他问题吗? 我的 jrxml 文件是 Bean类是 我在这里生成报告 我们是否需要对bean类进行更多修改? 问题答案: 解决方案非常

  • (使用Jaspersoft Studio 6.6.0,还没有Jasper服务器)我的数据集如下所示 如果我将报告生成为PDF,我将得到一个PDF,页面数和行数一样多。 但我需要的将是有多少分开PDF文件有行。这可能吗?