一種周期性報表系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明屬于數(shù)據(jù)處理技術領域,尤其設及一種周期性報表系統(tǒng)。
【背景技術】
[0002] 報表功能在應用軟件系統(tǒng)中非常重要,它通過提取系統(tǒng)最有價值的數(shù)據(jù),并按用 戶需求生成圖表。實現(xiàn)一個定制化報表有兩個方面需要處理,首先是獲取業(yè)務數(shù)據(jù)并按要 求進行統(tǒng)計,然后是將統(tǒng)計好的數(shù)據(jù)交給第Ξ方報表工具生成實際的報表,也可W調(diào)用開 發(fā)環(huán)境的原生圖形API來繪制對應的圖表。周期性報表則是按特定周期將數(shù)據(jù)進行趨勢統(tǒng) 計,還可W是對多組不同時間段的數(shù)據(jù)進行同比和環(huán)比。周期數(shù)據(jù)統(tǒng)計在很多行業(yè)都大有 用途,統(tǒng)計后數(shù)據(jù)一般都需要進行報表呈現(xiàn)。
[0003] 然而由于業(yè)務的數(shù)據(jù)類型和統(tǒng)計規(guī)則都不確定,難W通過一套通用的代碼框架完 成所有周期數(shù)據(jù)統(tǒng)計功能。因此不同項目通常是各自編碼實現(xiàn)整個過程,包括注冊周期定 時器,創(chuàng)建數(shù)據(jù)庫表保存統(tǒng)計結果,每個周期定時器觸發(fā)后執(zhí)行周期數(shù)據(jù)統(tǒng)計并保存結果 到庫表,最后依賴統(tǒng)計數(shù)據(jù)借助第Ξ方報表工具讀取結果數(shù)據(jù)庫生成最終報表。
[0004] 更高級的實現(xiàn)可W通過寫數(shù)據(jù)庫存儲過程來實現(xiàn)業(yè)務數(shù)據(jù)的統(tǒng)計,但統(tǒng)計過程的 周期調(diào)度還是需要程序來完成,最后統(tǒng)計結果再利用第Ξ方或數(shù)據(jù)庫自帶報表工具生成報 表。 陽〇化]目前每個項目自己編碼實現(xiàn)其實是比較常見的方式,但運種方式過于原始,開 發(fā)維護工作量大;數(shù)據(jù)庫存儲過程方式也有編寫規(guī)則復雜,難W維護,不能跨數(shù)據(jù)庫統(tǒng)計 等問題,且還需要自行實現(xiàn)周期調(diào)度。且W后如果升級到其它廠商數(shù)據(jù)庫,就有需要重 寫腳本的風險。最后在處理時下一些新的非關系型數(shù)據(jù)庫甚至大數(shù)據(jù)查詢接口返回的 JS0N(JavaScriptObjectNotation)數(shù)據(jù)時,更是無能為力。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是提供一種周期性報表系統(tǒng),從周期統(tǒng)計到報表生成過程實現(xiàn)自動 化,避免對每個項目都需要單獨編碼等現(xiàn)有技術問題。
[0007] 為了實現(xiàn)上述目的,本發(fā)明技術方案如下:
[0008] 一種周期性報表系統(tǒng),所述報表系統(tǒng)包括任務管理模塊、統(tǒng)計模塊和報表模塊,其 中:
[0009] 所述任務管理模塊,用于統(tǒng)計任務和報表任務的創(chuàng)建、修改和查詢,在每個統(tǒng)計任 務的統(tǒng)計周期到達后,調(diào)度統(tǒng)計模塊執(zhí)行該統(tǒng)計任務,在每個報表任務的報表時間到達后, 調(diào)度報表模塊執(zhí)行該報表任務;
[0010] 所述統(tǒng)計模塊,用于讀取統(tǒng)計任務對應的數(shù)據(jù)集模板,從數(shù)據(jù)集模板指定的數(shù)據(jù) 源中讀取當前統(tǒng)計周期內(nèi)數(shù)據(jù),按照數(shù)據(jù)集模板執(zhí)行統(tǒng)計后,將統(tǒng)計結果數(shù)據(jù)和本次任務 的執(zhí)行結果保存;
[0011] 所述報表模塊,用于讀取報表任務對應的報表配置模板,按照報表配置模板從統(tǒng) 計結果數(shù)據(jù)中獲取數(shù)據(jù),生成周期性報表。
[0012] 進一步地,所述統(tǒng)計任務包括統(tǒng)計任務編碼、統(tǒng)計任務所在組、統(tǒng)計任務參數(shù)、統(tǒng) 計任務采用的數(shù)據(jù)集模板名稱;所述數(shù)據(jù)集模板包括統(tǒng)計任務獲取統(tǒng)計數(shù)據(jù)時的數(shù)據(jù)源、 字段列表、統(tǒng)計參數(shù)列表、分組和排序規(guī)則。
[0013] 進一步地,所述統(tǒng)計任務參數(shù)包括統(tǒng)計任務的周期類型、老化數(shù)據(jù)保存天數(shù)、統(tǒng)計 任務依賴的上級任務或上級任務組、統(tǒng)計任務對應的數(shù)據(jù)庫。
[0014] 進一步地,所述統(tǒng)計模塊在執(zhí)行統(tǒng)計任務時,在依賴的統(tǒng)計任務或者任務組內(nèi)所 有統(tǒng)計任務統(tǒng)計成功后,才能執(zhí)行當前統(tǒng)計任務的統(tǒng)計。
[0015] 所述統(tǒng)計任務對應的數(shù)據(jù)庫包括目的數(shù)據(jù)庫和任務歷史執(zhí)行記錄表,所述統(tǒng)計模 塊在執(zhí)行統(tǒng)計任務時,將統(tǒng)計結果數(shù)據(jù)保存在目的數(shù)據(jù)庫,將本次任務的執(zhí)行結果保存在 任務歷史執(zhí)行記錄表中。
[0016] 所述統(tǒng)計模塊在執(zhí)行統(tǒng)計任務時,將統(tǒng)計任務參數(shù)傳給所述數(shù)據(jù)集模板。
[0017] 本發(fā)明所述報表任務包括報表任務編碼、報表任務參數(shù)、報表任務采用的報表配 置模板、報表樣式文件;所述報表樣式文件包括報表樣式、報表元素和布局;所述報表任務 參數(shù)包括報表時間、統(tǒng)計對象和統(tǒng)計周期類型。
[0018] 進一步地,所述報表配置模板包括輸入?yún)?shù)、報表樣式文件的名稱和路徑、報表元 素對應的報表數(shù)據(jù)集,所述輸入?yún)?shù)包括報表時間、統(tǒng)計對象和統(tǒng)計周期類型。
[0019] 進一步地,所述報表模塊在執(zhí)行報表任務時,將報表任務參數(shù)傳給所述報表配置 模板。
[0020] 所述報表模塊根據(jù)報表配置模板為報表元素獲取報表數(shù)據(jù)集,然后按照報表樣式 文件生成報表。
[0021] 本發(fā)明提出了一種周期性報表系統(tǒng),通過創(chuàng)建統(tǒng)計任務和報表任務,實現(xiàn)數(shù)據(jù)周 期統(tǒng)計到報表生成過程自動化。實現(xiàn)一個周期性報表,只需要配置好統(tǒng)計任務和報表任務 并提供相關的數(shù)據(jù)集模板和報表配置模板即可,不需要為每一個周期性報表分別編寫處理 代碼,方便快速部署和維護。
[0022] 同時本發(fā)明的周期性報表系統(tǒng)對第Ξ方數(shù)據(jù)源和報表的依賴性小,擴展和配置簡 單,可定制,無需額外編寫代碼。比如在交通監(jiān)控軟件中,可實現(xiàn)實時統(tǒng)計不同路段一天中 每個小時不同車型違章數(shù)量的分布情況,實現(xiàn)定時生成報表或?qū)崟r生成報表的功能。
[0023]本發(fā)明使用數(shù)據(jù)集模板描述的周期報表數(shù)據(jù)統(tǒng)計規(guī)則,使得復雜的業(yè)務統(tǒng)計過程 通過簡單的描述來自動構建后臺數(shù)據(jù)統(tǒng)計引擎。并且報表任務可配置,非專業(yè)人員即可上 手修改,定制開發(fā)報表。本發(fā)明還可使用任務歷史執(zhí)行記錄表來查看統(tǒng)計結果,方便故障定 位,同時保障了統(tǒng)計過程的魯棒性,防止同一周期數(shù)據(jù)被重復統(tǒng)計,或者在所依賴的任務未 執(zhí)行成功時就開始統(tǒng)計。
【附圖說明】
[0024]圖1為本發(fā)明一種周期性報表系統(tǒng)的系統(tǒng)框圖。
【具體實施方式】
[00巧]下面結合附圖和實施例對本發(fā)明技術方案做進一步詳細說明,W下實施例不構成 對本發(fā)明的限定。
[00%] 本發(fā)明的總體思路是通過數(shù)據(jù)集模板來定義數(shù)據(jù)源周期統(tǒng)計規(guī)則,同時配置好報 表配置模板,通過解析數(shù)據(jù)集模板定義的統(tǒng)計規(guī)則,先按其指定的周期來對原始數(shù)據(jù)進行 周期統(tǒng)計,最后結合報表配置模板定時生成周期報表。數(shù)據(jù)統(tǒng)計的來源可W多樣性,支持從 數(shù)據(jù)庫,json,xml文檔等數(shù)據(jù)源獲取,統(tǒng)計結果數(shù)據(jù)的保存支持跨數(shù)據(jù)庫,也可W直接傳給 第Ξ方報表工具來生成最終報表。另外會保存所有任務的歷史執(zhí)行記錄,方便系統(tǒng)維護和 問題定位。
[0027] 如圖1所示,本實施例一種周期性報表系統(tǒng),包括任務管理模塊、統(tǒng)計模塊和報表 模塊,W下分別進行詳細的描述。
[0028] 任務管理模塊,用于統(tǒng)計任務和報表任務的創(chuàng)建、修改和查詢,在每個統(tǒng)計任務的 統(tǒng)計周期到達后,調(diào)度統(tǒng)計模塊執(zhí)行該統(tǒng)計任務,在每個報表任務的報表時間到達后,調(diào)度 報表模塊執(zhí)行該報表任務。
[0029]統(tǒng)計模塊,用于讀取統(tǒng)計任務對應的數(shù)據(jù)集模板,從數(shù)據(jù)集模板指定的數(shù)據(jù)源中 讀取當前統(tǒng)計周期內(nèi)數(shù)據(jù),按照數(shù)據(jù)集模板定義的統(tǒng)計規(guī)則執(zhí)行統(tǒng)計后,將統(tǒng)計結果數(shù)據(jù) 和本次任務的執(zhí)行結果保存。
[0030] 報表模塊,用于讀取報表任務對應的報表配置模板,按照報表配置模板獲取數(shù)據(jù), 生成周期性報表。
[0031] 本實施例一個統(tǒng)計任務,包括如下內(nèi)容:
[0032]統(tǒng)計任務編碼:唯一標識一個統(tǒng)計任務。
[0033]統(tǒng)計任務所在組:每個統(tǒng)計任務對應有各自的任務所在組,方便管理任務。任務所 在組為可選項,例如本實施例設置了Ξ個任務所在組,分別為:系統(tǒng)分組(system分組),交 通違章分組,交通流量分組。其中系統(tǒng)分組代表系統(tǒng)內(nèi)部任務,每次系統(tǒng)啟動后會自動進入 調(diào)度隊列執(zhí)行。
[0034]統(tǒng)計任務采用的數(shù)據(jù)集模板名稱:所采用的數(shù)據(jù)集模板名稱。
[0035]統(tǒng)計任務參數(shù):包括統(tǒng)計任務的周期類型、老化數(shù)據(jù)保存天數(shù)、統(tǒng)計任務依賴的上 級任務或上級任務組、統(tǒng)計任務對應