在java中生成jasper报告时遇到了一些问题。该设置在iReport IDE中完美运行。我创建报告的方式如下:
private void createReport(String dataSourceXml) throws JRException{
String outFilename = dataSourceXml.replace(".xml", ".pdf");
String main = res.getString("main_jrxml.dir");
String sub1 = res.getString("sub1_jrxml.dir");
String sub2 = res.getString("sub2_jrxml.dir");
String sub3 = res.getString("sub3_jrxml.dir");
JasperReport sub3Report = JasperCompileManager.compileReport(sub3);
JasperReport sub2Report = JasperCompileManager.compileReport(sub2);
JasperReport sub1Report = JasperCompileManager.compileReport(sub1);
JasperReport mainReport = JasperCompileManager.compileReport(main);
JRXmlDataSource xmlDatasource = new JRXmlDataSource(new File(dataSourceXml));
Map<String, Object> params = new HashMap<String, Object>();
params.put("sub1", sub1);
params.put("sub2", sub2);
params.put("sub3", sub3);
JasperPrint jasperPrint = JasperFillManager.fillReport(mainReport, params, xmlDatasource);
JasperExportManager.exportReportToPdfFile(jasperPrint, outFilename);
}
创建报告并填写所有子报告但不填写主报告。
有人可以建议可能出现的问题吗?
答案 0 :(得分:1)
我无法弄清楚为什么主报告中的字段没有填写。我通过简单地添加另一个子报告来解决这个问题,这对我来说很好。
可惜Jasper的文档非常糟糕。