本發(fā)明涉及報表技術(shù)領(lǐng)域,特別是涉及一種基于finereport工具的報表系統(tǒng)。
背景技術(shù):
finereport報表軟件是一款純java編寫的企業(yè)級web報表軟件工具。它能夠全面支持主流的b/s架構(gòu)以及傳統(tǒng)的c/s架構(gòu),部署方式簡單而靈活。在軟件開發(fā)過程中,可以加快開發(fā)速度,提高軟件的穩(wěn)定性;在軟件交付后,可以大大降低維護難度,提高最終用戶的滿意度。開發(fā)出的軟件可以做到隨需應(yīng)變。finereport提供了易用且高效率的報表設(shè)計方案,采用主流的數(shù)據(jù)雙向擴展、真正無編碼形式設(shè)計報表;具備強大的報表展示功能,并且提供完善的報表權(quán)限管理、報表調(diào)度管理;具有完備的報表填報功能,支持多級匯總填報。利用這一報表工具,用戶即可把企業(yè)的業(yè)務(wù)模型、數(shù)據(jù)分析變成實際可操作的信息系統(tǒng)。
目前,報表在企業(yè)信息管理中起著非常重要的作用。報表用來作為企業(yè)管理的基本措施和途徑,是企業(yè)、單位、團體、組織的基本業(yè)務(wù)需求,可以幫助企業(yè)、單位、團體、組織等訪問數(shù)據(jù),并將數(shù)據(jù)按照需要的格式,以可靠、安全的方式呈現(xiàn)出來。通過報表,可以很快捷方便的了解企業(yè)、單位、團體、組織的運營狀況,支持高層的快速決策,為企業(yè)、單位、團體、組織的發(fā)展提供指導(dǎo)。但是目前采用finereport工具件形成的報表系統(tǒng)不具有數(shù)據(jù)展示和數(shù)據(jù)錄入功能,用戶使用便利性較低。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種基于finereport工具的報表系統(tǒng),以實現(xiàn)數(shù)據(jù)展示和數(shù)據(jù)錄入功能。
為解決上述技術(shù)問題,本發(fā)明提供一種基于finereport工具的報表系統(tǒng),該系統(tǒng)包括:
報表設(shè)計器、報表服務(wù)器、數(shù)據(jù)源模塊和報表模板庫系統(tǒng);
報表設(shè)計器用于依據(jù)報表模板庫系統(tǒng),利用數(shù)據(jù)源模塊中的數(shù)據(jù)制作出頁面模板,并將頁面模板保存到報表服務(wù)器下的目錄中;
報表服務(wù)器用于當用戶通過瀏覽器訪問頁面模板時,將用戶所訪問的頁面模板解析成客戶端的html頁面并返回給瀏覽器,以供用戶查看或者錄入數(shù)據(jù)。
優(yōu)選的,所述報表服務(wù)器為在web環(huán)境下解析報表的servlet形式的服務(wù)器。
優(yōu)選的,所述報表服務(wù)器包括:報表解析模塊、緩存管理模塊和性能管理模塊。
優(yōu)選的,所述報表解析模塊用于讀取和解析報表設(shè)計器制作好的頁面模板,將頁面模板轉(zhuǎn)換為html頁面。
優(yōu)選的,所述數(shù)據(jù)源模塊包含數(shù)據(jù)源,文本數(shù)據(jù)集和程序數(shù)據(jù)集。
優(yōu)選的,所述報表模版庫系統(tǒng)用于提供報表模板。
優(yōu)選的,所述報表模板庫系統(tǒng)包括:接口連接模塊、報表轉(zhuǎn)換模塊、視覺效果模塊、模板存儲模塊、模板顯示模塊。
優(yōu)選的,所述報表模板庫系統(tǒng)還包括模板查找模塊和模板刪除模塊。
本發(fā)明所提供的一種基于finereport工具的報表系統(tǒng),包括報表設(shè)計器、報表服務(wù)器、數(shù)據(jù)源模塊和報表模板庫系統(tǒng);報表設(shè)計器用于依據(jù)報表模板庫系統(tǒng),利用數(shù)據(jù)源模塊中的數(shù)據(jù)制作出頁面模板,并將頁面模板保存到報表服務(wù)器下的目錄中;報表服務(wù)器用于當用戶通過瀏覽器訪問頁面模板時,將用戶所訪問的頁面模板解析成客戶端的html頁面并返回給瀏覽器,以供用戶查看或者錄入數(shù)據(jù)??梢?,當用戶通過瀏覽器遠程訪問某個頁面模板,報表服務(wù)器會將用戶指定的頁面模板自動解析成客戶端的html頁面給瀏覽器,以供用戶查看或者錄入數(shù)據(jù),這樣用戶就可以在瀏覽器中查看或錄入數(shù)據(jù),該報表系統(tǒng)實現(xiàn)數(shù)據(jù)展示和數(shù)據(jù)錄入功能,最大化滿足使用者最終需求,提升使用便利性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明所提供的一種基于finereport工具的報表系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為報表系統(tǒng)原理示意圖;
圖3為報表模板庫系統(tǒng)功能示意圖;
圖4為表報系統(tǒng)功能示意圖。
具體實施方式
本發(fā)明的核心是提供一種基于finereport工具的報表系統(tǒng),以實現(xiàn)數(shù)據(jù)展示和數(shù)據(jù)錄入功能。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參考圖1,圖1為本發(fā)明所提供的一種基于finereport工具的報表系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)包括:
報表設(shè)計器101、報表服務(wù)器102、數(shù)據(jù)源模塊103和報表模板庫系統(tǒng)104;
報表設(shè)計器101用于依據(jù)報表模板庫系統(tǒng),利用數(shù)據(jù)源模塊中的數(shù)據(jù)制作出頁面模板,并將頁面模板保存到報表服務(wù)器下的目錄中;
報表服務(wù)器102用于當用戶通過瀏覽器訪問頁面模板時,將用戶所訪問的頁面模板解析成客戶端的html頁面并返回給瀏覽器,以供用戶查看或者錄入數(shù)據(jù)。
可見,該系統(tǒng)中,當用戶通過瀏覽器遠程訪問某個頁面模板,報表服務(wù)器會將用戶指定的頁面模板自動解析成客戶端的html頁面給瀏覽器,以供用戶查看或者錄入數(shù)據(jù),這樣用戶就可以在瀏覽器中查看或錄入數(shù)據(jù),該報表系統(tǒng)實現(xiàn)數(shù)據(jù)展示和數(shù)據(jù)錄入功能,最大化滿足使用者最終需求,提升使用便利性。
基于上述系統(tǒng),具體的,報表服務(wù)器為在web環(huán)境下解析報表的servlet形式的服務(wù)器。
其中,報表設(shè)計器為finereport工具提供的報表設(shè)計器。報表服務(wù)器為finereport服務(wù)器。
進一步的,報表服務(wù)器包括:報表解析模塊、緩存管理模塊和性能管理模塊。
其中,報表解析模塊用于讀取和解析報表設(shè)計器制作好的頁面模板,將頁面模板轉(zhuǎn)換為html頁面。
進一步的,數(shù)據(jù)源模塊包含數(shù)據(jù)源,文本數(shù)據(jù)集和程序數(shù)據(jù)集。
其中,報表模版庫系統(tǒng)用于提供報表模板。
進一步的,報表模板庫系統(tǒng)包括:接口連接模塊、報表轉(zhuǎn)換模塊、視覺效果模塊、模板存儲模塊、模板顯示模塊。
進一步的,報表模板庫系統(tǒng)還包括模板查找模塊和模板刪除模塊。
本系統(tǒng)由設(shè)計模板的設(shè)計器、解析模板的服務(wù)器、提供模板的模板庫系統(tǒng)以及提供數(shù)據(jù)的數(shù)據(jù)源模塊四部分組成,即包括報表設(shè)計器、報表服務(wù)器、數(shù)據(jù)源模塊和報表模板庫系統(tǒng)。
本系統(tǒng)中,依據(jù)報表模板庫系統(tǒng),通過finereport工具提供的模板設(shè)計器,拖拽數(shù)據(jù)源中的數(shù)據(jù)制作出實現(xiàn)數(shù)據(jù)展示(報表)和數(shù)據(jù)錄入(表單)功能的頁面模板,然后將這些模板保存至finereport服務(wù)器指定的目錄下面。當最終用戶通過瀏覽器遠程訪問某個頁面模板,finereport服務(wù)器會將用戶指定的頁面模板自動解析成零客戶端的html頁面給瀏覽器,這樣用戶就可以在瀏覽器中查看或錄入數(shù)據(jù),最大化滿足使用者最終需求。
其中,報表設(shè)計器可以進行表樣、數(shù)據(jù)、展現(xiàn)和打印等報表設(shè)計文件中各種元素的設(shè)計,是報表設(shè)計和報表應(yīng)用開發(fā)、調(diào)試以及部署的一體化平臺。
報表服務(wù)器是指用在web環(huán)境中解析報表的servlet形式的服務(wù)器,包括報表解析模塊、緩存管理模塊和性能管理模塊三部分。報表解析模塊主要用來讀取和解析設(shè)計器制作好的模板,并將模板轉(zhuǎn)換成html頁面,方便用戶通過瀏覽器查看、修改和打印數(shù)據(jù)。緩存管理模塊具有強大的緩存機制,用來提高報表運算效率。性能管理模塊具有支持分布式集群、超大數(shù)據(jù)量運算以及大數(shù)量用戶并發(fā)處理的功能,保證了數(shù)據(jù)的正確性和安全性。
其中,數(shù)據(jù)源模塊包括數(shù)據(jù)源,文本數(shù)據(jù)集和程序數(shù)據(jù)集三部分。主要用來為報表設(shè)計器和報表服務(wù)器提供所需要的各種數(shù)據(jù)。
報表模板庫模塊可以直接提供報表模板,也可以對庫中模板生成的報表進行修改,以達到自己的要求。同時,還可以將設(shè)計好的報表保存為模板,以備將來重復(fù)使用。具體包括接口連接模塊、報表轉(zhuǎn)換模塊、視覺效果模塊、模板存儲模塊、模板顯示模塊及其它功能模塊。
其中,接口連接模塊用來連接報表模板庫與報表設(shè)計工具。報表轉(zhuǎn)換模塊是報表模板庫的核心模塊,用來對設(shè)計器中打開的報表進行轉(zhuǎn)換。視覺效果模塊產(chǎn)生的視覺效果包括界面設(shè)計中涉及的圖片切換和鼠標移動效果。模板存儲模塊用以把報表模板庫中所有數(shù)據(jù)及文件存儲在xml文件中。模板顯示模塊用來顯示模板相關(guān)信息。其它功能模塊包括查找模板和刪除模板功能。
本系統(tǒng)是一種具有數(shù)據(jù)展示(報表)和數(shù)據(jù)錄入(表單)功能的、用來輔助軟件開發(fā)的、基于finereport工具軟件的報表系統(tǒng)。本系統(tǒng)具有優(yōu)點:報表設(shè)計器界面簡單易用,高效便捷;采用拖拽式設(shè)計,極大地提高了制作模板的效率;創(chuàng)新性的運用多人遠程協(xié)助設(shè)計模板,增強了模板的鎖定、解鎖功能和權(quán)限控制,有力地保證了多人協(xié)作的高效和同步;具有強大的數(shù)據(jù)展示(報表)功能和多樣化的數(shù)據(jù)呈現(xiàn)方式;在強大數(shù)據(jù)展現(xiàn)功能基礎(chǔ)上,實現(xiàn)了表單內(nèi)容和數(shù)據(jù)表的自由關(guān)聯(lián),使報表數(shù)據(jù)雙向流動成為可能,解決了最終用戶定制表單的問題;基于瀏覽器的零客戶打印和創(chuàng)新的數(shù)據(jù)緩存容器,通過共享連接池,充分利用數(shù)據(jù)庫連接,大大提高了數(shù)據(jù)庫讀取速度。
如圖2所示,左側(cè)下面是報表設(shè)計器,采用定制個性化設(shè)計器,設(shè)計器的菜單、工具欄,包括頁面結(jié)構(gòu)等均可以根據(jù)不同類型的用戶進行個性化定制,充分滿足用戶個性化的需求。同時支持無失真導(dǎo)入excel文件,并在已有的excel文件的基礎(chǔ)上綁定數(shù)據(jù)、進行編輯等??梢怨?jié)約大量的時間,提高制作模板的效率。基于精巧的數(shù)據(jù)綁定功能,用戶只需通過簡單的鼠標拖放(拖拽式),即可制作模板。用戶無需掌握復(fù)雜的代碼編寫能力,降低了學(xué)習(xí)難度。圖2中,左側(cè)上面為數(shù)據(jù)源模塊,體現(xiàn)了finereport工具提供數(shù)據(jù)的多樣性。另外,finereport可以同時連接到多個數(shù)據(jù)源,finereport內(nèi)置的數(shù)據(jù)表關(guān)聯(lián)功能,能輕松實現(xiàn)異構(gòu)數(shù)據(jù)源的之間的表關(guān)聯(lián)。
圖2中,中間上面是報表服務(wù)器,finereport服務(wù)器創(chuàng)新的數(shù)據(jù)緩存容器,把從數(shù)據(jù)庫讀取的數(shù)據(jù)、設(shè)計的模板以及運算后的模板等將會占用很多內(nèi)存的數(shù)據(jù)放到該容器內(nèi),使得finereport服務(wù)器支持無限并發(fā)和超大數(shù)據(jù)的顯示。同時搭建多個finereport服務(wù)器的集群來一起處理客戶端的請求。再使用連接池用以提高應(yīng)用程序的性能及可伸縮性。采用多種集成使用方式進行報表的解析,計算。中間下面為報表模板庫系統(tǒng)模塊,本系統(tǒng)模板庫中的模板,并不是分類的抽象,而是來源于行業(yè)實際運用、符合用戶需求的典型報表。圖2中,右側(cè)為各種客戶端,采用多源及多級匯總填報。
如圖3所示,報表模板庫系統(tǒng)的功能包括:連接接口、報表轉(zhuǎn)換、視覺效果、模板存儲、模板顯示及其他功能。報銷表模板庫系統(tǒng)包括接口連接模塊、報表轉(zhuǎn)換模塊、視覺效果模塊、模板存儲模塊、模板顯示模塊和其它功能模塊。在報表模板庫中復(fù)用了報表設(shè)計工具的代碼,使在報表模板庫中也可以實現(xiàn)創(chuàng)建報表、打開報表的功能。在轉(zhuǎn)換模塊的具體轉(zhuǎn)換中,首先要獲取各個參數(shù),如白色像素、灰色像素、報表圖像各邊距值及計算新坐標等。圖片縮略需要使用在報表設(shè)計器中獲取的各種參數(shù)值乘以縮略系數(shù)得出新坐標,這個新坐標才是圖片縮略后圖像的坐標。最后使用新坐標畫出新的圖像。
其中,視覺效果模塊包括圖片切換和鼠標移動效果兩部分。圖片切換指頁面樹形菜單中圖片隨著子結(jié)點的展開而進行的切換。鼠標移動效果是當鼠標移向分類模板、點擊分類模板時,模板上顯現(xiàn)的不同視覺效果。存儲的模板數(shù)據(jù)包括樹形菜單數(shù)據(jù)、分類模板數(shù)據(jù)、圖片數(shù)據(jù)、預(yù)覽模板數(shù)據(jù)、縮略模板數(shù)據(jù)、最近打開的文件以及模板數(shù)據(jù)。軟件啟動首頁上呈現(xiàn)的是用戶最近打開的報表文件和模板文件,這需要對配置文件進行配置并實時更新。分類模板將模板庫中的模板分類顯示,用戶可以選擇其中任何一個模板,并可以在預(yù)覽模板中預(yù)覽其放大圖。
如圖4所示,本系統(tǒng)具有零編碼數(shù)據(jù)錄入的表單和強大的數(shù)據(jù)展示(報表)功能。采用html、pdf、excel、word、text以及flash多樣式呈現(xiàn)。無論數(shù)據(jù)庫內(nèi)原始數(shù)據(jù)是以何種樣式的表結(jié)構(gòu)存儲,最終用戶要求數(shù)據(jù)以何種表格樣式顯示,finereport獨創(chuàng)的多數(shù)據(jù)源關(guān)聯(lián)查詢、公式動態(tài)擴展計算等強大的功能,在無需改變表結(jié)構(gòu)、無需改變用戶的要求的基礎(chǔ)上,完全按照用戶的需求制作出模板。通過高效靈活的設(shè)計器,可以自由定制符合自己業(yè)務(wù)邏輯的表單,同時承擔起表單的后期維護。同時自由組合增刪改查的數(shù)據(jù)庫操作和數(shù)據(jù)校驗。并且填寫完一個單元格內(nèi)容并且符合校驗規(guī)則之后,表單會自動更新相關(guān)單元格內(nèi)容或者計算出還未填入內(nèi)容單元格的結(jié)果,減少錄入工作量。表單單元格的內(nèi)容不僅可以錄入同一個數(shù)據(jù)庫中多張物理表,還可以錄入不同數(shù)據(jù)庫中多張物理表。
其中,finereport可以連接到各種數(shù)據(jù)源,包括數(shù)據(jù)庫、文件、excel文件、文本以及企業(yè)應(yīng)用程序等。其中,通過jdbc/jndi、finereport可以連接到oracle、db2、sqlserver、mysql和sybase等所有主流的數(shù)據(jù)庫,輕松實現(xiàn)異構(gòu)數(shù)據(jù)源的之間的表關(guān)聯(lián)。
詳細的,基于本系統(tǒng),具體報表設(shè)計實施步驟如下:
1、配置數(shù)據(jù)源;
在報表設(shè)計之前,首先要添加報表所展示的數(shù)據(jù)來源,數(shù)據(jù)源并不一定是數(shù)據(jù)庫,也可以是程序數(shù)據(jù)源、文本數(shù)據(jù)源等;
2、新建報表;
在新建報表時,可以選擇使用報表設(shè)計向?qū)?,也可以新建空白的自由報表,向?qū)傻氖菢藴实姆纸M表或者交叉表,生成后的報表可以自由修改。報表主設(shè)計界面是一個類似excel的表格;
3、添加數(shù)據(jù)源;
數(shù)據(jù)源的添加可以在新建報表之前,也可以在新建報表之后,數(shù)據(jù)源列表會顯示在界面左側(cè)的數(shù)據(jù)源面板當中,用戶可以直接選中并拖拽數(shù)據(jù)列到單元格中,
4、設(shè)置數(shù)據(jù)記錄擺放的方向;
通常一個數(shù)據(jù)列會返回多條記錄,也就是一個單元格綁定了一個數(shù)據(jù)列,但這個數(shù)據(jù)列中有多行數(shù)據(jù)。所以要定義這些數(shù)據(jù)是從上到下進行列表,還是從左到右進行列表。一般來說,需要匯總的數(shù)據(jù),可以對其進行不擴展的設(shè)置,這是因為匯總的單元格通常是作為其他單元格的附屬格子來放置的;
5、設(shè)置數(shù)據(jù)的類型;
當單元格擴展時,無論數(shù)據(jù)是縱向放置還是橫向放置,都可以從數(shù)據(jù)顯示的角度進行分組,即將數(shù)據(jù)列中所有相同內(nèi)容的記錄進行合并;也可以進行數(shù)據(jù)列表,即將數(shù)據(jù)列中的所有數(shù)據(jù)記錄擴展出來,無論數(shù)據(jù)記錄是否重復(fù);
6、設(shè)置單元格之間的關(guān)系。
除了可以綁定數(shù)據(jù)列,finereport的單元格在綁定數(shù)據(jù)之后,格子之間并非平行的關(guān)系,而是附屬關(guān)系,這種附屬關(guān)系可以是默認的,也可以人為指定。當一個格子默認不附屬于任何格子或者指定它不屬于任何格子時,這個格子就是頂級的格子,或者可以叫做首格。首格的擴展與其他的格子沒有關(guān)系,而且這個首格后面的格子將默認作為這個首格的附屬格。這時候就是所有將格子分成幾塊相互沒有關(guān)系的格子組,達到報表分片的效果。
以上對本發(fā)明所提供的一種基于finereport工具的報表系統(tǒng)進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。