2007-09-13
JasperReport报表设计总结(三)(已完毕)
由于在一个里面不能贴太多的代码,故放置代码在此处。
上接:http://jimmy-shine.javaeye.com/blog/123595
PDF格式的:
上接:http://jimmy-shine.javaeye.com/blog/123595
PDF格式的:
java 代码
- /**
- * @copyRight Beijing Tsing-Tech Reachway Software Co.,Ltd.
- * @author Jimmy.Shine 2007-5-12
- */
- package cn.com.reachway.framework.report.export;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.net.URLEncoder;
- import java.sql.Connection;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import net.sf.jasperreports.engine.JRDataSource;
- import net.sf.jasperreports.engine.JRException;
- import net.sf.jasperreports.engine.JRExporterParameter;
- import net.sf.jasperreports.engine.JasperPrint;
- import net.sf.jasperreports.engine.export.JRPdfExporter;
- import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet;
- import cn.com.reachway.framework.exception.JasperReportException;
- import cn.com.reachway.framework.report.jasperPrint.JasperPrintWithConnection;
- import cn.com.reachway.framework.report.jasperPrint.JasperPrintWithDataSource;
- /**
- *
- */
- public class PDFExport {
- /**
- * 导出报表
- *
- * @param request
- * @param response
- * @param reportFilePath
- * @param params
- * @param con
- * @param fileName
- * @throws JasperReportException
- */
- public void export(HttpServletRequest request, HttpServletResponse response, String reportFilePath, Map params,
- Connection con, String fileName) throws JasperReportException {
- JasperPrint jasperPrint = new JasperPrintWithConnection(reportFilePath, params, con).getJasperPrint();
- // 将填充完的japserPrint放入session中。
- request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
- // 拿到japserPrintList
- List jasperPrintList = BaseHttpServlet.getJasperPrintList(request);
- // 若没有JasperPrintList,则抛出异常
- if (jasperPrintList == null) {
- throw new JasperReportException("在Http Session中没有找到JasperPrint List");
- }
- try {
- OutputStream ouputStream = response.getOutputStream();
- try {
- response.setContentType("application/pdf");
- response.setCharacterEncoding("UTF-8");
- if (fileName == null || fileName.equals(""))
- response.setHeader("Content-Disposition", "inline; filename=\"noTitle.pdf\"");
- else
- response.setHeader("Content-Disposition", "inline; filename=\""
- + URLEncoder.encode(fileName, "UTF-8") + ".pdf\"");
- // 使用JRPdfExproter导出器导出pdf
- JRPdfExporter exporter = new JRPdfExporter();
- // 设置JasperPrintList
- exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
- exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
- exporter.exportReport();
- } catch (JRException e) {
- e.printStackTrace();
- throw new JasperReportException("在导出pdf格式报表时发生错误");
- } finally {
- if (ouputStream != null) {
- try {
- ouputStream.close();
- } catch (IOException ex) {
- }
- }
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- throw new JasperReportException("从Response中取得OutputStream时发生错误!");
- }
- }
- /**
- * 导出报表
- *
- * @param request
- * @param response
- * @param reportFilePath
- * @param params
- * @param dataSource
- * @param fileName
- * @throws JasperReportException
- */
- public void export(HttpServletRequest request, HttpServletResponse response, String reportFilePath, Map params,
- JRDataSource dataSource, String fileName) throws JasperReportException {
- JasperPrint jasperPrint = new JasperPrintWithDataSource(reportFilePath, params, dataSource).getJasperPrint();
- // 将填充完的japserPrint放入session中。
- request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
- // 拿到japserPrintList
- List jasperPrintList = BaseHttpServlet.getJasperPrintList(request);
- // 若没有JasperPrintList,则抛出异常
- if (jasperPrintList == null) {
- throw new JasperReportException("在Http Session中没有找到JasperPrint List");
- }
- try {
- OutputStream ouputStream = response.getOutputStream();
- try {
- response.setContentType("application/pdf");
- response.setCharacterEncoding("UTF-8");
- if (fileName == null || fileName.equals(""))
- response.setHeader("Content-Disposition", "inline; filename=\"noTitle.pdf\"");
- else
- response.setHeader("Content-Disposition", "inline; filename=\""
- + URLEncoder.encode(fileName, "UTF-8") + ".pdf\"");
- // 使用JRPdfExproter导出器导出pdf
- JRPdfExporter exporter = new JRPdfExporter();
- // 设置JasperPrintList
- exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
- exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
- exporter.exportReport();
- } catch (JRException e) {
- e.printStackTrace();
- throw new JasperReportException("在导出pdf格式报表时发生错误");
- } finally {
- if (ouputStream != null) {
- try {
- ouputStream.close();
- } catch (IOException ex) {
- }
- }
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- throw new JasperReportException("从Response中取得OutputStream时发生错误!");
- }
- }
- }
评论
泡 泡
2008-03-29
现在Crystal Report有个开发版对Java是免费的,比JasperReport好用多了
lygydl
2008-03-29
非常感谢,不过。。。。。。作为刚入门的我,还是没有运行起来,如何架设环境?没有得到一个pdf,能不能麻烦您好人做到底?
flash
2007-12-07
生成pdf的时候,字体设置好麻烦.动不动就出问题.所以还是用excel了.
xcg1688
2007-12-04
非常感谢,不过。。。。。。作为刚入门的我,还是没有运行起来,没有得到一个pdf,能不能麻烦您好人做到底?
palmer
2007-11-10
Thank you very much!
glassprogrammer
2007-09-13
引用
# /**
# * @copyRight Beijing Tsing-Tech Reachway Software Co.,Ltd.
# * @author Jimmy.Shine 2007-5-12
# */
# * @copyRight Beijing Tsing-Tech Reachway Software Co.,Ltd.
# * @author Jimmy.Shine 2007-5-12
# */
这个。。。,貌似放出来不太合适吧
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 63119 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
市场至上,还是我们应当坚 ...
一蓑烟雨任平生 写道优秀的项目经理,要能打硬仗、打恶仗,成了是英雄,败了当炮灰, ...
-- by gurudk -
市场至上,还是我们应当坚 ...
zqrain 写道gigix说得很好,但是,可能不是jimmy.shine的关键 ...
-- by simenliu2003 -
市场至上,还是我们应当坚 ...
还真是 以卖专利为生的公司除外 ziggler 写道在很多公司里面,技术是市场的 ...
-- by celine -
市场至上,还是我们应当坚 ...
jimmy.shine 写道 这种问题,不知道大家有没有遇到,又是如何处理的呢? ...
-- by chenzengpeng -
市场至上,还是我们应当坚 ...
在很多公司里面,技术是市场的一支枪而已。
-- by ziggler






评论排行榜