RSS訂閱 原創 開源UReport 整合到產品中實踐簡要:(四)UReport 自定義mysql資料庫表的儲存器
阿新 • • 發佈:2021-02-02
技術標籤: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。