本發(fā)明涉及報表制作技術(shù)領(lǐng)域,尤其是關(guān)于一種報表生成系統(tǒng)及其方法。
背景技術(shù):
報表是企業(yè)和機(jī)構(gòu)運營指標(biāo)的反應(yīng),隨著信息系統(tǒng)的應(yīng)用,通過計算機(jī)自動生成報表逐漸取代了手工報表的方式,極大了提高了報表制作的效率和準(zhǔn)確度。
目前用于制作報表的工具主要分兩類,一類是以微軟公司EXCEL電子表格為代表的靜態(tài)報表制作工具,其特征是設(shè)計的報表是靜態(tài)的,不會與數(shù)據(jù)庫中的數(shù)據(jù)聯(lián)動而自動增加或減少行列數(shù)及改變其中的數(shù)據(jù);另一類則是動態(tài)報表制作工具,能夠與數(shù)據(jù)庫關(guān)聯(lián),動態(tài)地從數(shù)據(jù)庫中獲取數(shù)據(jù)并根據(jù)事先繪制好的報表模板和參數(shù)自動生成報表。由此可見,相對于靜態(tài)報表而言,動態(tài)報表可極大的減少報表制作的工作量并提高工作效率。
然而,目前動態(tài)報表制作工具多采用的是離線設(shè)計方式,這種方式通過提供離線的報表設(shè)計器,由報表模板制作人員根據(jù)業(yè)務(wù)需求在報表設(shè)計器上將報表模板繪制好,然后將報表模板發(fā)布到業(yè)務(wù)系統(tǒng)中供用戶使用,這種方式存在諸多弊端,每當(dāng)用戶需要新的報表或?qū)υ鹊膱蟊砟0暹M(jìn)行修改時,都要由報表模板制作人員在報表設(shè)計器上進(jìn)行報表模板制作或修改,制作完成后將報表模板嵌入到業(yè)務(wù)系統(tǒng)界面中,并進(jìn)行調(diào)試、測試,然后待業(yè)務(wù)系統(tǒng)重新發(fā)布后,用戶才能使用新的報表模板。也就是說,如果有新的報表模板需求或?qū)σ延械膱蟊砟0暹M(jìn)行修改,將需要經(jīng)歷:用戶提出需求→報表模板制作人員制作報表模板→調(diào)試、測試→重新發(fā)布→使用這樣一個漫長的過程,由此可見,會極大的降低業(yè)務(wù)系統(tǒng)對用戶需求的響應(yīng)能力。
技術(shù)實現(xiàn)要素:
為了解決背景技術(shù)中所提及的問題,本發(fā)明通過提供一種報表生成系統(tǒng)及其方法,提供在線的動態(tài)報表制作工具,使得報表模板制作人員可以直接通過瀏覽器打開報表模板制作工具對報表模板文件進(jìn)行制作或修改,并將報表模板文件保存在業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫服務(wù)器中,用戶可通過瀏覽器直接從業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫服務(wù)器中讀取新的報表模板文件來生成新的報表文件,從而實現(xiàn)報表模板文件的及時更新并可快速投入使用,而無需等待業(yè)務(wù)系統(tǒng)的重新發(fā)布,提高了業(yè)務(wù)對用戶需求的響應(yīng)能力。
本發(fā)明提供一種報表生成系統(tǒng),包含一報表模板設(shè)計模塊,一報表模板維護(hù)模塊、一報表生成模塊及一數(shù)據(jù)庫服務(wù)器,其中所述報表模板設(shè)計模塊連接于所述報表模板維護(hù)模塊及所述數(shù)據(jù)庫服務(wù)器,用于制作并生成報表模板文件,并輸出所述報表模板文件信息至所述報表模板維護(hù)模塊以及保存所述報表模板文件至所述數(shù)據(jù)庫服務(wù)器;所述報表生成模塊與所述報表模板維護(hù)模塊及所述數(shù)據(jù)庫服務(wù)器相連,根據(jù)所述報表模板維護(hù)模塊提供的所述報表模板文件信息選擇所述報表模板文件,并從所述數(shù)據(jù)庫讀取所述報表模板文件用于生成報表文件;其中所述報表模板設(shè)計模塊、所述報表模板維護(hù)模塊及所述報表生成模塊都運行在瀏覽器上。
在一變化實施例中,所述報表模板設(shè)計模塊包含一報表模板設(shè)計界面及一報表模板展示界面,分別用于所述報表模板文件的制作及展示。
在一變化實施例中,其中所述報表模板設(shè)計界面包含一數(shù)據(jù)標(biāo)簽區(qū),通過對所述數(shù)據(jù)數(shù)據(jù)標(biāo)簽區(qū)中的數(shù)據(jù)組件進(jìn)行選擇以完成所述報表模板文件的數(shù)據(jù)源和數(shù)據(jù)集的設(shè)定。
在一變化實施例中,所述報表生成模塊包含一報表生成界面及一報表展示界面,分別用于所述報表文件的生成及展示。
在一變化實施例中,所述報表生成模塊更包含一解析單元、一計算單元及一渲染單元,所述解析單元用于對所述報表模板文件中的各個報表元素進(jìn)行解析,解析出其中包含的報表組件及每個報表組件的屬 性,并根據(jù)所述報表模板文件中的數(shù)據(jù)源及數(shù)據(jù)集信息獲取相應(yīng)的數(shù)據(jù);所述計算單元用于獲取所述報表組件的表達(dá)式及腳本,進(jìn)行逐一計算,完成各個所述報表元素的樹形值計算,并將計算結(jié)果返回給各個所述報表組件;所述渲染單元可根據(jù)所述計算模塊的計算結(jié)果對各個所述報表組件的屬性進(jìn)行設(shè)置,完成各個所述報表元素的組裝和布局;所述報表展示界面用于對所述渲染單元得到的報表進(jìn)行展示。
在一變化實施例中,其中所述解析單元所獲取的數(shù)據(jù)是從一中間表中得到的。
在一變化實施例中,所述報表模板維護(hù)模塊包含一報表模板維護(hù)界面,用于顯示所述報表模板文件信息,并提供相應(yīng)的操作選項。
此外,本發(fā)明還提供一種報表生成方法,包含步驟:S1、生成報表模板文件,輸出所述報表模板文件信息;S2、保存所述報表模板文件;S3、根據(jù)所述報表模板文件信息選擇所需報表模板,并讀取相應(yīng)的所述報表模板文件;S4、對所述步驟S3中所讀取得到的所述報表模板文件進(jìn)行解析、計算和渲染并生成報表文件;S5、保存所述報表文件。
在一變化實施例中,在所步驟S1中,所述報表模板文件中的數(shù)據(jù)源和數(shù)據(jù)集是通過選擇數(shù)據(jù)標(biāo)簽的方式進(jìn)行設(shè)定。
由此可見,本發(fā)明所提供的報表生成系統(tǒng)及其方法中,報表模板設(shè)計模塊、報表生成模塊及報表維護(hù)模塊均可通過瀏覽器直接打開運行,報表模板制作人員和用戶可直接通過瀏覽器在相應(yīng)的模塊上進(jìn)行操作,提供了在線的動態(tài)報表模板制作,以簡化了在業(yè)務(wù)系統(tǒng)中新增或修改報表模板的過程,報表制作人員可及時修改和新增報表模板文件,用戶可及時讀取新的報表模板文件,提高了業(yè)務(wù)系統(tǒng)對需求的響應(yīng)能力。除此之外,報表模板制作人員可通過簡單的選擇數(shù)據(jù)標(biāo)簽的動作來設(shè)定報表模板文件中的數(shù)據(jù)源和數(shù)據(jù)集,而無需報表模板的制作人員輸入專業(yè)性強且難道高的數(shù)據(jù)庫查詢語句,減輕了報表模板制作人員的工作難度。
附圖說明
圖1繪示本發(fā)明一較佳實施所提供的報表生成系統(tǒng);
圖2繪示圖1所示實施例中的報表生成系統(tǒng)各界面的關(guān)系圖
圖3繪示本發(fā)明一實施例所提供的報表生成方法流程圖。
具體實施方式
為使本發(fā)明的技術(shù)方案及其優(yōu)點更加明確和詳細(xì),以下將參照圖示進(jìn)行說明。
請參照圖1,圖1繪示本發(fā)明一較佳實施所提供的報表生成系統(tǒng)。如圖1所示,本實施例中,報表生成系統(tǒng)100包含報表模板維護(hù)模塊10、報表模板設(shè)計模塊20、報表生成模塊30及數(shù)據(jù)庫服務(wù)器40,報表模板設(shè)計模塊20連接于報表模板維護(hù)模塊10及所述數(shù)據(jù)庫服務(wù)器40,報表生成模塊30與報表模板維護(hù)模塊10及數(shù)據(jù)庫服務(wù)器40相連。本實施例中的報表模板維護(hù)模塊10、報表模板設(shè)計模塊20及報表生成模塊30采用FLEX技術(shù)實現(xiàn),故只需計算機(jī)上的瀏覽器有安裝Adobe公司的Flash Player即可打開,由于目前基本上PC機(jī)都已安裝,能支持flash播放,換言之,報表模板維護(hù)模塊10、報表模板設(shè)計模塊20及報表生成模塊30都運行在瀏覽器上,為用戶提供在線的動態(tài)報表制作功能。以下將對各模塊及其之間的連接關(guān)系進(jìn)行詳細(xì)說明。
報表模板維護(hù)模塊10包含報表模板維護(hù)界面10a,用于顯示報表模板文件信息,并提供相應(yīng)的操作選項。具體而言,報表模板維護(hù)界面10a中包含一報表模板文件信息列表顯示區(qū)及新增、刪除、修改及生成等操作選項,其中,報表模板制作人員可通過選擇新增來進(jìn)行報表模板文件的制作,當(dāng)報表模板維護(hù)界面10a中的新增選項被選擇時,系統(tǒng)將轉(zhuǎn)入報表模板設(shè)計模塊20,供報表模板制作人員進(jìn)行報表模板的制作,其中報表模板的制作過程將會在下文中進(jìn)行說明,在此不再贅述,當(dāng)報表模板文件制作完成后,系統(tǒng)將返回報表模板維護(hù)界面10a并刷新報表模板文件信息列表,使得當(dāng)前列表中所顯示的報表模板文件信息為最新的狀態(tài);報表模板制作人員可通過選擇修改來進(jìn)行相應(yīng)的報表模板文件的修改,當(dāng)報表模板維護(hù)界面10a 中的修改選項被選擇時,系統(tǒng)將轉(zhuǎn)入報表模板設(shè)計模塊20,并同時根據(jù)相應(yīng)的報表模板文件信息從數(shù)據(jù)庫服務(wù)器中讀取加載相應(yīng)的報表模板文件,供報表模板制作人員進(jìn)行修改,修改完成后,同樣地,系統(tǒng)將返回報表模板維護(hù)界面10a并刷新報表模板文件信息列表,顯示最新的報表模板文件信息列表;刪除選項用于對相應(yīng)的報表模板文件進(jìn)行刪除,當(dāng)報表模板維護(hù)界面10a中的刪除選項被選擇時,系統(tǒng)將在數(shù)據(jù)庫服務(wù)器上將對應(yīng)的報表模板文件進(jìn)行刪除,并刷新報表模板文件信息列表;用戶可通過選擇生成來進(jìn)行報表生成操作,當(dāng)報表模板維護(hù)界面10a中的生成選項被選擇時,系統(tǒng)將轉(zhuǎn)入報表生成模塊30,供用戶進(jìn)行報表文件的生成,其中報表模板的制作過程將會在下文中進(jìn)行說明,在此不再贅述。由此可見,報表生成系統(tǒng)100中的報表模板設(shè)計模塊20及報表生成模塊30都是經(jīng)由報表模板維護(hù)模塊10轉(zhuǎn)入的,即無論是報表模板制作人員,還是用戶都是需要通過報表模板維護(hù)模塊10進(jìn)行相應(yīng)的操作選擇,進(jìn)入到相應(yīng)的工作模塊,這樣一來,不僅可為系統(tǒng)用戶及時的提供最新的報表模板文件信息,并且簡單明確的操作選項也降低了報表生成系統(tǒng)的操作復(fù)雜性,通過報表模板維護(hù)模塊10來引導(dǎo)系統(tǒng)用戶進(jìn)入報表模板文件和報表文件的制作與生成,并在相應(yīng)的操作完成之后,自動返回報表模板維護(hù)模塊10并刷新報表模板文件信息,使得整個報表生成系統(tǒng)結(jié)構(gòu)清晰,關(guān)系明朗,可操作性高。
報表模板設(shè)計模塊20用于制作并生成報表模板文件,并輸出報表模板文件信息至報表模板維護(hù)模塊以及保存報表模板文件至數(shù)據(jù)庫服務(wù)器。具體而言,報表模板設(shè)計模塊20包含報表模板設(shè)計界面20a及報表模板展示界面20b,其中,報表模板設(shè)計界面20a用于報表模板文件的制作,報表模板設(shè)計界面20a中包含有菜單區(qū)、數(shù)據(jù)標(biāo)簽區(qū)和設(shè)計區(qū),菜單區(qū)和數(shù)據(jù)標(biāo)簽區(qū)中分別包含了不同的報表組件,其中菜單區(qū)中主要包含了報表布局組件,例如“標(biāo)題”、“數(shù)據(jù)首”、“數(shù)據(jù)區(qū)”、“數(shù)據(jù)尾”、“圖表”等,以及“報表屬性”、“行屬性”等屬性設(shè)置項;數(shù)據(jù)標(biāo)簽區(qū)中包含了“數(shù)據(jù)源”、“維度”、“公式”等數(shù)據(jù)組件,設(shè)計區(qū)以excel的格式顯示,是報表模板制作區(qū),報表模板制作人員可通過拖拽方式選擇所需的報表組件至設(shè)計區(qū)中,并進(jìn)行相應(yīng)的屬性設(shè)置,值得注意的是,本發(fā)明的實施例中,“數(shù)據(jù)源”、“維度”、“公式”等數(shù)據(jù)組件分別采用樹形結(jié)構(gòu)顯示在數(shù)據(jù)標(biāo)簽區(qū)中,報表制作人員可通過簡單的拖拽動作對所需的數(shù)據(jù)組件進(jìn)行選擇,由此可見,本發(fā)明所提供的報表生成系統(tǒng)操作非常簡單。具體而言,制作報表模板主要包含以下操作步驟:
設(shè)置報表屬性,例如年報或月報等全局屬性;
通過拖拽方式選擇所需的布局組件并編輯組件名稱,如“標(biāo)題”、“數(shù)據(jù)首”、“數(shù)據(jù)區(qū)”、“數(shù)據(jù)尾”、“圖表”等;
對相應(yīng)的組件進(jìn)行屬性設(shè)置,例如行屬性、單元格屬性、字體等;
選擇數(shù)據(jù)組件,對數(shù)據(jù)源和數(shù)據(jù)集進(jìn)行設(shè)置,以及選擇相應(yīng)的維度和公式;其中數(shù)據(jù)源和數(shù)據(jù)集的設(shè)置是通過在數(shù)據(jù)組件中的數(shù)據(jù)源樹上拖拽選擇相應(yīng)的字段,維度和公式的選擇也是通過在維度樹和公式樹上拖拽選擇所需的維度和公式。
通過以上步驟可完成報表模板文件的制作。由此可見,通過本發(fā)明所提供的報表生成系統(tǒng)制作報表模板時,只需通過簡單的拖拽選擇方式和相應(yīng)的文字編輯即可完成,而無需輸入專業(yè)性高的數(shù)據(jù)庫查詢語句,降低了報表模板的制作難度,且設(shè)計區(qū)是采用excel的方式顯示,報表模板制作人員可快速直觀的把握報表模板的布局情況,提高了報表模板制作的便捷性。
報表模板文件完成制作后,可通過報表模板展示界面20b進(jìn)行展示,并可對其保存、打印、輸出等操作。報表模板文件的保存是指報表生成系統(tǒng)將報表模板文件以xml的格式保存在數(shù)據(jù)庫服務(wù)器中;報表模板文件的輸出是指將報表模板文件以其他形式,例如excel、word、PDF等格式,進(jìn)行另存為輸出。
報表生成模塊30可根據(jù)報表模板維護(hù)模塊10提供的報表模板文件信息選擇所需報表模板文件,并從數(shù)據(jù)庫服務(wù)器中讀取報表模板文件用于生成報表文件。具體而言,報表生成模塊30包含報表生成界面30a、報表展示界面30b、解析單元30c、計算單元30d及渲染單元30e。報表生成的流程大致如下:
當(dāng)用戶通過報表模板維護(hù)界面10a進(jìn)入報表生成模塊30時,首先進(jìn)入報表生成界面30a,在報表生成界面30a上輸入相應(yīng)的報表生成信息后,進(jìn)入解析單元30c;
解析單元30c對報表模板文件進(jìn)行解析,包含對報表模板文件中的各個報表元素進(jìn)行解析,解析出其中包含的報表組件及每個報表組件的屬性,并根據(jù)報表模板文件中的數(shù)據(jù)源及數(shù)據(jù)集信息從數(shù)據(jù)庫服務(wù)器 中獲取相應(yīng)的數(shù)據(jù),值得注意的是,本發(fā)明的不同實施例中,解析單元30c可直接從數(shù)據(jù)庫服務(wù)器中的業(yè)務(wù)數(shù)據(jù)表、維度表和公式表中獲取相應(yīng)的數(shù)據(jù),也可以從中間表中獲取相應(yīng)的數(shù)據(jù),中間表是業(yè)務(wù)開發(fā)人員根據(jù)業(yè)務(wù)需求提前構(gòu)建的數(shù)據(jù)表,其里面包含報表所需的業(yè)務(wù)數(shù)據(jù)及維度、公式等數(shù)據(jù),并定期對中間表進(jìn)行維護(hù)更新,從而滿足報表的需求,換言之,中間表的數(shù)據(jù)是從數(shù)據(jù)庫服務(wù)器上獲得,并按照業(yè)務(wù)需求進(jìn)行了計算處理的結(jié)果數(shù)據(jù)。通過中間表的使用,可業(yè)務(wù)系統(tǒng)中數(shù)據(jù)量龐大且關(guān)系復(fù)雜時,解析單元30c可快速獲取相應(yīng)的數(shù)據(jù),提高系統(tǒng)相應(yīng)速度。
解析完成后,計算單元30d獲取解析出的報表組件的表達(dá)式及腳本,進(jìn)行逐一計算,完成各個報表元素的樹形值計算,并將計算結(jié)果返回給各個報表組件。
計算完成后,渲染單元30e可根據(jù)計算模塊30d的計算結(jié)果對各個報表組件的屬性進(jìn)行設(shè)置,完成各個報表元素的組裝和布局。
當(dāng)完成上述報表生成模塊30解析、計算和渲染操作之后,報表展示界面30b將對報表進(jìn)行展示,用戶可對報表文件進(jìn)行保存、打印和輸出以及數(shù)據(jù)回填。其中報表文件的保存,是指將報表文件以xml文件的形式保存至數(shù)據(jù)庫服務(wù)器,供業(yè)務(wù)系統(tǒng)用戶的查看和使用;報表文件輸出是指將報表文件以其他形式,例如excel、word、PDF等格式,進(jìn)行另存為輸出;數(shù)據(jù)回填是指,當(dāng)用戶在預(yù)覽報表文件時發(fā)現(xiàn)需對相應(yīng)數(shù)據(jù)進(jìn)行調(diào)整,則可通過直接在相應(yīng)單元格中直接進(jìn)行修改即可,修改完成后可經(jīng)由上級審核,審核通過后,即可完成對報表文件的修改。通過上述流程可完成報表文件的生成。
在報表生成模塊30中,報表生成界面30a和報表展示界面30b運行在前端,解析單元30c、計算單元30d和渲染單元30e運行在后端。在本實施例所提供的報表生成系統(tǒng)100中,各前端界面的關(guān)系可參照圖2,圖2繪示圖1所示實施例中的報表生成系統(tǒng)各界面的關(guān)系圖。
如圖2所示,本實施例中,報表生成系統(tǒng)100包含報表模板維護(hù)界面10a、報表模板設(shè)計界面20a、報表模板展示界面20b、報表生成界面30a及報表展示界面30b。其中可通過報表模板維護(hù)界面10a進(jìn)入報表模板設(shè)計界面20a及報表生成界面30a;報表模板設(shè)計界面20a可進(jìn)入報表模板展示界面20b,報表模板展示界面20b可返回至報表模板維護(hù)界面10a;報表生成界面30a可進(jìn)入報表展示界面30b。
綜上所述,本發(fā)明提供的報表生成系統(tǒng)可直接通過瀏覽器打開在線使用,并且可通過報表模板維護(hù)模塊及時新增或修改所需報表模板文件,并可在完成報表模板文件的新增和修改時,直接使用,而無需等待業(yè)務(wù)系統(tǒng)重新發(fā)布,提高了業(yè)務(wù)系統(tǒng)對需求的響應(yīng)能力。此外,數(shù)據(jù)源、數(shù)據(jù)集、維度和公式均可通過簡單的拖拽選擇的方式進(jìn)行設(shè)定,而無需報表模板制作人員手工輸入復(fù)雜的數(shù)據(jù)庫查詢語句,降低了報表模板制作的難度,更進(jìn)一步的,通過中間表的設(shè)置,可在面對業(yè)務(wù)系統(tǒng)數(shù)據(jù)量越來越龐大,數(shù)據(jù)關(guān)系越來越復(fù)雜的情況下,極大可能的提高了報表生成的速度,優(yōu)化系統(tǒng)性能。
此外,基于上述報表生成系統(tǒng),本發(fā)明還提供一種報表生成方法。請參照圖3,圖3繪示本發(fā)明一實施例所提供的報表生成方法流程圖。
如圖1及圖3所示,報表生成方法包含步驟:
S1、生成報表模板文件,輸出所述報表模板文件信息。在報表模板模塊10的報表模板設(shè)計界面10a上進(jìn)行報表模板文件的制作,其中,數(shù)據(jù)源和數(shù)據(jù)集是通過選擇數(shù)據(jù)標(biāo)簽的方式進(jìn)行設(shè)定。
S2、保存所述報表模板文件。通過報表展示界面10b將報表模板文件保存至數(shù)據(jù)庫服務(wù)器,并將報表模板文件信息輸出給報表模板維護(hù)模塊20。
S3、根據(jù)所述報表模板文件信息選擇所需報表模板,并讀取相應(yīng)的所述報表模板文件。報表模板維護(hù)模塊20的報表模板維護(hù)界面20a顯示報表模板文件列表,選擇所需的報表模板文件,進(jìn)入報表生成模塊30,報表生成模塊30根據(jù)報表模板文件信息從數(shù)據(jù)庫服務(wù)器讀取報表模板文件,并輸入相應(yīng)的報表生成信息。
S4、對所述步驟S3中所讀取得到的所述報表模板文件進(jìn)行解析、計算和渲染并生成報表文件。報表生成模塊30中的解析單元30c、計算單元30d及渲染單元30e對所讀取的報表模板文件進(jìn)行解析、計算和渲染,并展示在報表展示界面30b上。
S5、保存所述報表文件。通過展示界面30b對報表文件進(jìn)行保存,報表文件將保存在數(shù)據(jù)庫服務(wù)器中。
其中,上述步驟均可在瀏覽器上完成。
由此可見,本發(fā)明所提供的報表生成方法,均可在線完成,從而使得報表模板文件可根據(jù)業(yè)務(wù)需求進(jìn)行及時的更新和快速投入使用;報表模板制作及報表生成的操作簡單,用戶只需通過簡單的拖拽選擇所需全部組件,無需輸入復(fù)雜的數(shù)據(jù)庫查詢語句就可對數(shù)據(jù)源和數(shù)據(jù)集記性設(shè)定。
可以理解的是,以上對本發(fā)明實施例的基本原理和主要特征進(jìn)行的描述并不對本發(fā)明的保護(hù)范圍構(gòu)成限制,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明精神和范圍前提下對技術(shù)內(nèi)容進(jìn)行的變化及改進(jìn),應(yīng)均屬于本發(fā)明所包含的范圍。