反饋已提交
網絡繁忙
如果要修改範本,首先需要讀取範本。本文介紹如何將讀取的範本儲存為程式網路報表,然後直接在 Web 端存取定義的程式網路報表。
程式網路報表所在類需要繼承 com.fr.web.reportlet 這個抽象類,並且需要實現 createReport(ReportletRequest arg0) 這個方法,並傳回報表物件。
如下範例透過一個簡單的程式實現讀取 Parameter.cpt,然後在瀏覽器中直接存取該網路報表。
編譯程式前,需先建立一個 Java 工程環境,並且需要一個 Java 編輯器,如 Eclipse 或 idea 。
在編輯器工程中匯入 FineReport 工程 JAR 包。包括使用者自己報表工程
%FR_HOME%/lib下的所有的包,
%FR_HOME%/server/lib 下的所有包,
%FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包,
還要引入 JDK 下的 tools.jar。詳細操作可參考:編譯Java程式
在編輯器中編寫 Java 程式 SimpleReportletDemo.java,即定義一個類,繼承 reportlet,並實現裏面的方法。
完整程式碼可參見:
注:修改 Java ,重新編譯生成 class ,取代原有 class 後,必須重啟工程才能生效,否則一直都是展示原來的範本。
普通報表 cpt 程式碼:
//程式網路報表package com.fr.demo;import com.fr.io.TemplateWorkBookIO;import com.fr.main.TemplateWorkBook;import com.fr.web.core.Reportlet;import com.fr.web.request.ReportletRequest;import java.util.Map;public class SimpleReportletDemo extends Reportlet { public TemplateWorkBook createReport(ReportletRequest reportletrequest) { //建立一個WorkBook物件,用於儲存最終傳回的報表 TemplateWorkBook WorkBook = null; try { //讀取範本,將範本儲存為workbook物件並傳回 WorkBook = TemplateWorkBookIO.readTemplateWorkBook("//doctw//Primary//Parameter//參數引用.cpt"); } catch (Exception e) { e.getStackTrace(); } return WorkBook; } @Override public void setParameterMap(Map arg0) { // TODO Auto-generated method stub } @Override public void setTplPath(String arg0) { // TODO Auto-generated method stub }}
決策報表 frm 程式碼:
package com.fr.demo;import java.util.Map;import javax.servlet.http.HttpServletRequest;import com.fr.form.main.Form;import com.fr.form.main.FormIO;import com.fr.log.FineLoggerFactory;import com.fr.web.weblet.Formlet;public abstract class SimpleReportletDemoFrm extends Formlet { @Override public void setParameterMap(Map arg0) { // TODO Auto-generated method stub } protected Form createForm(HttpServletRequest request) throws Exception { Form form = null; //模板的相对路径 String tplPath = "//doctw//frm//決策報表入門.frm"; this.setTplPath(tplPath); try { form = FormIO.readForm(tplPath); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } return form; }}
Java 程式編寫完成後,在編譯器中編譯 SimpleReportletDemo.java ,編譯透過後,將會在編譯器對應工程檔案儲存路徑下生成 SimpleReportletDemo.class 類檔案。如下圖所示:
點選下載 class 檔案:SimpleReportletDemo.zipSimpleReportletDemoFrm.zip
將編譯後的 SimpleReportletDemo.class 放到報表工程 %FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\demo目錄下。如下圖所示:
啟動伺服器,在瀏覽器中輸入存取報表工程檔案的路徑,如使用本地設計器工程,啟動後在瀏覽器端輸入http://localhost:8075/webroot/decision/view/report?viewlet=com.fr.demo.SimpleReportletDemo便可以預覽報表。如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙