如何从java中的.jrxml生成.jasper?

时间:2013-05-23 17:43:16

标签: java jasper-reports subreport

我有1个 mainreport.xrml ,此报告有一个 subreport.xrml

因此,当我编译报告而不向报告提供任何对子报告的引用时,它会生成我的报告,但是当我在 report.xrml 中提供引用时我的子报告,它要求我提供 subreport.jasper

这是我编写的java代码:

JasperReport report = null;
JasperReport report2 = null;
JasperPrint jasperPrint = null;
StringBuilder pathReport = new StringBuilder();
try {
    name = config.getProperty(Constants.PATH_JRXML) + name + SUFFIX;
    String name2 = "";
    if (tipoReporte.equals("mensual")) {

    } else {
        int a = 0;
        name2 = "C:\\mail\\reporteIncidenciasDiarias.jrxml";
        report2 = JasperCompileManager.compileReport(name2);
    }

    report = JasperCompileManager.compileReport(name);

    jasperPrint = JasperFillManager.fillReport(report, mapParams,
            new JRBeanCollectionDataSource(params));

    pathReport.append(config.getKeyValue(Constants.PATH_REPORT));

    String nombreReporte = config.getKeyValue(Constants.NAME_REPORT);
    if (tipoReporte.equals("mensual")) {
        nombreReporte += "Mensual";
    } else {
        nombreReporte += "Diario";
    }

    pathReport.append(nombreReporte);
    pathReport.append(DateUtils.formatear(new Date(), Constants.PATTERN_DATE_2));
    pathReport.append(Constants.FILE_EXT);

    JasperExportManager.exportReportToPdfFile(jasperPrint, pathReport.toString());
    logger.info("Reporte generado " + pathReport);

} catch (JRException e) {
    logger.error(e);
    throw new Exception(e);
} catch (Exception ex) {
    logger.error(ex);
    throw new Exception(ex);
}
return pathReport.toString();

我应该怎么做,所以它不会问我 subreport.jasper ,或者我怎样才能获得 subreport.jasper

1 个答案:

答案 0 :(得分:0)

使用文件解析程序并将其作为参数传递给报表,或者自己编译子报表文件并传递已编译的报表。

查看jasperreports样本:

http://jasperreports.sourceforge.net/sample.reference/subreport/index.html#subreports