jasperreport3.1.2集成

下载jasperreports-3.1.2的zip包,把dist目录下的jasperreports-3.1.2.jar,jasperreports-3.1.2-applet.jar,jasperreports-3.1.2-javaflow.jar,以及lib目录下的commons-javaflow-20060411.jar,commons-digester-1.7.jar拷到工程的lib目录下。
运行一个报表时,需要取的编译后的报表文件。可以直接从ireport3.1.2报表设计器生成的文件中找到.jasper的文件,也可以自己编译.jrxml的报表设计文件得到。
在JSP页面展示时,需要编写代码,具体的JSP代码如下:

<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ page errorPage="error.jsp" %>
<%@ 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="net.sf.jasperreports.view.JasperViewer" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*"%>
<%@ page import="com.frameworkset.common.poolman.PreparedDBUtil" %>
<%@ page import="com.chinacreator.epp.reportmanage.ReportUtil" %>
<%@ page import="com.chinacreator.epp.reportmanage.dbmanager.ReportManage"%>
<%
//获得报表文件的ID
String reportId = request.getParameter("raq");
JasperPrint jasperPrint = null;
String page_num = (String)request.getParameter("page");
String filePath = this.getServletContext().getRealPath("/report/reportFiles/")+"\\";
File reportFile = new File(filePath+reportId+".jasper");
PreparedDBUtil pd = new PreparedDBUtil();
if(page_num!=null&&page_num.length()>0)
{
jasperPrint = (JasperPrint)session.getAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE);
}

if (request.getParameter("reload") != null || jasperPrint == null)
{
//System.out.println(filePath+reportId+".jasper");
if(!reportFile.exists())
{
//如果没有.jasper文件,用.jrxml文件编译
File jrxmlFile = new File(filePath+reportId+".jrxml");
if(!jrxmlFile.exists())
{
ReportUtil util = new ReportUtil();
ReportManage rm = new ReportManage();
util.creatFile(filePath+reportId+".jrxml",rm.getReportFileBytes(reportId),false);
}
JasperCompileManager.compileReportToFile(filePath+reportId+".jrxml",filePath+reportId+".jasper");
}
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
java.util.Map parameters = new java.util.HashMap();
java.sql.Connection con = null;
String sql = request.getParameter("sql");
if(sql!=null&&sql.length()>0)
parameters.put("SQLSTR",sql);

jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
pd.getConection()
);
session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
}

JRHtmlExporter exporter = new JRHtmlExporter();
int pageIndex = 0;
int lastPageIndex = 0;
if (jasperPrint.getPages() != null)
{
lastPageIndex = jasperPrint.getPages().size() - 1;
}

String pageStr = request.getParameter("page");
try
{
pageIndex = Integer.parseInt(pageStr);
}
catch(Exception e)
{
}

if (pageIndex < 0)
{
pageIndex = 0;
}

if (pageIndex > lastPageIndex)
{
pageIndex = lastPageIndex;
}

StringBuffer sbuffer = new StringBuffer();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../jasperreport/image?image=");
exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex));

exporter.exportReport();
%>

<html>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<head>
<style type="text/css">
a {text-decoration: none}
</style>
</head>
<body text="#000000" link="#000000" alink="#000000" vlink="#000000">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="20%"> </td>
<td align="left">
<hr size="1" color="#000000">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
name="report" width="1px" height="1px" codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0_06-windows-i586.cab#Version=5,0,60,5">

<PARAM NAME = "CODE" VALUE = "com.chinacreator.epp.reportmanage.JasperReport.PrinterApplet" >
<PARAM NAME = "CODEBASE" VALUE = ".">
<PARAM NAME = "ARCHIVE" VALUE = "jasperprint.jar,jfreechart-1.0.10.jar,jasperreports-3.1.2-applet.jar,jcommon-1.0.13.jar" >
<PARAM NAME = "type" VALUE ="application/x-java-applet;version=1.5.0">
<PARAM NAME = "REPORT_URL" VALUE ="../jasperreport/print">
<COMMENT>
<EMBED
type = "application/x-java-applet;version=1.5.0"
CODE = "com.chinacreator.epp.reportmanage.JasperReport.PrinterApplet"
CODEBASE = "."
ARCHIVE = "jasperprint.jar,jfreechart-1.0.10.jar,jasperreports-3.1.2-applet.jar,jcommon-1.0.13.jar"
REPORT_URL ="../servlets/jasperprint"
pluginspage = "http://java.sun.com/products/plugin/index.html#download" width="100%" height="100%">
<NOEMBED>
alt="Your browser understands the <APPLET> tag but isn't running the applet, for some reason."
Your browser is completely ignoring the <APPLET> tag!
</NOEMBED>
</EMBED>
</COMMENT>

</OBJECT>
</td>
<td>
<a href="showJasperReport.jsp?reload=true&raq=<%=reportId %>"><img src="reportImages/reload.GIF" border="0"></a>
</td>
<td>
<a href="../jasperreport/xls"><img src="reportImages/excel.gif" border="0" title="导出为excel"></a>
</td>
<td>
<a href="../jasperreport/pdf"><img src="reportImages/pdf.gif" border="0" title="导出为PDF"></a>
</td>
<td>
<a href="javascript:void 0;" onclick="document.applets.report.printReport();return false;"><img src="reportImages/print.gif" border="0" title="打印"></a>
</td>
<td>   </td>
<%
if (pageIndex > 0)
{
%>
<td><a href="showJasperReport.jsp?page=0&raq=<%=reportId %>"><img src="reportImages/first.GIF" border="0"></a></td>
<td><a href="showJasperReport.jsp?page=<%=pageIndex - 1%>&raq=<%=reportId %>"><img src="reportImages/previous.GIF" border="0"></a></td>
<%
}
else
{
%>
<td><img src="reportImages/first_grey.GIF" border="0"></td>
<td><img src="reportImages/previous_grey.GIF" border="0"></td>
<%
}

if (pageIndex < lastPageIndex)
{
%>
<td><a href="showJasperReport.jsp?page=<%=pageIndex + 1%>&raq=<%=reportId %>"><img src="reportImages/next.GIF" border="0"></a></td>
<td><a href="showJasperReport.jsp?page=<%=lastPageIndex%>&raq=<%=reportId %>"><img src="reportImages/last.GIF" border="0"></a></td>
<%
}
else
{
%>
<td><img src="reportImages/next_grey.GIF" border="0"></td>
<td><img src="reportImages/last_grey.GIF" border="0"></td>
<%
}
%>
<td width="100%"> </td>
</tr>
</table>
<hr size="1" color="#000000">
</td>
<td width="20%"> </td>
</tr>
<tr>
<td width="20%"> </td>
<td align="center">

<%=sbuffer.toString()%>

</td>
<td width="20%"> </td>
</tr>
</table>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值