一種基于excel平臺構(gòu)建的web報(bào)表設(shè)計(jì)系統(tǒng)及實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)及其實(shí)現(xiàn)方法,研發(fā)的報(bào)表設(shè)計(jì)系統(tǒng)以EXCEL外接程序的方式運(yùn)行,能夠在充分利用EXCEL優(yōu)越的報(bào)表格式設(shè)計(jì)功能及重用部分原生菜單功能的基礎(chǔ)上以較低成本實(shí)現(xiàn)WEB報(bào)表開發(fā)系統(tǒng)。借助EXCEL自身的表格界面,易于實(shí)現(xiàn)國內(nèi)報(bào)表的各種復(fù)雜格式。
【專利說明】—種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)及實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件應(yīng)用領(lǐng)域,尤其涉及一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的廣泛應(yīng)用,電子政務(wù)、電子商務(wù)以及企業(yè)信息化得到迅猛發(fā)展,數(shù)據(jù)的采集、傳輸、展示、交互、等問題顯得越來越重要。報(bào)表作為一種信息組織和展示的有力手段,是企業(yè)信息系統(tǒng)的重要組成部分。據(jù)不完全統(tǒng)計(jì),企業(yè)系統(tǒng)的實(shí)際應(yīng)用中,有60%以上與報(bào)表相關(guān)。報(bào)表系統(tǒng)在各行各業(yè)中都有很廣泛的用途,是進(jìn)行信息瀏覽、分析、打印的有力工具。隨著WEB技術(shù)的發(fā)展,企業(yè)系統(tǒng)從傳統(tǒng)的客戶端/服務(wù)器架構(gòu)逐步向?yàn)g覽器/服務(wù)器架構(gòu)轉(zhuǎn)移,企業(yè)信息系統(tǒng)也正向基于Web的信息系統(tǒng)進(jìn)行轉(zhuǎn)變,越來越多的報(bào)表應(yīng)用將在Web環(huán)境下開發(fā)與運(yùn)行。在WEB報(bào)表開發(fā)系統(tǒng)研發(fā)過程中,主要包括報(bào)表設(shè)計(jì)器開發(fā)、報(bào)表服務(wù)器開發(fā)及瀏覽器端報(bào)表展示機(jī)制開發(fā),其中難度最大的就是報(bào)表設(shè)計(jì)器開發(fā)。報(bào)表設(shè)計(jì)器開發(fā)涉及到報(bào)表模型設(shè)計(jì)、圖形界面的管理及眾多功能,從頭開發(fā)技術(shù)難度很高。
[0003]近年來,國內(nèi)外各個(gè)領(lǐng)域?qū)τ趙eb報(bào)表的研究也在逐漸增多,不過傳統(tǒng)的報(bào)表工具主要采用C/S結(jié)構(gòu),而面向web的報(bào)表系統(tǒng)需要采用B/S結(jié)構(gòu)。借助于web報(bào)表工具,就能隨時(shí)隨地的使用瀏覽器去訪問各種數(shù)據(jù)資源。目前,主流的報(bào)表工具有很多,國外主要是水晶報(bào)表、快速報(bào)表系統(tǒng)、微軟報(bào)表服務(wù)等,國內(nèi)主要的是杰表、中創(chuàng)、潤乾、帆軟等。
[0004]水晶報(bào)表,是目前業(yè)內(nèi)最專業(yè)功能最強(qiáng)的報(bào)表系統(tǒng)。它可以將報(bào)表制作功能與web及windows應(yīng)用程序結(jié)合,利用各種資料來源,建立高品質(zhì)報(bào)表。但是就其目前在國內(nèi)使用的情況來看,國內(nèi)報(bào)表習(xí)慣于excel的表格格式,而水晶報(bào)表不能很好的處理大量的excel型報(bào)表文件,所以這也成為水晶報(bào)表的一個(gè)限制因素。
[0005]快速報(bào)表系統(tǒng)(FastR印ort),是一個(gè)俄國人開發(fā)的報(bào)表系統(tǒng),報(bào)表設(shè)計(jì)器的圖形化用戶界面做得非常精致,她是典型的控件拖放的設(shè)計(jì)模式。報(bào)表分為幾個(gè)大塊(Band),這些塊區(qū)分為頁眉,表身和頁腳,其中只有一個(gè)頁眉和頁腳,可以有多個(gè)表身。
[0006]微軟報(bào)表服務(wù)是提供的報(bào)表設(shè)計(jì)器是基于VS.NET的,因此若要設(shè)計(jì)報(bào)表則必須安裝昂貴的VS.NET集成開發(fā)環(huán)境。它采用控件拖拽的設(shè)計(jì)模式,但表格內(nèi)部則采用類似Excel的編輯方式。
[0007]潤乾報(bào)表是國內(nèi)比較先進(jìn)的報(bào)表系統(tǒng),她的設(shè)計(jì)器采用類似Excel樣式的表格設(shè)計(jì)方式,她的報(bào)表模型比較先進(jìn),包括報(bào)表排版模型,報(bào)表參數(shù)和宏定義等概念。
[0008]杰創(chuàng)網(wǎng)絡(luò)報(bào)表一般簡稱為杰表。它技術(shù)比較先進(jìn),完全用Java實(shí)現(xiàn),兼容j2ee平臺。它的報(bào)表設(shè)計(jì)器是用Java寫的,它的設(shè)計(jì)模式總體上是基于控件拖放,它沒有Band的概念,報(bào)表設(shè)計(jì)界面直接分為頁眉,主體和頁腳,用戶可以在在界面上拖放操作放置表格控件,但表格控件內(nèi)部卻是類似Excel的電子表格設(shè)計(jì)模式,因此它的設(shè)計(jì)器的設(shè)計(jì)模式實(shí)際上是控件拖放和電子表格的結(jié)合。
[0009]中創(chuàng)軟件,是一個(gè)中間件廠商,其中報(bào)表工具是其一個(gè)重要產(chǎn)品。它是針對B/S環(huán)境下的報(bào)表工具,采用類似Excel的排版方式。
[0010]以上廠商提供的報(bào)表設(shè)計(jì)器按照操作模式可以分為兩類:基于控件拖放的設(shè)計(jì)模式和基于類似Excel電子表格的設(shè)計(jì)模式?;诳丶戏诺脑O(shè)計(jì)模式實(shí)現(xiàn)起來比較方便,技術(shù)成熟,但不適應(yīng)類似中國式的復(fù)雜報(bào)表,因?yàn)檫@需要進(jìn)行精細(xì)的對齊操作,生成的報(bào)表輸出為HTML或Excel文檔時(shí)比較難于處理。而Excel電子表格的設(shè)計(jì)模式實(shí)現(xiàn)起來比較復(fù)雜,但能處理中國式的復(fù)雜報(bào)表,能比較方便的生成HTML或Excel文檔。因此一般認(rèn)為類似Excel電子表格的報(bào)表設(shè)計(jì)器比較先進(jìn),符合中國國情。
[0011]起步科技公司開發(fā)的X5快速開發(fā)平臺中,其報(bào)表設(shè)計(jì)器與上述報(bào)表系統(tǒng)相比具有鮮明特色。該工具將EXCEL嵌入到設(shè)計(jì)器中,用戶可以在EXCEL中設(shè)計(jì)表單布局及字體風(fēng)格,但其他主要工作在EXCEL平臺外的報(bào)表設(shè)計(jì)器中完成。這種方式既可以利用EXCEL強(qiáng)大的報(bào)表格式設(shè)計(jì)功能,又免去了在報(bào)表設(shè)計(jì)器中開發(fā)表格組件的工作量。
[0012]對于水晶報(bào)表和快速報(bào)表,由于其報(bào)表格式主要米取拖拽式設(shè)計(jì),格式對齊與調(diào)整相當(dāng)費(fèi)時(shí),難以滿足國內(nèi)報(bào)表設(shè)計(jì)的需求。
[0013]微軟報(bào)表服務(wù)、潤乾報(bào)表、杰創(chuàng)網(wǎng)絡(luò)報(bào)表、中創(chuàng)軟件等報(bào)表系統(tǒng)采用了類EXCEL表格的形式設(shè)計(jì)報(bào)表格式,符合國內(nèi)報(bào)表用戶的需求,但這類報(bào)表系統(tǒng)從頭實(shí)現(xiàn)的技術(shù)難度大、開發(fā)成本高。
[0014]起步科技的X5快速開發(fā)平臺的報(bào)表設(shè)計(jì)器中,雖然通過內(nèi)嵌EXCEL用于報(bào)表格式設(shè)計(jì),但這種模式下報(bào)表設(shè)計(jì)器與EXCEL只是一種松散的耦合,沒有充分利用EXCEL提高的二次開發(fā)機(jī)制,開發(fā)報(bào)表設(shè)計(jì)器仍然具有相當(dāng)大的工作量。
[0015]綜上所述,報(bào)表是企業(yè)應(yīng)用軟件必不可少的部分,當(dāng)前很多應(yīng)用的報(bào)表都以WEB頁面的形式呈現(xiàn),國內(nèi)外WEB報(bào)表開發(fā)工具也不少,主要存在如下問題:
[0016]研發(fā)一套用于報(bào)表設(shè)計(jì)的報(bào)表開發(fā)系統(tǒng)工作量很大,技術(shù)水平要求高,因此開發(fā)成本很高、周期很長。
[0017]國內(nèi)報(bào)表格式復(fù)雜,邊框和線條很多,拖拽式設(shè)計(jì)的報(bào)表開發(fā)工具在設(shè)計(jì)中式報(bào)表時(shí)費(fèi)時(shí)費(fèi)力,效率低下。
【發(fā)明內(nèi)容】
[0018]本發(fā)明目的在于提供一種基于EXCEL平臺二次開發(fā)的WEB報(bào)表開發(fā)系統(tǒng)以及實(shí)現(xiàn)方法,研發(fā)的報(bào)表設(shè)計(jì)器以EXCEL外接程序的方式運(yùn)行,能夠在充分利用EXCEL優(yōu)越的報(bào)表格式設(shè)計(jì)功能及重用部分原生菜單功能的基礎(chǔ)上以較低成本實(shí)現(xiàn)WEB報(bào)表開發(fā)系統(tǒng)。
[0019]本發(fā)明提供的技術(shù)方案是:一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng),包括報(bào)表設(shè)計(jì)器,報(bào)表設(shè)計(jì)器以EXCEL外接程序的方式存在,報(bào)表設(shè)計(jì)器的菜單加載在EXCEL的菜單欄上,同時(shí)保留部分EXCEL原有的與格式編輯相關(guān)的菜單項(xiàng),包括字體設(shè)置,邊框設(shè)置,文本對齊,頁面設(shè)置、重做與撤銷、合并及拆分單元格,用戶報(bào)表格式設(shè)計(jì)及數(shù)據(jù)源設(shè)計(jì)完成后,保存到本地文件夾或同時(shí)提交到數(shù)據(jù)庫服務(wù)器中;若需查看報(bào)表展示效果,可通過WEB瀏覽器訪問WEB服務(wù)器上的指定鏈接,WEB服務(wù)器將從數(shù)據(jù)庫中獲取報(bào)表格式文件,使用其中包含的格式信息及數(shù)據(jù)源信息生成WEB報(bào)表,發(fā)送給WEB瀏覽器,設(shè)計(jì)者可以看到報(bào)表的展示效果,若不符合要求,可根據(jù)需要調(diào)整EXCEL中的報(bào)表格式,并提交再瀏覽。
[0020]本發(fā)明還提供了一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)方法,包括以下步驟:
[0021]步驟I):啟動(dòng)EXCEL應(yīng)用程序;通過報(bào)表設(shè)計(jì)器加載器的獨(dú)立應(yīng)用程序?qū)崿F(xiàn),報(bào)表設(shè)計(jì)器加載與退出管理步驟包括:修改注冊表,配置報(bào)表設(shè)計(jì)器外接程序的加載行為(Loadbehav1r)為EXCEL啟動(dòng)時(shí)自動(dòng)加載;啟動(dòng)EXCEL ;退出報(bào)表設(shè)計(jì)器加載器;執(zhí)行報(bào)表設(shè)計(jì);退出報(bào)表設(shè)計(jì)器;報(bào)表設(shè)計(jì)器中檢測退出事件,并在其對應(yīng)處理代碼中將報(bào)表設(shè)計(jì)器外接程序設(shè)置為EXCEL啟動(dòng)時(shí)不加載;
[0022]步驟2):加載報(bào)表設(shè)計(jì)器外接程序;在步驟I)的設(shè)置后啟動(dòng)EXCEL,則報(bào)表設(shè)計(jì)器外接程序被自動(dòng)加載;加載后的報(bào)表設(shè)計(jì)器外接程序,其菜單組織特征為:1)屏蔽EXCEL原有菜單,菜單欄上僅包含報(bào)表設(shè)計(jì)器需要的菜單項(xiàng);2)在設(shè)計(jì)報(bào)表設(shè)計(jì)器的菜單時(shí),重組并重用EXCEL中部分用于表格格式編輯功能的菜單項(xiàng);3)重用的EXCEL原有的菜單項(xiàng)無需編寫代碼,直接使用,僅需對報(bào)表設(shè)計(jì)器中新增的功能編寫代碼;
[0023]步驟3):配置數(shù)據(jù)源;配置從報(bào)表需要展示的數(shù)據(jù)來源,通過在設(shè)計(jì)器的界面上編輯查詢數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)化查詢語言SQL語句實(shí)現(xiàn),配置好的數(shù)據(jù)源被暫存在設(shè)計(jì)器全局變量中;
[0024]步驟4):編輯報(bào)表格式;包括設(shè)置報(bào)表表格樣式、報(bào)表表頭文字、報(bào)表標(biāo)題及數(shù)據(jù)字段,其中數(shù)據(jù)字段與步驟3)設(shè)置的數(shù)據(jù)源中獲取到的數(shù)據(jù)字段一致;
[0025]步驟5):保存報(bào)表格式文件;
[0026]步驟6):提交報(bào)表格式文件至數(shù)據(jù)庫;將報(bào)表格式文件保存到數(shù)據(jù)庫中的數(shù)據(jù)表的相應(yīng)字段中;
[0027]步驟7):在WEB瀏覽器中預(yù)覽報(bào)表執(zhí)行結(jié)果。
[0028]進(jìn)一步的,所述的步驟5)保存報(bào)表格式文件包括以下步驟:
[0029](I)創(chuàng)建空白報(bào)表文檔對象;(2)在報(bào)表文檔對象中添加報(bào)表的各種內(nèi)容子節(jié)點(diǎn);
(3)搜索報(bào)表設(shè)計(jì)器表格,添加報(bào)表標(biāo)題、表頭及數(shù)據(jù)字段集合及其它界面內(nèi)容至對應(yīng)的內(nèi)容子節(jié)點(diǎn);(4)獲取設(shè)計(jì)器全局變量中保存的報(bào)表設(shè)計(jì)結(jié)果,添加到報(bào)表格式文檔對象的相應(yīng)內(nèi)容子節(jié)點(diǎn),全局變量中包含報(bào)表類型、設(shè)計(jì)者等信息;(5)保存報(bào)表格式文檔對象至本地文件。
[0030]更進(jìn)一步的,所述步驟7)在WEB瀏覽器中預(yù)覽報(bào)表執(zhí)行結(jié)果包括如下步驟:
[0031 ] a)在瀏覽器中輸入報(bào)表訪問地址,此地址包括通用報(bào)表訪問連接加上要訪問的報(bào)表的ID ;
[0032]b)在WEB服務(wù)器端接收用戶請求,并解析出要訪問的報(bào)表ID ;
[0033]c)根據(jù)此報(bào)表ID從數(shù)據(jù)庫中讀取報(bào)表格式文件;
[0034]d)從格式文件中獲取數(shù)據(jù)源;
[0035]e)執(zhí)行數(shù)據(jù)源,獲取報(bào)表數(shù)據(jù);
[0036]f)根據(jù)報(bào)表格式文件中的格式要求及報(bào)表數(shù)據(jù),創(chuàng)建報(bào)表頁面;
[0037]g)發(fā)送報(bào)表頁面至瀏覽器供用戶瀏覽。
[0038]本發(fā)明的有益效果是:
[0039]通過簡單地編輯菜單配置文件,重用報(bào)表設(shè)計(jì)中需要的EXCEL部分原有菜單,如字體設(shè)置,邊框設(shè)置,頁面設(shè)置、重做與撤銷、合并及拆分單元格等功能;
[0040]借助EXCEL自身的表格界面,易于實(shí)現(xiàn)國內(nèi)報(bào)表的各種復(fù)雜格式,此外,設(shè)計(jì)器中的多報(bào)表同時(shí)設(shè)計(jì)及單個(gè)報(bào)表的多個(gè)設(shè)計(jì)窗口也可以通過EXCEL中的多工作簿及一個(gè)工作簿中含多個(gè)工作表來實(shí)現(xiàn),無需額外編程。
[0041]借助VST0(Visual Stud1 Tools for Office)OFFICE 外接程序設(shè)計(jì)技術(shù),對于拖拽事件處理機(jī)制、報(bào)表設(shè)計(jì)器界面上的設(shè)計(jì)信息的獲取及轉(zhuǎn)換都很容易實(shí)現(xiàn),有利于報(bào)表設(shè)計(jì)器功能的快速開發(fā)。
[0042]術(shù)語解釋:
[0043]EXCEL外接程序,包含一個(gè)與某個(gè)Microsoft EXCEL應(yīng)用程序關(guān)聯(lián)的程序集。通常,該外接程序在關(guān)聯(lián)的應(yīng)用程序啟動(dòng)時(shí)運(yùn)行,當(dāng)然,用戶也可以在關(guān)聯(lián)應(yīng)用程序已在運(yùn)行時(shí)加載外接程序。但此外接程序不能脫離EXCEL獨(dú)立運(yùn)行。EXCEL外接程序可將其功能菜單增加到EXCEL菜單欄上,也可以選擇性地屏蔽其原有菜單。
【專利附圖】
【附圖說明】
[0044]當(dāng)結(jié)合附圖考慮時(shí),通過參照下面的詳細(xì)描述,能夠更完整更好地理解本發(fā)明以及容易得知其中許多伴隨的優(yōu)點(diǎn),但此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定,其中:
[0045]圖1是本發(fā)明的WEB報(bào)表設(shè)計(jì)系統(tǒng)框圖;
[0046]圖2是本發(fā)明WEB報(bào)表設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)方法的總體流程框圖;
[0047]圖3是報(bào)表設(shè)計(jì)器加載與退出管理的流程框圖;
[0048]圖4是保存報(bào)表格式文件的流程框圖;
[0049]圖5是在WEB瀏覽器中預(yù)覽報(bào)表執(zhí)行結(jié)果的流程框圖。
【具體實(shí)施方式】
[0050]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0051]本發(fā)明提出的一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)如圖1所示出,報(bào)表設(shè)計(jì)器以EXCEL外接程序的方式存在,報(bào)表設(shè)計(jì)器的菜單加載在EXCEL的菜單欄上,同時(shí)保留部分EXCEL原有的與格式編輯相關(guān)的菜單項(xiàng),包括字體設(shè)置,邊框設(shè)置,文本對齊,頁面設(shè)置、重做與撤銷、合并及拆分單元格等功能、用戶報(bào)表格式設(shè)計(jì)及數(shù)據(jù)源設(shè)計(jì)完成后,可以保存到本地文件夾,也可以同時(shí)提交到數(shù)據(jù)庫服務(wù)器中;若需查看報(bào)表展示效果,可通過瀏覽器訪問WEB服務(wù)器上的指定鏈接,WEB服務(wù)器將從數(shù)據(jù)庫中獲取報(bào)表格式文件,使用其中包含的格式信息及數(shù)據(jù)源信息生成WEB報(bào)表,發(fā)送給瀏覽器,設(shè)計(jì)者可以看到報(bào)表的展示效果,若不符合要求,可根據(jù)需要調(diào)整EXCEL中的報(bào)表格式,并提交再瀏覽。
[0052]參考附圖2,本發(fā)明一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)方法包括以下步驟,
[0053]步驟I):啟動(dòng)EXCEL應(yīng)用程序;
[0054]通過報(bào)表設(shè)計(jì)器加載器的獨(dú)立應(yīng)用程序?qū)崿F(xiàn)(非指報(bào)表設(shè)計(jì)器代表的EXCEL外接程序)。
[0055]參考附圖3,報(bào)表設(shè)計(jì)器加載與退出管理主要步驟包括:
[0056]修改注冊表,配置報(bào)表設(shè)計(jì)器外接程序的加載行為(Loadbehav1r)為EXCEL啟動(dòng)時(shí)自動(dòng)加載;
[0057]啟動(dòng)EXCEL;
[0058]退出報(bào)表設(shè)計(jì)器加載器;
[0059]執(zhí)行報(bào)表設(shè)計(jì);
[0060]退出報(bào)表設(shè)計(jì)器;
[0061]報(bào)表設(shè)計(jì)器中檢測退出事件,并在其對應(yīng)處理代碼中將報(bào)表設(shè)計(jì)器外接程序設(shè)置為EXCEL啟動(dòng)時(shí)不加載。
[0062]步驟I)的原因在于:1)以EXCEL外接程序存在的報(bào)表設(shè)計(jì)器是一個(gè)動(dòng)態(tài)鏈接庫,無法獨(dú)立啟動(dòng),因此無法在桌面上創(chuàng)建報(bào)表設(shè)計(jì)器的快捷方式以啟動(dòng)它;2)以EXCEL外接程序存在的報(bào)表設(shè)計(jì)器安裝后,會(huì)自動(dòng)配置為“EXCEL啟動(dòng)則自動(dòng)加載”模式,則EXCEL每次啟動(dòng)都會(huì)是報(bào)表設(shè)計(jì)器的界面而非EXCEL原生界面,用戶若想恢復(fù)成EXCEL原生界面進(jìn)行電子表格編輯需要進(jìn)行復(fù)雜操作,退出EXCEL后下次再啟動(dòng)報(bào)表設(shè)計(jì)器又需要復(fù)雜的手動(dòng)加載。采用步驟I方法好處在于:啟動(dòng)“報(bào)表設(shè)計(jì)器加載器”則啟動(dòng)后EXCEL的菜單均為報(bào)表設(shè)計(jì)器的菜單,進(jìn)入報(bào)表設(shè)計(jì)模式,若直接啟動(dòng)EXCEL則所有菜單為EXCEL原生菜單,進(jìn)入電子表格編輯模式,無需用戶手動(dòng)切換這兩種模式。
[0063]步驟2):加載報(bào)表設(shè)計(jì)器外接程序;在步驟I的設(shè)置后啟動(dòng)EXCEL,則報(bào)表設(shè)計(jì)器外接程序被自動(dòng)加載,以EXCEL外接程序形式存在的報(bào)表設(shè)計(jì)器,其菜單組織具有如下特征:1)屏蔽EXCEL原有菜單,菜單欄上僅包含報(bào)表設(shè)計(jì)器需要的菜單項(xiàng),而不是將報(bào)表設(shè)計(jì)器的菜單作為一個(gè)功能區(qū)插入到EXCEL的菜單欄中;2)在設(shè)計(jì)報(bào)表設(shè)計(jì)器的菜單時(shí),重組并重用EXCEL中部分用于表格格式編輯功能的菜單項(xiàng);3)重用的EXCEL原有的菜單項(xiàng)無需編寫代碼,直接使用,僅需對報(bào)表設(shè)計(jì)器中新增的功能編寫代碼。此菜單組織方式的優(yōu)點(diǎn)是:使EXCEL能夠表現(xiàn)為一個(gè)純粹的報(bào)表設(shè)計(jì)器,而不是表現(xiàn)為一個(gè)具有報(bào)表設(shè)計(jì)功能的EXCEL,同時(shí),重用原有菜單項(xiàng)能有效地降低報(bào)表設(shè)計(jì)器開發(fā)工作量。
[0064]步驟3):配置數(shù)據(jù)源;配置從報(bào)表需要展示的數(shù)據(jù)來源,設(shè)計(jì)者通過在設(shè)計(jì)器的界面上編輯查詢數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)化查詢語言(SQL)語句實(shí)現(xiàn)。配置好的數(shù)據(jù)源被暫存在設(shè)計(jì)器全局變量中。
[0065]步驟4):編輯報(bào)表格式;設(shè)置報(bào)表表格樣式、報(bào)表表頭文字、報(bào)表標(biāo)題及數(shù)據(jù)字段,其中數(shù)據(jù)字段與步驟3)設(shè)置的數(shù)據(jù)源中獲取到的數(shù)據(jù)字段一致,還涉及到頁面設(shè)置,對齊等。本步驟涉及到的功能大量用到EXCEL自帶的菜單及表格編輯功能。
[0066]步驟5):保存報(bào)表格式文件;具體步驟包括:(如圖4所示出)
[0067](I)創(chuàng)建空白報(bào)表文檔對象;
[0068](2)在報(bào)表文檔對象中添加報(bào)表的各種內(nèi)容子節(jié)點(diǎn);
[0069](3)搜索報(bào)表設(shè)計(jì)器表格,添加報(bào)表標(biāo)題、表頭及數(shù)據(jù)字段集合及其它界面內(nèi)容至對應(yīng)的內(nèi)容子節(jié)點(diǎn);
[0070](4)獲取設(shè)計(jì)器全局變量中保存的報(bào)表設(shè)計(jì)結(jié)果,添加到報(bào)表文檔對象的相應(yīng)內(nèi)容子節(jié)點(diǎn),全局變量中包含報(bào)表類型、設(shè)計(jì)者等信息;
[0071](5)保存報(bào)表文檔對象至本地文件。
[0072]步驟6):提交報(bào)表格式文件至數(shù)據(jù)庫;將報(bào)表格式文件保存到數(shù)據(jù)庫中的數(shù)據(jù)表的相應(yīng)字段中。
[0073]步驟7):在WEB瀏覽器中預(yù)覽報(bào)表執(zhí)行結(jié)果,包括如下步驟:
[0074]a)在瀏覽器中輸入報(bào)表訪問地址,此地址包括通用報(bào)表訪問連接加上要訪問的報(bào)表的ID ;
[0075]b)在WEB服務(wù)器端接收用戶請求,并解析出要訪問的報(bào)表ID ;
[0076]c)根據(jù)此報(bào)表ID從數(shù)據(jù)庫中讀取報(bào)表格式文件;
[0077]d)從格式文件中獲取數(shù)據(jù)源;
[0078]e)執(zhí)行數(shù)據(jù)源,獲取報(bào)表數(shù)據(jù);
[0079]f)根據(jù)報(bào)表格式文件中的格式要求及報(bào)表數(shù)據(jù),創(chuàng)建報(bào)表頁面;
[0080]g)發(fā)送報(bào)表頁面至瀏覽器供用戶瀏覽。
[0081]本發(fā)明步驟I)所述報(bào)表設(shè)計(jì)器加載與退出管理,也可以采用手動(dòng)管理方式:在EXCEL啟動(dòng)后,在EXCEL選項(xiàng)窗口中,打開COM加載項(xiàng)窗口,手動(dòng)選擇加載還是不加載報(bào)表設(shè)計(jì)器。以上實(shí)例的說明只是用于幫助理解本發(fā)明的核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng),其特征在于,包括報(bào)表設(shè)計(jì)器,報(bào)表設(shè)計(jì)器以EXCEL外接程序的方式存在,報(bào)表設(shè)計(jì)器的菜單加載在EXCEL的菜單欄上,同時(shí)保留部分EXCEL原有的與格式編輯相關(guān)的菜單項(xiàng),包括字體設(shè)置,邊框設(shè)置,文本對齊,頁面設(shè)置、重做與撤銷、合并及拆分單元格,用戶報(bào)表格式設(shè)計(jì)及數(shù)據(jù)源設(shè)計(jì)完成后,保存到本地文件夾或同時(shí)提交到數(shù)據(jù)庫服務(wù)器中;若需查看報(bào)表展示效果,可通過WEB瀏覽器訪問WEB服務(wù)器上的指定鏈接,WEB服務(wù)器將從數(shù)據(jù)庫中獲取報(bào)表格式文件,使用其中包含的格式信息及數(shù)據(jù)源信息生成WEB報(bào)表,發(fā)送給WEB瀏覽器,設(shè)計(jì)者可以看到報(bào)表的展示效果,若不符合要求,可根據(jù)需要調(diào)整EXCEL中的報(bào)表格式,并提交再瀏覽。
2.—種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,包括以下步驟: 步驟I):啟動(dòng)EXCEL應(yīng)用程序;通過報(bào)表設(shè)計(jì)器加載器的獨(dú)立應(yīng)用程序?qū)崿F(xiàn),報(bào)表設(shè)計(jì)器加載與退出管理步驟包括:修改注冊表,配置報(bào)表設(shè)計(jì)器外接程序的加載行為(Loadbehav1r)為EXCEL啟動(dòng)時(shí)自動(dòng)加載;啟動(dòng)EXCEL ;退出報(bào)表設(shè)計(jì)器加載器;執(zhí)行報(bào)表設(shè)計(jì);退出報(bào)表設(shè)計(jì)器;報(bào)表設(shè)計(jì)器中檢測退出事件,并在其對應(yīng)處理代碼中將報(bào)表設(shè)計(jì)器外接程序設(shè)置為EXCEL啟動(dòng)時(shí)不加載; 步驟2):加載報(bào)表設(shè)計(jì)器外接程序;在步驟I)的設(shè)置后啟動(dòng)EXCEL,則報(bào)表設(shè)計(jì)器外接程序被自動(dòng)加載;加載后的報(bào)表設(shè)計(jì)器外接程序,其菜單組織特征為:1)屏蔽EXCEL原有菜單,菜單欄上僅包含報(bào)表設(shè)計(jì)器需要的菜單項(xiàng);2)在設(shè)計(jì)報(bào)表設(shè)計(jì)器的菜單時(shí),重組并重用EXCEL中部分用于表格格式編輯功能的菜單項(xiàng);3)重用的EXCEL原有的菜單項(xiàng)無需編寫代碼,直接使用,僅需對報(bào)表設(shè)計(jì)器中新增的功能編寫代碼; 步驟3):配置數(shù)據(jù)源;配置報(bào)表中需要展示的數(shù)據(jù)來源,通過在設(shè)計(jì)器的界面上編輯查詢數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)化查詢語言SQL語句實(shí)現(xiàn),配置好的數(shù)據(jù)源被暫存在設(shè)計(jì)器全局變量中; 步驟4):編輯報(bào)表格式;包括設(shè)置報(bào)表表格樣式、報(bào)表表頭文字、報(bào)表標(biāo)題及數(shù)據(jù)字段,其中數(shù)據(jù)字段與步驟3)設(shè)置的數(shù)據(jù)源中獲取到的數(shù)據(jù)字段一致; 步驟5):保存報(bào)表格式文件; 步驟6):提交報(bào)表格式文件至數(shù)據(jù)庫;將報(bào)表格式文件保存到數(shù)據(jù)庫中的數(shù)據(jù)表的相應(yīng)字段中; 步驟7):在WEB瀏覽器中預(yù)覽報(bào)表執(zhí)行結(jié)果。
3.根據(jù)權(quán)利要求2所述的一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,所述的步驟5)保存報(bào)表格式文件包括以下步驟: (1)創(chuàng)建空白報(bào)表文檔對象; (2)在報(bào)表文檔對象中添加報(bào)表的各種內(nèi)容子節(jié)點(diǎn); (3)搜索報(bào)表設(shè)計(jì)器表格,添加報(bào)表標(biāo)題、表頭及數(shù)據(jù)字段集合及其它界面內(nèi)容至對應(yīng)的內(nèi)容子節(jié)點(diǎn); (4)獲取設(shè)計(jì)器全局變量中保存的報(bào)表設(shè)計(jì)結(jié)果,添加到報(bào)表格式文檔對象的相應(yīng)內(nèi)容子節(jié)點(diǎn),全局變量中包含報(bào)表類型、設(shè)計(jì)者等信息; (5)保存報(bào)表格式文檔對象至本地文件。
4.根據(jù)權(quán)利要求2所述的一種基于EXCEL平臺構(gòu)建的WEB報(bào)表設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于,所述步驟7)在WEB瀏覽器中預(yù)覽報(bào)表執(zhí)行結(jié)果包括如下步驟: a)在瀏覽器中輸入報(bào)表訪問地址,此地址包括通用報(bào)表訪問連接加上要訪問的報(bào)表的ID ; b)在WEB服務(wù)器端接收用戶請求,并解析出要訪問的報(bào)表ID; c)根據(jù)此報(bào)表ID從數(shù)據(jù)庫中讀取報(bào)表格式文件; d)從格式文件中獲取數(shù)據(jù)源; e)執(zhí)行數(shù)據(jù)源,獲取報(bào)表數(shù)據(jù); f)根據(jù)報(bào)表格式文件中的格式要求及報(bào)表數(shù)據(jù),創(chuàng)建報(bào)表頁面; g)發(fā)送報(bào)表頁面至瀏覽器供用戶瀏覽。
【文檔編號】G06F17/24GK104360992SQ201410722884
【公開日】2015年2月18日 申請日期:2014年12月2日 優(yōu)先權(quán)日:2014年12月2日
【發(fā)明者】聶作先, 王平陽, 聶明星, 楊海燕, 張順淼 申請人:福建工程學(xué)院