1. 概述
1.1 預期效果
FineReport 支援定時填報,透過藉助報表範本,定時實現資料的載入、匯總、填入庫。
比如,每月定時統計各個公司銷售業績,這些資料均存在分公司的資料庫中,利用定時填報功能,即可將各分工公司總業績儲存到總公司資料庫中。
1.2 實現思路
1)製作報表,匯總統計各分公司每個月的銷售業績。
2)透過排程管理任務每月定時呼叫月報表,匯總各分公司的銷售額,並儲存至資料庫中。
注:定時填報不支援內建校驗功能。
1.3 方案對比
本文場景:A 資料庫中的資料經過處理後定時同步到 B 資料庫中。
對比項 | 當前方案 | 新方案 | ||||
---|---|---|---|---|---|---|
方案簡介 | 本文方法,透過FineReport「排程管理+填報範本」實現 | 本文不做介紹 資料不需要進行復雜處理:使用 FineDataLink 的 資料同步 功能,定時同步資料
資料需要複雜處理:使用 FineDataLink 的 資料轉換 功能,定時同步資料
注:若資料對實時性有要求,可使用 FineDataLink 資料管道 功能 | ||||
使用者體驗 | 使用者需要配置繁瑣的 FR填報屬性,同時資料執行插入目標庫前需要經過FR的儲存格計算,導致資料插入效能低 | 使用 FDL 資料同步/資料轉換批量採集資料,將「資料生產層-業務系統」和「資料目標層-資料倉儲」完成連結,定時自動完成資料獲取,資料獲取效率大幅提升 |
2. 範例
2.1 製作月報表
製作一張報表用於統計資料,可以透過年份與月份參數查詢訂單金額跨年累計資訊,如下圖所示:
範本製作步驟請參見: 定時任務之月報與年報
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\Accumulative_4.cpt
點選下載範本:Accumulative_4.cpt
2.2 設定填報屬性
使用者需要實現的是,定期將統計後的資料自動儲存至資料庫,如將上圖中年、月、總額、累計等自動儲存到總部資料庫。那麼就必須先給範本設定填報屬性。
編輯月報表範本,點選「範本>報表填報屬性」,選擇總部的資料庫及表,把需要儲存到總資料庫中的資料綁定到對應列。
填報屬性設定可參考文檔:報表填報屬性。
定時填報的範本就設定完了,就可以使用監視計時器呼叫該報表進行定時填報了。
2.3 新增任務
管理者登入數據決策系統,點選「管理系統>排程管理>任務管理」,點選「新增任務」,新增一個排程管理任務。如下圖所示:
2.4 基本設定
1)「任務名稱」設定為「定時自動填報」。
2)「預設使用者組」無需設定。
如下圖所示:
2.5 調度物件
1)物件類型選擇「報表範本」,選擇2.2節設定好填報屬性的範本「定時自動填報.cpt」。
2)類型選擇「填報」。
3)參數設定,點選「設定參數預設值」,出現範本參數。
參數 month 的值為=month(today());
參數 year 的值為=year(today());
點選「下一步」,如下圖所示:
2.6 調度週期
執行頻率選擇「明細頻率設定」,點選「新增」。
設定執行時間為「18時0分」,執行日為「每月」的「最後一天」,執行月為「全選」,點選「確定」,即可成功新增明細頻率。
點選「下一步」。如下圖所示:
2.7 檔案處理
無需額外勾選處理方式,點選「儲存」,如下圖所示:
2.8 效果預覽
由於該任務的執行頻率是每月最後一天晚上 18 時執行一次,無法立刻看到任務效果。
為了立刻看到任務效果,可在「管理系統>排程管理>任務管理」介面找到該任務,選擇「執行一次」。
執行後,開啟資料庫,可以看到上個月資訊自動填報到了指定資料庫裏面(設計器:範本-報表填報屬性裏面指定的資料庫)。