Ireport6.3.1集成说明文档
来源:互联网 发布:conerstone for mac 编辑:程序博客网 时间:2024/06/07 18:09
集成Ireport6.3.1所需依赖包:
jasperreports-fonts.jar(jar当前字体:DejaVu Sans、DejaVu Serif、DejaVu Sans Mono、SansSerif、宋体(宋体)、微软雅黑(黑体)、C39HrP60DlTt(条形码),如果需要特殊字体则需要手动配置到字体jar中,后续文档有描述)Maven依赖包: <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.3.1</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> <!--对应项目中lib文件夹下jasperreports-fonts.jar--> <dependency> <groupId>net.sf.jasperreports.jasperreports</groupId> <artifactId>fonts</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/jasperreports-fonts.jar</systemPath> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>commons-digester</groupId> <artifactId>commons-digester</artifactId> <version>2.1</version> </dependency> <!--ireport导出excel所需jar--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-examples</artifactId> <version>3.10.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-excelant</artifactId> <version>3.10.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.10.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.10.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.10.1</version> </dependency>
Ireport主子模板介绍:
模板初次接触着请参考《java报表开发设计》学习。
主子表模板设计介绍:
Stp1:右侧工具栏选择“Subreport”放置到Detail1中如图1所示
图1
Stp2:选择Just create the subreprot element单击next如图2
图2
Stp3:选择Don’t use any connection or Data Source如图3
图3
Stp4:单击“Finish”如图4
图4
Stp5:调整Subreport框大小如图5
图5
注意:
1.subreport框的宽度和模板的宽度保持一直,放置位置置左。
2.在subreport设置中Print When中请勾选Detail Overflows。(允许打印元素以页或列,如果band不能被打印当前的列或页)
Stp6:在同一个项目中再新建一个模板子报表模板(也可在图2中选择Create a new report,步骤一样过程就不再赘述)。新建好如图6所示:
图6
Stp7:保留Detail1,删除其余部分如图7所示:
图7
Stp8:在右下角page format中Edit Page Format如图8所示:
图8
Stp9:设置子模板的detail1高度和主表中detail1的高度保持一直如图9所示:
图9
Stp10:将子表对应的model添加到Fields中如图10
图10
Stp11:将字段添加到子报表中如图11
图11
Stp12:回头再看主报表中,点击facheqingdan中parameters右键新建SUBREPOTY_DIR如图12
图12
Stp13:设置SUBREPOTY_DIR 的Default Value Expression如图13所示:
注意:图2.3中配置的路径为模板所在路径。(根据这个路径找到子模板)
图13
Stp14:选中主报表中的subreport编辑Connection Expression如图14所示:
图14
Stp15:配置如图15所示:
图15
至此子报表模板设计完成。
前台代码:
1.导出PDF和Excel前台调用:location.href=调用controller方法路径;2.打印预览前台调用:window.open(调用controller方法路径);3.打印前台调用:Ftl:<iframe style="display:none" id="printIframe"></iframe>Js:$("#printIframe").attr("src", 调用controller方法路径);$("#printIframe")[0].contentWindow.print();调用controller方法路径:encodeURI(ctx+"service/ireportExport?type="+type+"&serviceName=OmsAttemper_btnItemsList&exportName=fcqd&tempName="+tempName+"&queryParams="+omsAttemperId+","+attemperNo+"&attemperNo="+attemperNo);(参考url,encodeURI是一个转义方法,根据实际情况使用)
后台Controller代码:
/** * *@Title: ireportExport *@Description: ireport报表模块 *@Author: kpg *@Since: 2017年4月14日下午3:59:30 *@param request *@param response *@param title 导出文件名 *@param header 导出表头 *@param queryInfo 查询条件 *@param serviceName fros配置方法 *@throws Exception */ @SuppressWarnings("unchecked") @RequestMapping(value="/ireportExport", method={RequestMethod.POST,RequestMethod.GET}) public void ireportExport(Model model,HttpServletRequest request,HttpServletResponse response) { try { String type = request.getParameter("type"); String exportName = request.getParameter("exportName"); if(ChineseUtill.luanma(exportName)){ exportName = new String(exportName.getBytes("ISO8859-1"), "UTF-8"); } String queryParams = request.getParameter("queryParams"); if(ChineseUtill.luanma(queryParams)){//校验是否乱码 queryParams = new String(queryParams.getBytes("ISO8859-1"), "UTF-8"); } String serviceName = request.getParameter("serviceName"); ArrayList<Object> dataList=(ArrayList<Object>) servicesFacadeManager.getData(queryParams,serviceName); String tempName = request.getParameter("tempName"); if(ChineseUtill.luanma(tempName)){//校验是否乱码 tempName = new String(tempName.getBytes("ISO8859-1"), "UTF-8"); } String attemperNo = request.getParameter("attemperNo"); if(attemperNo!=null && !attemperNo.equals("") && ChineseUtill.luanma(attemperNo)){ attemperNo = new String(attemperNo.getBytes("ISO8859-1"), "UTF-8"); } Map parameters = new HashMap(); String tempPath= request.getSession().getServletContext().getRealPath("/static/ireport/Jasper")+"/";//子模板对应路径 parameters.put("SUBREPORT_DIR", tempPath); String imagePath= request.getSession().getServletContext().getRealPath("/static/img")+"/";//图片对应路径 parameters.put("IMAGE_DIR", imagePath); if(attemperNo!=null && !attemperNo.equals("")){ QRCodeUtil.zxingCodeCreate(attemperNo, 60, 60, imagePath+"erweima.png", "png"); parameters.put("ERWEIMA_DIR", imagePath); } //封装reportList中数据作为数据源 JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(dataList); JasperPrint jasperPrint = null; jasperPrint = JasperFillManager.fillReport(tempPath+tempName, parameters, ds); if(type.equals("excel")){//导出excel //设置导出文件格式 response.setContentType("application/vnd.ms-excel"); exportName = new String(exportName.getBytes("GBK"),"ISO8859_1"); //设置导出文件名称 response.setHeader("Content-Disposition", "attachment;filename="+exportName+".xls"); //导出excel,替换为这段 JRXlsExporter exporter = new JRXlsExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration(); configuration.setWhitePageBackground(false); configuration.setDetectCellType(true); exporter.setConfiguration(configuration); exporter.exportReport(); }else if(type.equals("pdf")){//导出PDF //设置导出文件格式 response.setContentType("application/pdf"); //设置导出文件名称 exportName = new String(exportName.getBytes("GBK"),"ISO8859_1"); response.setHeader("Content-Disposition", "attachment;filename="+exportName+".pdf"); //导出excel,替换为这段 JRPdfExporter exporter = new JRPdfExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); SimplePdfReportConfiguration configuration = new SimplePdfReportConfiguration(); exporter.setConfiguration(configuration); exporter.exportReport(); }else if(type.equals("show")){//预览// JasperViewer.viewReport(jasperPrint, false); //设置导出文件格式 response.setContentType("application/pdf"); //设置导出文件名称// exportName = new String(exportName.getBytes("GBK"),"ISO8859_1"); response.setHeader("Content-Disposition", "inline;filename="+exportName+".pdf"); //导出excel,替换为这段 JRPdfExporter exporter = new JRPdfExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); SimplePdfReportConfiguration configuration = new SimplePdfReportConfiguration(); exporter.setConfiguration(configuration); exporter.exportReport(); }else if(type.equals("print")){//打印 //设置导出文件格式 response.setContentType("application/pdf"); //设置导出文件名称// exportName = new String(exportName.getBytes("GBK"),"ISO8859_1"); response.setHeader("Content-Disposition", "inline;filename="+exportName+".pdf"); //导出excel,替换为这段 JRPdfExporter exporter = new JRPdfExporter(); exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); SimplePdfReportConfiguration configuration = new SimplePdfReportConfiguration(); exporter.setConfiguration(configuration); exporter.exportReport(); } } catch (Exception e) { logger.error(e.getMessage(), e); } }
补充添加字体:
用winrar解压jasperreports-fonts.jar包,解压后如图16所示:
图16
E:\jasperreports-fonts\net\sf\jasperreports\fonts\fonts.xml中配置所需字体,配置格式按照xml中已有字体格式进行配置。
E:\jasperreports-fonts\net\sf\jasperreports\fonts\dejavu目录下放.TTF格式的字体文件
前两部完成后返回目录E:\jasperreports-fonts进行重新打包
在地址栏输入cmd回车如图17
图17
输入命令“jar cvf jasperreports-fonts.jar *”如图18所示。生成项目所需字体jar包,如图19所示:
图18
图19
模板下载地址
JaspersoftStudio-6.3.1.final-windows下载
- Ireport6.3.1集成说明文档
- Bugly NDK集成说明文档(重要).pdf
- android app集成第三方SDK--没有说明文档
- 文档说明
- 说明文档
- iOS 环信集成问题(连文档都不说明的坑。。)
- iOS 环信集成问题(连文档都不说明的坑。。)
- iOS 环信集成问题(连文档都不说明的坑。。)
- iOS 环信集成问题(连文档都不说明的坑。。)
- spring 框架说明文档学习记录(3.1)
- AdWhirl 集成说明
- 调度管理集成说明
- 东子文档集成
- HotFix 集成文档
- php文档说明标签文档说明
- Spring-Validator 说明文档
- AppFuse系列文档说明
- Makefile中文说明文档
- mysql5.7.9用户操作
- 学生类
- 获得CSDN下载积分
- java四种引用
- (转)比特币核心钱包(Bitcoin Core)入门使用教程
- Ireport6.3.1集成说明文档
- Java基础之进制转换
- Quartz 集群源码分析
- ARToolkit手札之用手遮住标识以切换模型
- mysql常用表操作
- IO流
- linux命令行总结(入门)
- vue中通过脚手架来模拟数据的通讯
- [POJ](1661)Help Jimmy ---- 动态规划