У меня есть требование, когда мне нужно сгенерировать отчеты XML, и мне нужно заполнить XML значениями из базы данных.Как сгенерировать отчет XML?
Я начинаю использовать отчеты Jasper, где я могу генерировать отчеты PDF, xls и CSV, но я не смог сгенерировать XML.
У меня есть jrxml файл, который я сделал, компилировать и использовал фрагмент кода ниже для генерации PDF, CSV и XLS, но генерации XML, как представляется, вопрос:
if(contentType == 'text/csv'){
params.response.setHeader("Content-disposition", "attachment;filename=" + params.reportName + ".csv")
exporter = new net.sf.jasperreports.engine.export.JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
if(params.feed){
exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, "|");
}
fileName = reportTempDir + "/" + fileName + ".csv"
}else if(contentType== 'application/pdf'){
params.response.setHeader("Content-disposition", "attachment;filename=" + params.reportName + ".pdf")
exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
fileName = reportTempDir + "/" + fileName + ".pdf"
}else{
params.response.setHeader("Content-disposition", "attachment;filename=" + params.reportName + ".xls")
exporter = new net.sf.jasperreports.engine.export.JExcelApiExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE,true);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET ,false);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS ,true);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS ,true);
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND ,false);
exporter.setParameter(JRXlsExporterParameter.IS_IGNORE_GRAPHICS ,false);
exporter.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN ,false);
exporter.setParameter(JRXlsExporterParameter.IS_IGNORE_CELL_BORDER ,false);
exporter.setParameter(JRXlsExporterParameter.IS_FONT_SIZE_FIX_ENABLED ,true);
exporter.setParameter(JRXlsExporterParameter.SHEET_NAMES ,[sheetName]as String[]);
fileName = reportTempDir + "/" + fileName + ".xls"
}
FileOutputStream osGenre = new FileOutputStream(fileName);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, osGenre);
exporter.exportReport();