吳鉻,吳衛(wèi)
摘要:報表作為數(shù)據(jù)信息的發(fā)布,包括內(nèi)容和形式兩方面。本文的報表系統(tǒng)其主要特色是使用XML和XSL實現(xiàn)了報表數(shù)據(jù)和報表格式的分離,即同一報表數(shù)據(jù)可以有多種顯示樣式,這樣的數(shù)據(jù)與結(jié)構(gòu)的分離增強了數(shù)據(jù)的獨立性,提高了數(shù)據(jù)的共享程度。
關(guān)鍵詞:報表;獨立性;分離
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)34-9722-02
The Research and Implementation of Web Report Formed System
WU Ge1, WU Wei2
(1. School of Computer, Jiangxi Aviation Vocational & Technical College, Nanchang 330024, China; 2. Jiangxi Applied Technology of College, Ganzhou 3410000, China)
Abstract: The report is the information issue, including content and information. In the design, the mainly characteristics of this system is the separation between data and styles, namely the identical data of the report could have many displaying styles. Therefore, the separation between data and styles strengthens the data independence and enhances the data sharing degree.
Key words: Report; Independence; Separation
1 背景
在企業(yè)的信息管理中不可避免地要編制各種各樣的報表,報表是企業(yè)生產(chǎn)、銷售等各個環(huán)節(jié)的重要依據(jù)。報表就其實質(zhì)而言,是信息的發(fā)布,包括形式和內(nèi)容兩方面。形式方面,報表是表格,按照一定的格式組織。內(nèi)容方面,報表要“報告情況”,反映經(jīng)營成果和財務(wù)狀況,報表內(nèi)容是各種各樣有用的數(shù)據(jù)。同時,報表是“數(shù)據(jù)處理系統(tǒng)所預(yù)備好”的輸出文件,是總結(jié)性文件,即報表中的數(shù)據(jù)是經(jīng)過處理后的數(shù)據(jù)。隨著Internet的廣泛應(yīng)用,電子商務(wù)及ERP(Enterprise Resource Planning,企業(yè)資源計劃)得到迅猛發(fā)展,數(shù)據(jù)的采集、傳輸、交互、安全等問題顯得越來越重要。報表作為一種信息組織和展示的有利手段,是企業(yè)信息系統(tǒng)的重要組成部分。據(jù)不完全估計,系統(tǒng)應(yīng)用的60%以上與報表有關(guān)。報表的生成系統(tǒng)在各行各業(yè)中都有著廣泛的用途,是進(jìn)行信息瀏覽、分析、打印的有利工具。隨著WWW技術(shù)的發(fā)展,報表生成系統(tǒng)從傳統(tǒng)的客戶/服務(wù)器結(jié)構(gòu)正逐步向Internet轉(zhuǎn)移,越來越多的報表應(yīng)用在Web環(huán)境下開發(fā)與運行。
2 數(shù)據(jù)庫的連接
信息系統(tǒng)的主要任務(wù)是通過大量的數(shù)據(jù)獲得管理所需要的信息,這就必須存儲和管理大量的數(shù)據(jù)。因此建立一個良好的數(shù)據(jù)組織結(jié)構(gòu)和數(shù)據(jù)庫,使整個系統(tǒng)都可以迅速、方便、準(zhǔn)確地調(diào)用和管理所需的數(shù)據(jù),是衡量信息系統(tǒng)開發(fā)工作好壞的主要指標(biāo)之一。
在本系統(tǒng)的數(shù)據(jù)庫連接中,應(yīng)用程序所采用的數(shù)據(jù)庫連接方式是使用ODBC驅(qū)動程序,免去了配置ODBC數(shù)據(jù)源的步驟,可以利用ODBC驅(qū)動程序與數(shù)據(jù)庫相連接。代碼如下:
<%
var conn,connstr,query;
conn=Server.CreateObject("ADODB.CONNECTION");
connstr="Driver={SQL Server};Server=(local);Database=deports;UID=sa;PWD=sql;"
conn.Open (connstr)
3 報表數(shù)據(jù)管理
報表數(shù)據(jù)管理頁面包括在系統(tǒng)管理員權(quán)限頁面里,系統(tǒng)管理員的登錄頁面使用了員工信息表。在系統(tǒng)登錄頁面里還需要引用這個表的用戶名,密碼和是否是管理員等字段進(jìn)行用戶身份鑒別。如果用戶身份通過驗證的話,系統(tǒng)登錄頁面還要記錄用戶的詳細(xì)信息,留待以后的系統(tǒng)頁面使用。
報表數(shù)據(jù)管理是管理員權(quán)限里的功能,包括員工信息數(shù)據(jù)管理和員工工資數(shù)據(jù)管理。員工信息數(shù)據(jù)管理是管理員可以通過該管理頁面查看所有的員工信息,然后根據(jù)需要,對數(shù)據(jù)進(jìn)行不同的操作。在員工信息數(shù)據(jù)管理頁面中,首先顯示瀏覽,然后以表格的形式顯示信息,它需要從數(shù)據(jù)庫中讀取記錄。首先設(shè)定數(shù)據(jù)庫的連接,以及返回的數(shù)據(jù)集。然后是查詢員工信息表里面的所有記錄查詢出來,最后獲取所有的值,然后將每條記錄的所有字段都賦予特定變量的值,顯示出來。這里為了方便瀏覽,還設(shè)置了分頁功能。員工工資數(shù)據(jù)管理的設(shè)計過程類似于員工信息數(shù)據(jù)管理。
4 報表樣式設(shè)計
報表樣式設(shè)計屬于后臺設(shè)計,XML報表數(shù)據(jù)會按照設(shè)計好的樣式自動展示出來。Web報表生成系統(tǒng)實現(xiàn)的是報表數(shù)據(jù)和報表格式的分離,XML報表數(shù)據(jù)文檔里沒有任何關(guān)于格式方面的信息,為XML文檔提供信息的是XSL樣式表,這就意味著同一報表數(shù)據(jù)可以有多種顯示樣式,方便用戶根據(jù)需要對報表進(jìn)行瀏覽。般的報表可以劃分為八個區(qū),分別為:頁頭、頁尾、標(biāo)題欄、報表頭、報表體、匯總帶,分組頭,分組尾。針對具體的某一報表,可能會只有其中的幾個區(qū)。針對于本系統(tǒng)中的報表設(shè)計,劃分為六個區(qū):頁頭、頁尾、報表標(biāo)題、報表頭、報表體、匯總帶。頁頭區(qū)設(shè)計的是單位名稱和報表日期;頁尾區(qū)設(shè)計的是報表的相關(guān)信息,如報表制作和審核的相關(guān)人員;報表標(biāo)題區(qū)是顯示在報表開始處,設(shè)計的是報表名;報表頭區(qū)設(shè)計的是報表頭部,如員工號、姓名等;匯總帶區(qū)設(shè)計的是報表數(shù)據(jù)的總結(jié),如金額、總?cè)藬?shù)等。本系統(tǒng),對同一報表數(shù)據(jù)設(shè)計了2種顯示樣式:橫向和縱向。
4.1 橫向顯示
XSL樣式表本質(zhì)上是一個XML文件,因此,它遵循XML的所有規(guī)則和格式。XSL樣式文件首先定義stylesheet元素,它是XSL文件的根元素,然后使用template元素定義輸出部分的模板,在模板里面對報表標(biāo)題、頁頭、報表頭、報表體、報表匯總帶、頁尾進(jìn)行設(shè)計。其中報表體部分使用for-each元素對是員工信息表的行進(jìn)行循環(huán)處理,然后用value-of元素返回節(jié)點的值,即員工號、姓名等員工信息的值,匯總帶部分使用count 函數(shù)統(tǒng)計報表本頁人數(shù)和報表總?cè)藬?shù)。以下是部分代碼: