一種基于元數(shù)據(jù)的報表展示引擎的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種基于元數(shù)據(jù)的報表展示引擎。
【背景技術(shù)】
[0002] 現(xiàn)存的報表引擎開發(fā)、配置麻煩,學(xué)習(xí)難度大,無法快速開發(fā)基于在線聯(lián)機(jī)業(yè)務(wù)系 統(tǒng)(0LTP)的報表。部分的報表數(shù)據(jù)源SQL請求極為復(fù)雜,而且這些SQL是動態(tài)生成的,又 難于優(yōu)化。當(dāng)前的報表管理系統(tǒng)查詢性能較低,無法根據(jù)客戶需求靈活制作報表,如客戶提 出統(tǒng)計新的字段,目前需要寫代碼來實現(xiàn),而且不支持圖形報表。
【發(fā)明內(nèi)容】
[0003] 為了克服上述技術(shù)問題,本發(fā)明的目的在于提供一種基于元數(shù)據(jù)的報表展示引 擎。
[0004] 本發(fā)明采用的技術(shù)方案是: 一種基于元數(shù)據(jù)的報表展示引擎,通過定義元數(shù)據(jù)來解析運(yùn)行時的數(shù)據(jù)讀取邏輯、約 束以及界面布局,所述元數(shù)據(jù)包含報表頭和報表字段;該報表展示引擎包括: 報表展示模塊,提供報表界面以及供用戶通過報表界面選擇查詢條件后請求查詢、下 載報表數(shù)據(jù); 數(shù)據(jù)源,用于提供報表數(shù)據(jù); 報表引擎,用于:(1)接收報表界面提交的請求,解析報表元數(shù)據(jù),生成最終的數(shù)據(jù)庫 SQL腳本;(2)從數(shù)據(jù)庫的數(shù)據(jù)源中請求相應(yīng)的數(shù)據(jù);(3)接收數(shù)據(jù)庫返回命中條件的原始 數(shù)據(jù);(4)二次處理原始數(shù)據(jù),過濾危險的數(shù)據(jù),并轉(zhuǎn)換為最終用戶可見的數(shù)據(jù)格式。
[0005] 其中,所述報表頭配置至少包含以下信息:數(shù)據(jù)來源、報表標(biāo)題、導(dǎo)出文件類型,用 來確定報表從具體那個數(shù)據(jù)庫表/視圖獲取數(shù)據(jù),界面顯示的報表標(biāo)題以及導(dǎo)出的文件類 型。
[0006] 所述報表字段至少配置包含字段的顯示外觀、行為定義。
[0007] 特別的,所述報表展示模塊由同一個WebForm控件實現(xiàn),其報表的業(yè)務(wù)體現(xiàn)在數(shù) 據(jù)源配置的查詢SQL中。
[0008] 進(jìn)一步,所述報表展示模塊用于跟用戶直接交互,包括響應(yīng)選擇查詢條件和搜索 按鈕;當(dāng)點擊搜索按鈕時,將頁面的查詢條件及當(dāng)前查詢的報表編號傳遞給報表引擎處理, 等待返回結(jié)果。
[0009] 本發(fā)明的有益效果是: 1 能滿足用戶各種多變的需求,報表頭配置、報表字段配置以"簡單"為設(shè)計原則。
[0010] 1 展示與業(yè)務(wù)分離,所有的報表展示均由同一個WebForm控件實現(xiàn),其報表的 業(yè)務(wù)體現(xiàn)在數(shù)據(jù)庫的配置的查詢SQL中,報表的業(yè)務(wù)通過統(tǒng)一格式的數(shù)據(jù)源展示出來。
[0011] 1 易于擴(kuò)展,通過配置來增加報表而無需重新修改軟件。
[0012] 1 易于維護(hù),一份報表對應(yīng)一份報表元數(shù)據(jù),數(shù)據(jù)庫的配置信息獨立于程序,可 以單獨維護(hù)配置信息,而每一份配置信息都可生成一份報表。
[0013] 1 優(yōu)化海量數(shù)據(jù)查詢效率,縮短輸出時間,為保證查詢效率,使用分表來替代復(fù) 雜的存儲過程或直接SQL,每個中間表數(shù)據(jù)都應(yīng)保留。對于歷史資料的統(tǒng)計,應(yīng)定期存檔當(dāng) 次查詢的報表,避免長時間查詢,提高用戶體驗。
[0014] 1 保證軟件性能,使用配置加載查詢條件、構(gòu)造查詢條件等不應(yīng)消耗過多的網(wǎng) 絡(luò)、服務(wù)器資源,配置信息應(yīng)緩存。
[0015] 1 保障數(shù)據(jù)安全,所有查詢均應(yīng)使用參數(shù),文字應(yīng)先經(jīng)過濾去除非法指令。
【附圖說明】
[0016] 下面結(jié)合附圖對本發(fā)明的【具體實施方式】做進(jìn)一步的說明。
[0017] 圖1是本發(fā)明報表展示引擎的原理圖; 圖2是本發(fā)明元數(shù)據(jù)的模型圖; 圖3是報表展示模塊兩種形式的報表; 圖4是報表引擎的處理請求流程圖; 圖5是本發(fā)明應(yīng)用實例報表查詢展示的界面圖; 圖6是本發(fā)明應(yīng)用實例下載報表的界面圖。
【具體實施方式】
[0018] 參考圖1所示,為本發(fā)明的一種基于元數(shù)據(jù)的報表展示引擎,通過定義元數(shù)據(jù)來 解析運(yùn)行時的數(shù)據(jù)讀取邏輯、約束以及界面布局;該報表展示引擎包括: 報表展示模塊,提供報表界面以及供用戶通過報表界面選擇查詢條件后請求查詢、下 載報表數(shù)據(jù); 數(shù)據(jù)源,用于提供報表數(shù)據(jù); 報表引擎,用于:(1)接收報表界面提交的請求,解析報表元數(shù)據(jù),生成最終的數(shù)據(jù)庫 SQL腳本;(2)從數(shù)據(jù)庫的數(shù)據(jù)源中請求相應(yīng)的數(shù)據(jù);(3)接收數(shù)據(jù)庫返回命中條件的原始 數(shù)據(jù);(4)二次處理原始數(shù)據(jù),過濾危險的數(shù)據(jù),并轉(zhuǎn)換為最終用戶可見的數(shù)據(jù)格式。
[0019] 如圖2,所述元數(shù)據(jù)包含報表頭和報表字段,報表頭配置主要包含以下信息:數(shù)據(jù) 來源、報表標(biāo)題、導(dǎo)出文件類型。用來確定報表從那個數(shù)據(jù)庫表/視圖獲取數(shù)據(jù),界面顯示 的報表標(biāo)題以及導(dǎo)出的文件類型。
[0020] 詳細(xì)的報表頭配置信息如下:
【主權(quán)項】
1. 一種基于元數(shù)據(jù)的報表展示引擎,其特征在于;通過定義元數(shù)據(jù)來解析運(yùn)行時的數(shù) 據(jù)讀取邏輯、約束W及界面布局,所述元數(shù)據(jù)包含報表頭和報表字段;該報表展示引擎包 括: 報表展示模塊,提供報表界面W及供用戶通過報表界面選擇查詢條件后請求查詢、下 載報表數(shù)據(jù); 數(shù)據(jù)源,用于提供報表數(shù)據(jù); 報表引擎,用于;(1)接收報表界面提交的請求,解析報表元數(shù)據(jù),生成最終的數(shù)據(jù)庫 S化腳本;(2)從數(shù)據(jù)庫的數(shù)據(jù)源中請求相應(yīng)的數(shù)據(jù);(3)接收數(shù)據(jù)庫返回命中條件的原始 數(shù)據(jù);(4)二次處理原始數(shù)據(jù),過濾危險的數(shù)據(jù),并轉(zhuǎn)換為最終用戶可見的數(shù)據(jù)格式。
2. 根據(jù)權(quán)利要求1所述的一種基于元數(shù)據(jù)的報表展示引擎,其特征在于:所述報表頭 配置至少包含W下信息:數(shù)據(jù)來源、報表標(biāo)題、導(dǎo)出文件類型,用來確定報表從具體那個數(shù) 據(jù)庫表/視圖獲取數(shù)據(jù),界面顯示的報表標(biāo)題W及導(dǎo)出的文件類型。
3. 根據(jù)權(quán)利要求1所述的一種基于元數(shù)據(jù)的報表展示引擎,其特征在于:所述報表字 段至少配置包含字段的顯示外觀、行為定義。
4. 根據(jù)權(quán)利要求1所述的一種基于元數(shù)據(jù)的報表展示引擎,其特征在于:所述報表展 示模塊由同一個WebForm控件實現(xiàn),其報表的業(yè)務(wù)體現(xiàn)在數(shù)據(jù)源配置的查詢S化中。
5. 根據(jù)權(quán)利要求1所述的一種基于元數(shù)據(jù)的報表展示引擎,其特征在于:所述報表展 示模塊用于跟用戶直接交互,包括響應(yīng)選擇查詢條件和搜索按鈕;當(dāng)點擊搜索按鈕時,將頁 面的查詢條件及當(dāng)前查詢的報表編號傳遞給報表引擎處理,等待返回結(jié)果。
【專利摘要】本發(fā)明公開了一種基于元數(shù)據(jù)的報表展示引擎,通過定義元數(shù)據(jù)來解析運(yùn)行時的數(shù)據(jù)讀取邏輯、約束以及界面布局。其元數(shù)據(jù)包含報表頭和報表字段定義兩部分。報表引擎通過讀取報表頭可以確定數(shù)據(jù)來源、報表標(biāo)題、導(dǎo)出文件類型以及其他主要信息,然后結(jié)合報表字段定義,可以在運(yùn)行時查詢、過濾數(shù)據(jù)并返回結(jié)果集,最后根據(jù)報表頭和報表字段定義來決定報表展示的樣式以輸出到客戶端。該報表展示引擎定義了規(guī)范的元數(shù)據(jù)模型,具有靈活配置的特性,支持進(jìn)一步的元數(shù)據(jù)擴(kuò)展。采用該引擎能夠保證可維護(hù)性的前提下,提高報表的生產(chǎn)率,支持快速開發(fā),適合需求變更頻繁的報表系統(tǒng)。
【IPC分類】G06F17-30
【公開號】CN104573065
【申請?zhí)枴緾N201510036708
【發(fā)明人】余敬龍
【申請人】廣東能龍教育股份有限公司
【公開日】2015年4月29日
【申請日】2015年1月23日