- 浏览: 231337 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
插上翅膀的小猪:
同意三楼的意见。
下载服务器上的文件-纯java处理 -
ITQCF:
一楼所言极是啊,encodeFileName这个方法为嘛找不到 ...
下载服务器上的文件-纯java处理 -
u011296404:
这个不适用与ie浏览器
下载服务器上的文件-纯java处理 -
冬天秋天:
博主 这个貌似在oracle 数据库下没有成功啊……
更新一个表的字段值等于另一个表的字段值的SQL语句 -
pangpang514:
WebUtils是在org.springframework.w ...
下载服务器上的文件-纯java处理
目的:实现从前端到后台及生成报表的整个流程。
1.jsp页面
<%@page contentType="text/html; charset=UTF-8"%> <%@ include file="/commons/taglibs.jsp"%> <html> <head> <title>生成报表</title> <script language="JavaScript" type="text/JavaScript"> function doPrintHTML(id) { window.open("${ctx}/expense/expTrack.do?method=doPrintHTML&id="+id); } function doPrintPDF(id) { window.open("${ctx}/expense/expTrack.do?method=doPrintPDF&id="+id); } </script> </head> <div align=center> <ec:table items="explist" var="exp" action="${ctx}/expense/expTrack.do" imagePath="${ctx}/widgets/extremecomponents/images/newHR/*.gif" retrieveRowsCallback="limit" view="newHr"> <ec:row highlightClass="newHrECRowHighlightClass"> <ec:column property="null" title="打印明细" sortable="false" viewsAllowed="newHr"> <a href="javascript:doGetExpItem('${exp.id}');" style="TEXT-DECORATION: none"><img src="${ctx}/styles/newHR/images/detail2.gif" alt="明细html详情" border="0"> </a> <a href="javascript:doPrintPDF('${exp.id}');" style="TEXT-DECORATION: none"><img src="${ctx}/styles/newHR/images/print.gif" alt="明细PDF详情" border="0"> </a> </ec:column> </ec:row> </ec:table> </div> </div> </body> </html>
2.Struts中action 中的代码编写
打印pdf的
public ActionForward doPrintPDF(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { try { String empName = "name"; Float totalAmountTemp =780; //数据转换 DecimalFormat df = new DecimalFormat("0.00"); String totalAmount = df.format(totalAmountTemp); //数据转换-End String path = servlet.getServletContext().getRealPath("/"); path = path + "report\\image\\logo.jpg"; HashMap<String,String> parameters = new HashMap<String, String>(); parameters.put("EMPLOYEE_NAME", empName); parameters.put("TOTAL_AMOUNT", totalAmount); parameters.put("IMG_PATH_LOGO", path); List<ItemsVO> resultList = itemsService.findItemByExp(); expPrintService.showPDFPage(request, response, parameters, resultList, "PteExpend"); }catch (BusinessException e) { saveDirectlyError(request,e.getMessage()); log.error(e); } catch (Exception e) { String message = ""; saveDirectlyError(request,message); log.error(message+e); } return null; }
打印html
public ActionForward doPrintPDF(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { try { String empName = "name"; Float totalAmountTemp =780; //数据转换 DecimalFormat df = new DecimalFormat("0.00"); String totalAmount = df.format(totalAmountTemp); //数据转换-End String path = servlet.getServletContext().getRealPath("/"); path = path + "report\\image\\logo.jpg"; HashMap<String,String> parameters = new HashMap<String, String>(); parameters.put("EMPLOYEE_NAME", empName); parameters.put("TOTAL_AMOUNT", totalAmount); parameters.put("IMG_PATH_LOGO", path); List<ItemsVO> resultList = itemsService.findItemByExp(); expPrintService.showHTMLPage(request, response, parameters, resultList, "PteExpend"); }catch (BusinessException e) { saveDirectlyError(request,e.getMessage()); log.error(e); } catch (Exception e) { String message = ""; saveDirectlyError(request,message); log.error(message+e); } return null; }
调用的子方法
@SuppressWarnings("deprecation") public void showPDFPage(HttpServletRequest request, HttpServletResponse response, Map<String, String> parameters, List<?> resultList, String reportModuleName) throws IOException{ try { File reportFile = new File(request.getRealPath("/report/" + reportModuleName +".jasper")); JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(resultList); String reportFilePath = reportFile.getPath(); JasperPrint jasperPrint; jasperPrint = JasperFillManager.fillReport(reportFilePath, parameters, ds); byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint); //设置文件格式 response.setContentType("application/pdf"); response.setHeader("Content-disposition","attachment; filename="+reportModuleName+".pdf"); //设置文件内容大小 response.setContentLength(bytes.length); response.setCharacterEncoding("UTF-8"); //获取输出流 ServletOutputStream ouputStream = response.getOutputStream(); //打印输出流 ouputStream.write(bytes, 0, bytes.length); //刷新输出流 ouputStream.flush(); //关闭输出流 ouputStream.close(); } catch (JRException jre) { System.out.println("JRException:" + jre.getMessage()); jre.printStackTrace(); } }
html 子方法
@SuppressWarnings("deprecation") public void showHTMLPage(HttpServletRequest request, HttpServletResponse response, Map<String, String> parameters, List<?> resultList, String reportModuleName) throws IOException { try { //页面格式编码设置 response.setContentType("text/html;charset=UTF-8"); //定义文件操作(读写)类 PrintWriter out = response.getWriter(); //根据报表文件的物理路径绘制报表文件 File reportFile = new File(request.getRealPath("/report/"+reportModuleName+".jasper")); String reportFilePath = reportFile.getPath(); JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(resultList); JasperPrint jasperPrint; jasperPrint = JasperFillManager.fillReport(reportFilePath, parameters, ds); /**JasperRunManager.runReportToHtmlFile(reportFilePath, parameters, conn); 生成静态HTML页面到*.jsper同目录文件下**/ //JRXxxExporter:这是一系列的文件导出器,他们用于将*.jrprint 文件导出成对应格式的报表文件 //使用JRHtmlExproter导出Html格式, Xls格式的导出器 JRXlsAbstractExport JRHtmlExporter exporter = new JRHtmlExporter(); //图片路径 exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,request.getContextPath()+"\\report\\image\\"); request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint); //填充导出器的相关参数 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_WRITER,out); exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.TRUE); //导出 exporter.exportReport(); out.close(); } catch (JRException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
把报表的模板生成好,放到相应的路径下就OK了。
发表评论
-
测速网站
2016-09-06 18:01 0https://www.webpagetest.org/能 ... -
高并发量网站解决方案
2015-07-10 10:41 1096一个小型的网站,可以 ... -
ubantu自带的tcpdump(抓包工具的使用)
2012-08-29 19:17 10421.在命令下 root@ubantu:~# man tcpd ... -
MyEclipse8.6安装svn(非link方式) .
2012-06-06 18:27 1515此方法经试验可行, ... -
J2EE 领域的一些技术框架结构图
2012-05-10 13:19 1082顶 1 踩 1.Spring 架构图 ... -
Eclipse以及Myeclipse 单步调试
2012-04-11 12:39 14061.在Eclipse中启动Tomcat。 2.在待调试的 ... -
10 个技巧让你的 RESTful Web 服务更加实用
2012-04-10 11:12 767提示:随着RESTful Web services的流行程度不 ... -
关于JSP网页开发中tomcat、myeclipse完全配置
2012-04-06 18:09 2093关于JSP网页开发中tomcat ... -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
2012-02-18 20:16 978后来发现是在中心创建这个工程的时候,使用的JDK是Java5但 ... -
在js文件里引入其他js文件
2012-02-02 21:10 1209第一个js文件(被引入的js文件),文件名one.js,内容如 ... -
● JS中的window.setTimeout()详解
2012-02-01 15:48 1196setTimeout (表达式,延时时间)setInter ... -
转Ext性能优化
2011-12-29 15:41 923前一阶段由于页面上 ... -
解决ext下拉列表全选和去全选功能
2011-12-29 12:50 1257最近在做ext的项目,需求要求处理下拉列表要有全选和去全选的功 ... -
java解压缩包,在linux下,Aix系统下乱码处理方法
2011-12-08 18:28 3636需求:大批量的数据,包含多级目录,目录结构不确定,最后的文件为 ... -
转—Sybase数据库简介
2011-07-27 14:37 759一、Sybase数据库简介 1 ... -
在当前页面直接加载当前月份
2010-11-30 16:31 8421。 js window.onload = function ... -
下载服务器上的文件-纯java处理
2010-07-06 19:05 18779public void download(HttpServle ... -
如何清jboss缓存
2010-07-06 18:50 3896要清除Jboss下的缓存,只要清除以下文件的所有文件就可以了: ... -
Java集合类
2010-05-30 14:34 801集合类说明及区别Colle ... -
string对象
2010-05-25 22:01 790/** * @author fxliu * @vers ...
相关推荐
下面将详细介绍锐浪报表使用中涉及的关键知识点。 首先,创建报表对象是使用锐浪报表的第一步。从提供的代码片段可以看出,通过`GridppReport`类实例化出报表对象,代码如下: ```java GridppReport Report = new ...
【水晶报表使用教程 报表】是一份详细的教学资源,旨在帮助用户掌握如何有效地使用水晶报表(Crystal Reports)这一强大的报表设计工具。水晶报表是Business Objects公司开发的一款流行的企业级报表解决方案,它允许...
详细介绍用友UFO报表使用,从新建报表到公式调整,生成报表。
通过《润乾报表使用手册》的学习,可以系统掌握润乾报表的使用方法和开发过程,从而提高报表的开发效率。 首先,《润乾报表使用手册》适用于对报表业务有一定了解的用户,以及正在学习集算报表的使用者。手册的主要...
"用友U8自定义报表使用存储过程时,使用系统的分组和小计、累计、合计" 用友U8自定义报表使用存储过程时,使用系统的分组和小计、累计、合计是指在用友U8自定义报表中使用存储过程来生成报表,同时利用系统的分组和...
用友手册资料:U9_Web_UFO报表使用指南.pdf 本手册为用友U9_Web_UFO报表使用指南,旨在指导用户如何使用Web-UFO报表工具设计和发布报表。 Web-UFO报表提供了在Web上展现基于财务指标函数取数的电子表格功能,并且还...
U8自定义报表使用存储过程时,使用系统的分组和小计、累计、合计
在这个“水晶报表使用入门”中,我们将深入探讨如何开始使用这个工具。 首先,安装和启动水晶报表。你需要下载并安装水晶报表的相应版本,如Business Objects Crystal Reports。安装完成后,可以通过桌面快捷方式或...
本文档包含润乾报表使用的方法!介绍了润乾报表V4.0的下载网址及注意事项!按照本文档的操作,你就可以轻松学会报表的使用。
U850自定义报表使用指南,是在用友U8开发自定义报表的好帮手。
### SAP B1水晶报表使用指南知识点详述 #### 一、Crystal Reports 2008 SP3概述 **1.1 关于Crystal Reports** - **产品背景:** Crystal Reports 是一款广泛使用的商业智能(BI)工具,特别适用于中小型企业的报表...
visual studio 自带的RDLC报表的使用技巧. 个人建议在做报表的时候尽量用自带的RDLC去代替水晶报表. 稳定性会好很多.
【Web Intelligence 报表使用文档】是一份详细指导如何在 SAP BusinessObjects (BOE) 平台上使用 Web Intelligence (Webi) 开发和操作报表的中文文档。Web Intelligence 是一个强大的商务智能工具,允许用户创建、...
本资源包含一个名为"水晶报表使用.wmv"的视频教程,将详细介绍如何在C#中有效地使用水晶报表。 首先,使用水晶报表的基本步骤包括:安装水晶报表SDK、创建新的报表项目以及引入水晶报表引用。在C#项目中,你需要...
【水晶报表使用学习文档】 水晶报表是一款强大的报表开发工具,广泛应用于各类管理系统的报表设计。在.NET环境下,水晶报表提供了简单易用的接口,能够帮助开发者轻松创建丰富多样的报表。以下是对使用水晶报表的...
**VC++水晶报表使用详解** 水晶报表(Crystal Reports)是一款强大的报表设计工具,常用于Windows应用程序中,尤其在Visual C++开发环境中。本篇将深入探讨如何在VC++项目中集成并有效使用水晶报表,以及如何配合...
**ReportViewer报表使用详解** ReportViewer是Microsoft提供的一款强大的报表控件,主要应用于.NET Framework环境,支持C#等编程语言,能够帮助开发者轻松创建、展示和打印各种复杂的报表。本篇文档将详细介绍如何...
### RDLC报表使用手册知识点详解 #### 一、RDLC报表概述 **1.1 为何选择RDLC报表** 在.NET开发中,报表设计一直是重要的组成部分。过去,开发者可能会首选Crystal Report作为报表解决方案,尽管其功能强大且拥有...
【水晶报表使用详解】 水晶报表是一款强大的报表设计工具,广泛应用于C#.Net的WinForm和Asp.Net中,用于生成和展示各种复杂的业务报告。本文将详细介绍如何在开发环境中使用水晶报表,包括动态生成查询条件、处理...