1. 程式人生 > >帆軟將cpt檔案的報表嵌入到java程式碼中的jsp檔案中

帆軟將cpt檔案的報表嵌入到java程式碼中的jsp檔案中

將FineReport 整合到自己的web專案中,生成報表,可以方便快捷的和自己的專案融合在一起。簡化了利用poi的匯出遇到的問題。

1、首先在FR中建立好一個模板

 例如:我的這張模板是連線的自己的資料庫

     

2、將FR軟體下的jar包新增到自己的專案中

注意是哪個路徑下面的jar包,當然有些jar包是你專案中存在的就不需要匯入了,比如 :mysql驅動包

      

3、在你的專案的WEB-INF下建立兩個資料夾,如圖:一個放模板,一個放資料庫配置

    

4、.在web.xml 配置報表處理報表的服務(servlet負責對請求的模板進行解析生成處理可以看作是報表的伺服器)

將其新增到自己專案的 web.xml 中。

   

5、啟動web專案,在位址列中輸入正確的訪問路徑

    

補充:當我們需要在頁面上點選一個jsp頁面時顯示報表:

新建jsp檔案,新增以下程式碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String dw = request.getParameter("dw")==null?"":request.getParameter("dw");
	String sdate= request.getParameter("sdate")==null?"":request.getParameter("sdate");
	String edate= request.getParameter("edate")==null?"":request.getParameter("edate");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>demo</title>
	<style>
		body{margin:0; padding:0;}
	</style>
	<script type="text/javascript" language="javascript">
		function init() {
			var dw = "<%=dw%>";
			var sdate="<%=sdate%>";
			var edate="<%=edate%>";
			var h=document.documentElement.scrollHeight || document.body.scrollHeight;
			document.getElementById("datashow1").height=h+'px';
			document.getElementById("datashow1").src=
				"../ReportServer?reportlet=/測試嵌入.cpt&p_unitid="
						+dw+"&p_begindate="+sdate+"&p_enddate="+edate;
		}
	</script>
</head>
<body onload='init()'>
	<iframe id='datashow1' src='' scrolling='no' frameborder='0' border='0' 
	style='margin:0px;width:100%;'></iframe>
</body>
</html>

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>

最後訪問jsp頁面如圖: