Jasper报表制作

用java和Japser报表制作,
主要思路就是先下载Japser相配对的客户端,用客户端生成报表
主要代码:jasperPrint = JasperFillManager.fillReport(jasperReport, maps, new JRBeanCollectionDataSource(awbInfoList));
打印:JasperPrintManager.printReport(jasperPrint, false);
通过map和list传数据
Jasper报表制作_第1张图片
java端简单代码:
File reportFile = ResourceUtils.getFile(“classpath:reports/material.jasper”);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile);
JasperPrint jasperPrint = null;
// 传变量给报表
Map maps = new HashMap();
AgentUserAccount userAccount = (AgentUserAccount) SecurityUtils.getSubject().getPrincipal();
maps.put(“actualName”, userAccount.getActualName());
try {
jasperPrint = JasperFillManager.fillReport(jasperReport, maps, new JRBeanCollectionDataSource(awbInfoList));
} catch (JRException e) {
e.printStackTrace();
}
if (null != jasperPrint) {
FileBufferedOutputStream fbos = new FileBufferedOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fbos);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
try {
exporter.exportReport();
fbos.close();
if (fbos.size() > 0) {
response.setContentType(“application/pdf”);
response.setContentLength(fbos.size());
ServletOutputStream ouputStream = response.getOutputStream();
try {
fbos.writeData(ouputStream);
fbos.dispose();
ouputStream.flush();
} finally {
if (null != ouputStream) {
ouputStream.close();
}
}
}
} catch (JRException e1) {
e1.printStackTrace();
} finally {
if (null != fbos) {
fbos.close();
fbos.dispose();
}
}
}

你可能感兴趣的:(Jasper报表,java)