由于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>