999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用XML和Excel設計動態通用報表系統的新方法

2008-04-12 00:00:00王勇超王新衛楊凱鋒
現代電子技術 2008年18期

摘 要:提出一種利用XML和Excel設計動態通用報表系統的新方法。首先對Excel報表模板進行分解,生成報表模板的報表信息、架構信息和映射信息,再根據統計模板生成統計分析信息,這些信息均以XML文檔的形式存入數據庫。在系統運行時,將用戶上報的Excel文件中的報表數據提取出來,以XML文檔的形式存入數據庫。然后結合XPath和XQuery對報表數據進行統計分析,得到統計報表數據。最后將統計報表數據組裝為Excel文件輸出給用戶。采用這種方法設計的報表系統動態靈活、通用性強。

關鍵詞:XML;Excel;XPath;XQuery

中圖分類號:TP311 文獻標識碼:B 文章編號:1004373X(2008)1809304

A New Way to Design Generalpurpose Reporting Systems Using XML and Excel

WANG Yongchao1,ZHANG Jing1,MA Jing2,WANG Xinwei1,YANG Kaifeng1

( 1.Faculty of Computer Science and Engineering,Xi′an University of Technology,Xi′an,710048,China;2.Xi′an Technological University,Xi′an,710048,China)

Abstract:This paper discusses a new way to design dynamic and generalpurpose reporting systems,which utilizes XML and Excel.Excel templates is deconstructed and reporting information,structure information and mapping information of templates are built,and statistics by a statistic template is generated,and all these information are stored in database in XML format.After that,data is extracted from user uploaded Excel files and it is saved to database in XML format.Using Xpath and XQuery,reporting data and statistic data which is further composed into an Excel file to users.This kind of design makes reporting system more flexible and customizable.

Keywords:XML;Excel;XPath;XQuery

1 引 言

在現實生活中特別是在企業里面,報表無處不在,報表生成工具在管理信息系統中有著舉足輕重的地位。通過對生產活動中的各種數據進行匯總、統計和分析,可以多層次,多角度、全面而詳細地了解企業生產運作狀態,是管理高層進行決策規劃的數據基礎。然而,由于我國企業報表的設計規劃很不規范,樣式規格紛繁復雜,對于每一個信息管理系統來說,報表部分都是極其耗時費力的工作,而且還常不能滿足用戶靈活變動的要求。設計一個報表樣式可以由用戶靈活設計,通用的報表系統是一個非常實際意義的研究課題。

2 報表系統研究現狀

Excel是專業的制表工具,內置豐富的公式函數,具有強大的數據統計分析功能。目前在企業當中,Excel的應用非常的普遍,幾乎所有的計劃統計部門都采用Excel作為日常最主要的報表工具。因此,在動態通用報表的設計方面,以Excel組件為操作對象進行報表系統的開發很受軟件開發者的歡迎。目前這方面的研究已經取得了很大的成果[1],但是由于以Excel文件作為文件對象訪問方式要求對每一種樣式的Excel文件都要單獨編程,工作量大且靈活性差,以Excel文件作為數據庫訪問方式對于規范的二維順序表樣式的報表沒有問題,但是對于不規則的交叉表、混合統計匯總表等就無能為力,而實際當中這類不規范的占的比重還非常大。因此在實際應用當中還有很多問題需要解決。

XML是一種可擴展性標記語言,其自描述性使其非常適用于不同應用間的數據交換,而且這種交換是不以預先規定一組數據結構定義為前提。XML最大的優點是它對數據描述和數據傳送的能力,因此具備很強的開放性。如果用XML來描述報表數據,則報表的設計就會具有很大的靈活性,因此利用XML實現動態通用報表的研究也開始受到人們的重視,并取得了一定的成果。但是也都存在一些問題,如參考文獻[2]中提出的方法僅限于對已有數據的查詢結果進行格式調整,只是在最后報表的生成階段實現了靈活設置,參考文獻[3]所提出的方法需要構建知識表達和知識庫,實際操作性較差。參考文件[4]采用模板技術,模板與數據相分離,采用數據庫方式存儲報表模板和系統各種數據,實現報表的權限管理、分類管理和網絡化管理,但是在實現上采用FastReport這個商用軟件實現,無法由程序開發人員自由控制。參考文件[5]采用固定格式的文本文件作為報表文件的載體,經過解析程序實現動態報表,利用這種方法設計的報表系統靈活性較好,但是由于所有工作圍繞文本文件進行,所以操控性較差,解析工作比較麻煩。

本文在對XML和Excel的進行深入研究后,提出一種新的動態通用報表系統的設計方法。采用模板技術,數據與表現分離,以XML為載體經過解析進行數據統計分析并動態生成報表。具體操作時,以企業中普遍采用的Excel文件作為報表模板和數據采集對象,對Excel文件進行XML分解,使報表的數據和表現相分離,以XML的形式存入數據庫,使用XQuery語言對數據庫中的XML數據進行統計和分析,通過對XML數據的組裝最后以Excel文件的形式輸出報表。

3 系統結構設計

整個報表系統的系統結構如圖1所示,由報表模板生成、統計模板生成、報表數據采集、報表組裝4大子系統及數據庫組成。

報表模板生成子系統將Excel文件格式的報表模板進行XML分解,將報表的結構信息以XML格式存入數據庫。統計模板生成子系統負責生成描述報表中各數據組成元素間邏輯關系的信息,同樣以XML格式存入數據。報表數據采集子系統負責采集具體報表文件中的數據,根據某種報表模板的XML描述信息將其具體的數據以XML格式存入數據庫。報表組裝子系統則根據報表模板的結構信息、數據邏輯關系和具體數據進行統計計算并組裝,以Excel文件的格式輸出報表。其中報表模板生成子系統是整個系統的基礎和核心,下面也將以報表模板生成為重點對各個子系統進行詳細介紹。

3.1 報表模板生成

報表模板生成子系統的系統結構如圖2所示,將Excel文件格式的報表模板進行XML分解,生成與其對應的模板信息、架構信息、映射信息的XML描述。這3種信息的XML描述存放在數據庫(如MS SQL Server2005)中,在后面的統計分析、數據采集以及報表組裝時都會用到。

模板信息描述報表的基本信息,包括模板標識、模板定制人、模板定制時間、報表類型、表頭信息、數據信息等內容。報表類型主要分為順序型、交叉型和混雜型3類。順序型報表最為常見,也是惟一可以直接轉化為數據庫形式的報表,即表頭為上面若干行,下面為數據。交叉型報表的特點是上面若干行和左面若干列為表頭,中間部分為數據。混雜型報表的表頭和數據相互交錯,很不規范,一般都可以通過一定的手段轉化為交叉表。表頭信息和數據信息主要說明表頭和數據區域的范圍。具體就是在工作表中的起始行號、列號以及行數、列數。

架構信息描述報表所包含信息的結構狀況,即Excel模板樣式的樹型結構。Excel模板樣式都可以用樹型結構表示。報表有效區域的單元格可以分為2大類:一類是表頭,表示的是框架信息,在結構樹中是枝干;另一類是數據,是具體的值,在結構樹中是葉子結點。架構信息就是Excel模板樣式結構樹對應的XML描述。如圖3所示的報表模板對應的模板結構樹如圖4所示,經處理后得到的架構信息如圖5所示。

映射信息描述報表中每一個數據單元格與模板樣式結構樹中的每一個葉子節點的一一對應關系。圖3所示的報表模板經處理后得到的映射信息如圖6所示。通過映射信息,就可以知道Excel報表文件中的每一個有效的數據單元格所表示的具體的含義(即葉子節點在結構樹中的位置),也可以知道每一個葉子節點的值(Excel報表文件中對應的單元格中的數值)。如圖3所示報表模板中的“D6”單元格(第6行第4列)所表示的就是“/洗煤名稱/洗煤/本季度總產量/目標”,同樣,“/洗煤名稱/合計/本季度總產量/計劃”的值就是單元格“C4”(第4行第3列)的值。

圖5和圖6中前面帶“+”號的數據項沒有展開,因其結構和上面已經展開數據項的相似,為了完成的顯示整體內容故處于折疊狀態。

3.2 統計模板生成

報表中的數據來源主要有2種:直接獲取的和統計計算的結果。統計模板生成的主要任務就是描述統計計算的方式方法。Excel強大的統計功能依賴于其豐富的公式和函數,而公式和函數可以將Excel文件中的指定單元格作為操作對象又是其充分發揮作用的基礎。同理,報表統計必然要求系統能夠方便快捷的獲取現有的報表數據,而報表數據是以XML文檔的格式存在數據庫中的,因此如何從XML文檔中獲取數據是關鍵問題。

XPath是一門在 XML 文檔中查找信息的語言。XPath可用來在XML文檔中對元素和屬性進行遍歷。XPath是 W3C XSLT 標準的主要元素,并且XQuery和XPointer同時被構建于XPath表達之上。

XQuery是一種可以查詢結構化或半結構化XML 數據的語言。XQuery 基于現有的 XPath 查詢語言,并支持更好的迭代、更好的排序結果以及構造必須的XML的功能。若要查詢XML類型的變量或列中存儲的XML實例,可以使用XML數據類型方法。例如,可以聲明一個XML類型的變量,然后使用 XML 數據類型的 query() 方法來查詢此變量。

前面的模板生成將Excel模板分解成模板信息、架構信息和映射信息,特別是映射信息的生成,使得僅以行號和列號標識的單元格具備了實際的現實意義。使用XQuery語言對數據庫中的XML數據進行自動提取[6],并將提取的數據進行一些運算,按照Excel公式和函數的功能設計理念,同一報表內部的數據邏輯關系可以非常容易的進行設置。仍以圖3中的報表為例,合計的入洗煤量等于洗煤的入洗煤量加上塊煤的入洗煤量,即:“/洗煤名稱/合計/入洗煤量”=“/洗煤名稱/洗煤/入洗煤量”+“/洗煤名稱/塊煤/入洗煤量”。如果加上模板的其他信息,則不同報表之間的數據邏輯關系也可以設置。如計劃“/洗煤名稱/合計/本季度總產量/計劃”=“洗煤產品產量計劃表/{本季度}/總產量/計劃”。統計模板生成系統結構如圖7所示。

3.3 報表數據采集

將XML架構與工作簿相關聯,能夠更為簡單和可靠地在Excel中導入和導出數據。當XML 架構添加到工作簿時,Excel 會創建一個稱為XML 映射的對象。這些 XML 映射可以將單元格或范圍映射到XML 架構中的元素。在導入或導出XML 數據時,Excel 使用這些映射將映射范圍的內容與架構中的元素聯系在一起。

數據采集的系統結構如圖8所示。在前面,已經根據報表模板生成了架構信息、映射信息等XML描述并存入數據庫;上報數據的時候,根據這些信息和上報的Excel報表文件結合,就可以將Excel報表文件中的數據信息提取出來,將其以XML數據的形式存入數據庫,同時記錄上報人、上報時間等報表信息。

3.4 報表統計輸出

報表組裝輸出的系統結構如圖9所示。首先根據報表信息和統計分析信息對報表數據進行統計、匯總計算,生成最終報表的報表數據,最后根據架構信息和映射信息組裝成Excel報表文件輸出給用戶。

4 結 語

本文通過對XML和Excel的研究,提出一種利用XML和Excel設計動態通用報表系統的新方法,并在圖9 報表生成模塊系統結構山東兗礦集團煤業公司煤礦的報表管理系統中進行實際應用。采用這種方法設計的報表系統可以方便靈活地設置報表模板,完成數據上報以及統計、匯總和分析,并且適用于各行各業,通用性強。

參 考 文 獻

[1]文靜華,張梅.基于Excel的企業通用動態報表生成工具的設計[J].計算機工程,2005,31(4):221223.

[2]艾永亮,王保保.一種新的通用報表模型的研究與實現\\.現代電子技術,2007,30(4):172173.

[3]潘福成,張士杰.基于XML的智能報表生成工具的研究[J].小型微型計算機系統,2005,26(1):134138.

[4]周一,王世耕,黃忠全,等.基于FastReport的通用報表系統的設計與實現[J].計算機應用與軟件,2008(2):284285.

[5]張亞平,賀占莊.B/S架構下動態報表的一種實現方式[J].計算機技術與發展,2007(4):9395.

[6]Scott Boag,Don Chamberlin,Mary F Fernández,et al.XQuery 1.0: An XML Query Language\\.http://www.w3.org/TR/2007/REC-xquery-20070123.

作者簡介 王勇超 男,1979年出生,河北定州人,碩士。研究方向為計算機應用、高性能計算。

張 璟 男,1958年出生,陜西寶雞人,教授,博士生導師。主要研究方向為計算機網絡、軟件開發以及電子商務。

馬 靜 女,1980年出生,助教。主要研究方向為計算機網絡。

王新衛 女,1980年出生,圖書館館員。主要從事計算機管理和信息技術的研究工作。

楊凱鋒 男,1970年出生,講師。主要研究方向為計算機應用。

主站蜘蛛池模板: 亚洲 欧美 日韩综合一区| 99久久无色码中文字幕| 欧美激情伊人| 亚洲精品天堂自在久久77| 中文字幕啪啪| 黄片一区二区三区| 国产凹凸视频在线观看| 国产情侣一区二区三区| 素人激情视频福利| 亚洲最大在线观看| 欧美日韩v| 国产一区亚洲一区| 国产三区二区| 中文无码毛片又爽又刺激| 国产女人爽到高潮的免费视频 | AV在线天堂进入| 欧美日韩国产一级| 99久久国产精品无码| 色播五月婷婷| 韩国自拍偷自拍亚洲精品| 国产噜噜噜视频在线观看| 国产精品美女免费视频大全| 亚洲人成人无码www| 在线毛片网站| 免费观看成人久久网免费观看| 成年人免费国产视频| 欧美午夜理伦三级在线观看| 国产精品视频免费网站| 国产综合欧美| 在线观看91香蕉国产免费| 欧美日韩导航| 国产精品尹人在线观看| 又黄又湿又爽的视频| 久久性妇女精品免费| 91无码人妻精品一区二区蜜桃| 91久久夜色精品| 自偷自拍三级全三级视频| 国产熟睡乱子伦视频网站| 亚洲欧美自拍中文| 青青草国产一区二区三区| 亚洲区一区| 香蕉蕉亚亚洲aav综合| 刘亦菲一区二区在线观看| 香蕉久久国产精品免| 又猛又黄又爽无遮挡的视频网站| 中文字幕无码电影| 91网红精品在线观看| 99久久精品免费观看国产| 99国产在线视频| 免费一看一级毛片| 国产在线91在线电影| 免费精品一区二区h| 精品成人免费自拍视频| 日韩成人在线视频| 国产精品熟女亚洲AV麻豆| 国产精品精品视频| 嫩草在线视频| 亚洲色中色| 色偷偷男人的天堂亚洲av| 69视频国产| 国产福利一区在线| 国产综合色在线视频播放线视| 狠狠色婷婷丁香综合久久韩国| 亚洲第一视频免费在线| 国产第一页亚洲| 国产黄色视频综合| 欧美特黄一级大黄录像| 玖玖精品视频在线观看| 国产丰满成熟女性性满足视频| 久久国产亚洲偷自| 毛片免费网址| 国产成人三级| 国产三级精品三级在线观看| 国产精品久久久久久久伊一| 在线综合亚洲欧美网站| 亚洲欧美在线看片AI| 亚洲视频欧美不卡| www.99精品视频在线播放| 国产成人AV男人的天堂| 999国产精品永久免费视频精品久久| 综1合AV在线播放| 亚洲第一区在线|