在jsp中调用报表
来源:互联网 发布:手机淘宝客登录不上去 编辑:程序博客网 时间:2024/04/28 00:23
在jsp中调用报表·····
解决这个问题也用了我差不多2天时间:(,但总算是搞定了·····
下面分别介绍以pdf格式和以html格式显示报表····
a、pdf格式ireport_pdf.jsp····
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
//报表编译之后生成的.jasper 文件的存放位置
File reportFile = new File(application.getRealPath("ireport/xueji.jasper"));
//这个是用来联接我的mysql 的JDBC URL
String url="jdbc:mysql://localhost:3306/xueji?useUnicode=true&characterEncoding=gb2312";
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//传递报表中用到的参数值
Map parameters = new HashMap();
//"Name"是报表中定义过的一个参数名称,其类型为String 型
parameters.put("banji", new String(" c1"));
System.out.println("---------conn-------------");
//连接到数据库
Connection conn = DriverManager.getConnection(url,"root","root");
System.out.println("---------Jasper begin-------------");
//在控制台显示一下报表文件的物理路径
System.out.println(reportFile.getPath());
byte[] bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn);
System.out.println("---------Jasper end-------------");
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
b、html格式ireport_html.jsp····
<%
File reportFile = new File(application.getRealPath("/ireport/xueji.jasper"));
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
Map parameters = new HashMap();
parameters.put("baiji", "c1");
//parameters.put("BaseDir", reportFile.getParentFile());
//JRBeanArrayDataSource jrDataSource = new JRBeanArrayDataSource(objects);//objects为要打印的实体数组;
Class.forName("org.gjt.mm.mysql.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/xueji","root","root");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
JRHtmlExporter exporter = new JRHtmlExporter();
StringBuffer sbuffer = new StringBuffer();
Map imagesMap = new HashMap();
session.setAttribute("IMAGES_MAP", imagesMap);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
//exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
//exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/ireport/ireport_html.Image?image=");
//exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
exporter.exportReport();
//out.flush();
conn.close();
% >
注意:以html格式调用主要要注意//exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
//exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "images目录的路径?image=");
在生成html预览的时候会生成一个px文件,而这个images_uri的路径就是那个px的路径,建议不用,就用下面
的语句就可以了····
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
而这个语句则是处理分页用的····
//exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
需要注意的地方····
必须在tomcat5以上版本中运行····
在运行的时候还要将jasperreports/lib下的包全部拷到tomcat下你所放文件目录下的win-inf/lib下···
特别要注意的是看看ireport/lib下的包与jasperreports/lib的包是否兼容···
之前我的一直有问题就是因为我的发布环境是jasperreports-0.6.7.jar而运行环境是jasperreports-0.6.8.jar···
这样也会出现错误的····
- 在jsp中调用报表
- 【转载】在jsp中调用报表IReport+JasperReport
- 在JSP中实现水晶报表
- 在JSP中调用JAVAMAIL
- JSP中调用Ireport报表文件并展示效果源码
- 如何利用iText在JSP中生成PDF报表- -
- 利用iText在JSP中生成PDF报表
- 如何利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 如何利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 详解如何利用iText在JSP中生成PDF报表
- 详解如何利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- HTML5中淘汰的标签
- 明天我的病也可能好不了,就上不了幼儿园了
- javascript 读写txt文件
- 如何还原,经过回收与诺顿的HP电脑
- 双引擎强悍!QQ电脑管家4.6 Beta1实测
- 在jsp中调用报表
- 双引擎强悍!QQ电脑管家4.6 Beta1实测
- 如何进入安全模式的HP台式机
- Android 正则表达式学习
- SVG+Javascript+Dom Maniputation
- 被炒到天价 MOTO XOOM到货报价5499元
- Dwr用方法
- 如何还原,经过回收与诺顿的HP电脑
- GridView导出Excel报错—类型“GridView”的控件“GridView1”必须放在具有runat=server的窗体标记内