使用单JavaBean生成jasper报告

使用单JavaBean生成jasper报告,java,jasper-reports,javabeans,Java,Jasper Reports,Javabeans,我需要创建订单声明报告,我正在使用jasper studio创建jasper模板。在该模板中,我有订单id、客户详细信息和他的地址,根据这些详细信息,我必须创建一个报告 我有下面的jasper报告代码 JasperCompileManager.compileReportToFile("src/main/resource/orderDeclarationForm.jrxml"); JasperPrint jasperPrint = JasperFillManager.fillRep

我需要创建订单声明报告,我正在使用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");
jaspecompilemanager.compileReportToFile(“src/main/resource/orderDeclarationForm.jrxml”);
JasperPrint JasperPrint=JasperFillManager.fillReport(“src/main/resource/orderDeclarationForm.jasper”、新的HashMap()、新的JRTableModelDataSource(getTableModelData());
//JasperExportManager.exportReportToPdfFile(“resource/orderDeclarationForm.jrprint”);
exportReportToPdfFile(jasperPrint,“src/main/resource/orderDeclarationForm.pdf”);

但是我必须通过javabean类,而不是
JRTableModelDataSource
,因此jasper引擎必须从一个javabean获取数据,我已经通过了
javabean作为数据源,它获取bean列表,但我的要求是只有一个bean具有订单细节。如果只需要将bean的一个实例传递给JasperFillManager.fillReport方法,那么只要它们的计数是可行的,就可以将它们作为参数传递(在您的示例中,它只有3个)

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


谢谢。

首先,它应该是“src/main/resources”而不是“src/main/resource”。其次,您永远不应该在java代码中引用“src/main/resources”。该文件夹应添加到运行时类路径中,您只需引用“orderDeclarationForm.jrxml”@LanceJava thx来指出,它将修复这些问题
    Map<String,Object> params = new HashMap<String,Object>();
    params.put("orderId", xxx);
    params.put("customerDetails", xxx);
    params.put("address", xxx);
JasperPrint jasperPrint = JasperFillManager.fillReport("src/main/resource/orderDeclarationForm.jasper", params, new JRTableModelDataSource(getTableModelData()));