靈魂-放水

          為學(xué)日益,為道日損。

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

          源碼如下:

          <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
          <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
          <%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
          <%@taglib uri="/WEB-INF/struts-nested.tld" prefix="nested"%>
          <%@taglib uri="/WEB-INF/struts-template.tld" prefix="template"%>
          <%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
          <%@taglib uri="<%@taglib uri="<%@taglib uri="<%@taglib uri="<%@page import="java.sql.*"%>
          <%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
          <%@page import="net.sf.jasperreports.engine.JasperRunManager"%>
          <%@page import="net.sf.jasperreports.engine.*"%>
          <%@page import="net.sf.jasperreports.engine.util.*"%>
          <%@page import="net.sf.jasperreports.engine.export.*"%>
          <%@page import="net.sf.jasperreports.j2ee.servlets.*"%>
          <%@page import="java.util.*"%>
          <%@page import="java.io.*"%>
          <%@page import="net.sf.jasperreports.engine.JasperPrintManager"%>
          <%@page import="net.sf.jasperreports.view.*"%>
          <%@page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext"%>
          <%@page import="java.lang.*"%>
          <%
          ? InitialContext ctx = new InitialContext();
          ? DataSource ds = (DataSource) ctx.lookup("java:/MSSQLDS");
          ? Connection conn = ds.getConnection();
          ? //String accNo ="200672395001";
          ? //String projID ="200672395121";
          ? String accNo = request.getParameter("accNo");
          ? String projID = request.getParameter("proId");
          ? File reportFile1 = new File(application.getRealPath("/report/kuaibao1.jasper"));
          ? File reportFile2 = new File(application.getRealPath("/report/kuaibao2.jasper"));
          ? File reportFile3 = new File(application.getRealPath("/report/kuaibao3.jasper"));
          ? File reportFile4 = new File(application.getRealPath("/report/kuaibao4.jasper"));
          ? if (!reportFile1.exists() || !reportFile2.exists() || !reportFile3.exists() || !reportFile3.exists() || !reportFile4.exists())
          ??? throw new JRRuntimeException("Fidsfsfd. The report design must be compiled first.");
          ? JasperReport jasperReport1 = (JasperReport) JRLoader.loadObject(reportFile1.getPath());
          ? JasperReport jasperReport2 = (JasperReport) JRLoader.loadObject(reportFile2.getPath());
          ? JasperReport jasperReport3 = (JasperReport) JRLoader.loadObject(reportFile3.getPath());
          ? JasperReport jasperReport4 = (JasperReport) JRLoader.loadObject(reportFile4.getPath());
          ? Map parameters = new HashMap();
          ? parameters.put("accNo", accNo);
          ? parameters.put("projID", projID);
          ? JasperPrint jasperPrint1 =
          ????? JasperFillManager.fillReport(
          ????????? jasperReport1,
          ????????? parameters,
          ????????? conn
          ????? );
          ? JasperPrint jasperPrint2 =
          ????? JasperFillManager.fillReport(
          ????????? jasperReport2,
          ????????? parameters,
          ????????? conn
          ????? );
          ? JasperPrint jasperPrint3 =
          ????? JasperFillManager.fillReport(
          ????????? jasperReport3,
          ????????? parameters,
          ????????? conn
          ????? );
          ? JasperPrint jasperPrint4 =
          ????? JasperFillManager.fillReport(
          ????????? jasperReport4,
          ????????? parameters,
          ????????? conn
          ????? );
          ? response.setContentType("application/ms_word");
          ? JRExporter exporter = null;
          ? exporter = new JRRtfExporter();
          ? List reportlist = (List)new java.util.ArrayList();
          ? reportlist.add(jasperPrint1);
          ? reportlist.add(jasperPrint2);
          ? reportlist.add(jasperPrint3);
          ? reportlist.add(jasperPrint4);
          ? // System.out.println(reportlist.size() + "list");
          ? byte[] bytes;
          ? ByteArrayOutputStream baos = new ByteArrayOutputStream();
          ? exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, reportlist);
          ? exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
          ? exporter.exportReport();
          ? // exporter.exportReportToStream();
          ? bytes = baos.toByteArray();
          ? // System.out.println(bytes+"bytes");
          ? if (bytes != null && bytes.length > 0) {
          ??? try {
          ???? // response.reset();
          ????? response.setContentType("application/ms_word");
          ????? response.setHeader("Content-disposition",
          ???????????????????????? "attachment; filename=yourReport.rtf");
          ????? response.setContentLength(bytes.length);
          ????? ServletOutputStream ouputStream = response.getOutputStream();
          ????? ouputStream.write(bytes, 0, bytes.length);
          ????? //ouputStream.flush();
          ????? ouputStream.close();
          ????? response.reset();
          ??? }
          ??? catch (Exception ex) {
          ????? ex.printStackTrace();
          ??? }
          ??? finally {

          ????? conn.close();
          ??? }
          ? }
          %>

          posted on 2006-12-17 10:44 放水老倌 閱讀(2637) 評(píng)論(7)  編輯  收藏 所屬分類: 打印報(bào)表

          Feedback

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn) 2008-04-16 15:43 衣順利
          哥們,運(yùn)行這個(gè)的時(shí)候怎么出現(xiàn)這個(gè)異常,是怎么回事啊?
          嚴(yán)重: Servlet.service() for servlet jsp threw exception
          net.sf.jasperreports.engine.JRException: Invalid text height
          at net.sf.jasperreports.engine.export.JRRtfExporter.exportText(JRRtfExporter.java:732)
          at net.sf.jasperreports.engine.export.JRRtfExporter.exportElements(JRRtfExporter.java:1325)
          at net.sf.jasperreports.engine.export.JRRtfExporter.exportPage(JRRtfExporter.java:480)
          at net.sf.jasperreports.engine.export.JRRtfExporter.exportReportToStream(JRRtfExporter.java:299)
          at net.sf.jasperreports.engine.export.JRRtfExporter.exportReport(JRRtfExporter.java:185)
          at org.apache.jsp.bigcus.RFIDCard.RFIDCardList_jsp._jspService(RFIDCardList_jsp.java:213)
          at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)  回復(fù)  更多評(píng)論
            

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn) 2008-04-16 15:44 衣順利
          我的郵箱是yishunliy@163.com ,請(qǐng)回復(fù)到我得郵箱 ,謝謝啦  回復(fù)  更多評(píng)論
            

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn) 2008-05-05 16:04 放水老倌
          @衣順利
          已經(jīng)給您回復(fù)郵件了,注意查收。  回復(fù)  更多評(píng)論
            

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn)[未登錄] 2009-01-20 17:19 phoenix
          我也出現(xiàn)這個(gè)問題了,不知道怎么回事,在保存rtf時(shí)候
          謝謝回復(fù)wangping127@tom.com  回復(fù)  更多評(píng)論
            

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn) 2009-05-19 22:02 Alex.tong
          tongjiallin313@126.com 同樣的問題  回復(fù)  更多評(píng)論
            

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn)[未登錄] 2009-12-24 14:20 iii
          我也出現(xiàn)這個(gè)問題了,不知道怎么回事,在保存rtf時(shí)候
          謝謝回復(fù)wangping127@tom.com @衣順利
            回復(fù)  更多評(píng)論
            

          # re: 一個(gè)Jasperreport多表打印代碼實(shí)戰(zhàn)[未登錄] 2009-12-24 14:21 voracle
          我也出現(xiàn)這個(gè)問題了,不知道怎么回事,在保存rtf時(shí)候
          謝謝回復(fù)hikarus7@gmail.com @衣順利
            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 大悟县| 罗源县| 阿合奇县| 兴化市| 博湖县| 江陵县| 高台县| 读书| 五大连池市| 三原县| 云阳县| 公安县| 鄂伦春自治旗| 望城县| 鹤壁市| 盖州市| 什邡市| 濮阳县| 阿克陶县| 惠州市| 九龙城区| 宁明县| 静宁县| 武夷山市| 江口县| 通州区| 石棉县| 融水| 黎城县| 琼海市| 易门县| 长治县| 南阳市| 赤壁市| 高要市| 文登市| 镇赉县| 磐石市| 昌吉市| 丰顺县| 安仁县|