ireport使用2--Subreport控件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ireport使⽤2--Subreport控件
1、主报表实体类(如:Province)、⼦报表实体类(如:City)
注意:主报表实体类属性含⼦报表实体类List(如:List citys);
2、ireport构建主、⼦报表
参看:ireport使⽤1(如:主mainReport.jasper,⼦subReport.jasper)
3、主表增参:
新增参数(Parameters):如SUB_DIR
注意:此例中SUB_DIR存的是⼦subReport.jasper路径。
4、主报表关到⼦报表
1)ireport组件-->Subreport,将其拖到主表需要展⽰⼦表内容的位置。
2)设置组件Subreport属性:
5、JAVA代码
String reportUrl= Thread.currentThread().getContextClassLoader().getResource("../report/mainReport.jasper").getFile();//主模板 String subUrl = Thread.currentThread().getContextClassLoader().getResource("../report").getFile();//⼦模板
String temp = Thread.currentThread().getContextClassLoader().getResource("../temp").getFile();//⽣成pdf保存位置
Map map = new HashMap<>();
map.put("SD", subUrl );
String fileName = new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date());
JasperReport subreport = (JasperReport)JRLoader.loadObjectFromFile(reportUrl);
JasperPrint subjasperPrint = JasperFillManager.fillReport(subreport, map, dataSource);
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, subjasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, temp + fileName +".pdf");
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");
exporter.exportReport();。