由于FineReport 提供的报表服务器其实就是一个Servlet,所以通过简单的配置,就可以将FineReport 设计的报表集成到Tomcat 服务器中。
假设已存在一个名为Test 的工程和一个设计好的报表report1.cpt,下面介绍如何将report1.cpt 这个报表集成到Test 工程中。
(一)复制文件
将%FineReport_HOME%\WebReport\WEB-INF 路径下面的classes,lib,reportlets,resources 四个文件复制到%Tomcat_HOME %\webapps\Test\WEB-INF 下。如果Test 工程中已存在class,lib 文件夹,则将%FineReport_HOME%\WebReport\WEB-INF路径下面的classes,lib 文件夹的文件拷贝到%Tomcat_HOME%\webapps\Test\WEB-INF 下的class,lib文件夹中。
(二)整合web.xml 文件
1. 找到在% Tomcat_HOME% \webapps\Test\WEB -INF目录下的web.xml 。
2. 在%FineReport_HOME%/WebReport/WEB -INF下的web.xml 中找到的信息。
<servlet> <servlet-name>ReportServer</servlet-name> <servlet-class>com.fr.web.ReportServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ReportServer</servlet-name> <url-pattern>/ReportServer</url-pattern> </servlet-mapping>
3. 将%FineReport_HOME%/WebReport/WEB -INF下的web.xml 中找到的内容复制到%Tomcat 5.5%\webapps\Test\WEB-INF目录下的web.xml 中,放在<servlet-mapping>标志之前,</servlet> 标志之后。
(三)浏览报表
重新启动Tomcat,启动浏览器,在地址栏输入http://localhost:8080/Test/ReportServer reportlet=/com/test/report1.cpt。
(四)通过jsp访问:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- - Author(s): --> <head> <%@include file="/common/common.jsp"%> <title>billReport</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <script src="<%= request.getContextPath() %>/common/nui/nui.js" type="text/javascript"></script> </head> <body> <div class="nui-panel" iconCls="fa fa-search" style="width:100%;height:70px;" showToolbar="false" showFooter="true"> <div id="form_rcvbl" class="nui-form" align="center" style="height:100%;"> <table class="table" style="height:100%"> <tr> <td class="form_label"> <b:message key="hx.billing.crm.column.account_no"/> <b:message key="hx.billing.common.symbol.colon"/> </td> <td colspan="1"> <input id="textbox_consNo" class="nui-textbox"/> </td> <td colspan="1"> <a id="button_search" class="nui-button" onclick="queryReport()" style="margin-left: 50px;"> <b:message key="hx.billing.common.button.query"/> </a> </td> </tr> </table> </div> </div> <div> <iframe id="reportFrame" frameborder="0"></iframe> </div> <script type="text/javascript"> nui.parse(); <%-- 查询报表 --%> function queryReport(){ var consNo = nui.get("textbox_consNo").value; var reportURL = "<%= request.getContextPath() %>/ReportServer?reportlet=queryCons.cpt&consNo="+consNo; var ifm = document.getElementById("reportFrame"); ifm.height=document.documentElement.clientHeight-70; ifm.width=document.documentElement.clientWidth; ifm.src = reportURL; } window.onload = queryReport; </script> </body> </html>