Index: ssts-web/src/main/webapp/jasperRtp/jasperreportsView.jsp =================================================================== diff -u -r25904 -r26813 --- ssts-web/src/main/webapp/jasperRtp/jasperreportsView.jsp (.../jasperreportsView.jsp) (revision 25904) +++ ssts-web/src/main/webapp/jasperRtp/jasperreportsView.jsp (.../jasperreportsView.jsp) (revision 26813) @@ -118,13 +118,14 @@ timeStamp = ""; } JasperPrint jasperPrint = (JasperPrint)session.getAttribute("JasperPrint"+timeStamp); - + JasperPrint jasperPrintForPrint = (JasperPrint)session.getAttribute("jasperPrintForPrint"+timeStamp); if(jasperPrint != null){ reportName = jasperPrint.getName(); - session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint); + session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrintForPrint); String currentTime = new Date().toString(); request.setAttribute("currentTime",currentTime); session.setAttribute("JasperPrint"+currentTime,jasperPrint); + session.setAttribute("jasperPrintForPrint"+currentTime,jasperPrintForPrint); JRXhtmlExporter exporter = new JRXhtmlExporter(); if (jasperPrint.getPages() != null){ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r26649 -r26813 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 26649) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 26813) @@ -25,8 +25,10 @@ import java.util.Set; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import net.sf.jasperreports.engine.JRDataSource; +import net.sf.jasperreports.engine.JRParameter; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; @@ -259,14 +261,19 @@ String jasperreportName = parameters.get("jasperreportName"); //stocktakereportZYYFS.jasper Map parametMap = getParametMap(reportName); //获取构建报表需要的参数 List dataSourceList = getDataSourceList(jasperreportName , reportName, parameters); //获取报表数据集合 + //用于页面显示(页面显示的部分参数,可能和打印用的不一致) JRDataSource dataSource = new JRBeanCollectionDataSource(dataSourceList); - JasperReport jasperReport = (JasperReport) JRLoader .loadObjectFromFile(getJasperReportFileRealPath(parameters)); //创建“jasper文件”的对象实例 - + HttpSession session = StrutsParamUtils.getRequest().getSession(); JasperPrint jPrint = JasperFillManager.fillReport(jasperReport, parametMap, dataSource); - StrutsParamUtils.getRequest().getSession() - .setAttribute("JasperPrint", jPrint); + session.setAttribute("JasperPrint", jPrint); + //用于打印 + parametMap.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE); + JRDataSource dataSourceForPrint = new JRBeanCollectionDataSource(dataSourceList);//打印用数据源 + JasperPrint jasperPrintForPrint = JasperFillManager.fillReport(jasperReport, parametMap, dataSourceForPrint); + session.setAttribute("jasperPrintForPrint", jasperPrintForPrint); + String fileName = (String) (parametMap.get("title")==null?"未命名":parametMap.get("title")); StrutsParamUtils.getRequest().getSession() .setAttribute("fileName", fileName);