帆軟將cpt檔案的報表嵌入到java程式碼中的jsp檔案中
阿新 • • 發佈:2019-02-06
將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頁面如圖: