1. 程式人生 > 其它 >RSS訂閱 原創 開源UReport 整合到產品中實踐簡要:(四)UReport 自定義mysql資料庫表的儲存器

RSS訂閱 原創 開源UReport 整合到產品中實踐簡要:(四)UReport 自定義mysql資料庫表的儲存器

技術標籤:spring bootureport 自定義儲存器

一、預設報表儲存器:

UReport2預設提供的名為“伺服器檔案系統”的報表儲存機制,實際上是實現了UReport2提供的com.bstek.ureport.provider.report.ReportProvider介面。介面原始碼如下:

public interface ReportProvider {
    /**
     * 根據報表名載入報表檔案
     * @param file 報表名稱
     * @return 返回的InputStream
     */
    InputStream loadReport(String file);
    /**
     * 根據報表名,刪除指定的報表檔案
     * @param file 報表名稱
     */
    void deleteReport(String file);
    /**
     * 獲取所有的報表檔案
     * @return 返回報表檔案列表
     */
    List<ReportFile> getReportFiles();
    /**
     * 儲存報表檔案
     * @param file 報表名稱
     * @param content 報表的XML內容
     */
    void saveReport(String file,String content);
    /**
     * @return 返回儲存器名稱
     */
    String getName();
    /**
     * @return 返回是否禁用
     */
    boolean disabled();
    /**
     * @return 返回報表檔名字首
     */
    String getPrefix();
}

實現了ReportProvider介面後,只需要將實現類配置到Spring中,讓其成為一個標準的Spring Bean,這樣UReport2就會檢測到它而將其載入。

如果想要禁用系統提供的預設報表儲存器,只需要把ureport2-core包下的ureport.properties檔案拷貝一份放到自己的根目錄下:

配置檔案內容如下:

ureport.disableHttpSessionReportCache=false ureport.disableFileProvider=true ureport.fileStoreDir=/WEB-INF/ureportfiles ureport.debug=true

將ureport.disableFileProvider改成true,即可禁用預設報表儲存器。

二、自定義mysql 報表儲存器

如果想要定義自己的報表儲存器,只需要實現了ReportProvider介面後,並將實現類配置到Spring中,讓其成為一個標準的Spring Bean,這樣UReport2就會檢測到它而將其載入。

同時設計一個表結構,具體可以參考(轉載,這裡要感謝作者):https://github.com/wanghaoren1/Ureport2