周夢熊,包 健,張萬軍(杭州電子科技大學(xué)軟件工程學(xué)院,浙江杭州 310018)
動態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用*
周夢熊,包 健,張萬軍(杭州電子科技大學(xué)軟件工程學(xué)院,浙江杭州 310018)
針對教學(xué)管理中固定表單技術(shù)不能滿足日益變化的需求問題,提出了基于XML的動態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用思路,同時闡述了動態(tài)表單的存儲、重現(xiàn),以及表單數(shù)據(jù)的訪問和Excel文件形式的表單數(shù)據(jù)導(dǎo)出等技術(shù),并給出了設(shè)計上的關(guān)鍵細節(jié)和方法。
教學(xué)管理;動態(tài)表單;XML
眾所周知,隨著高校的不斷擴招,教學(xué)規(guī)模也隨之擴大,相應(yīng)的教學(xué)管理工作也變得日益繁瑣,特別是針對需求靈活的一些應(yīng)用,簡單的一成不變的固定表單技術(shù)已經(jīng)不能滿足工作上的需要,因此,動態(tài)表單技術(shù)在教學(xué)管理中的需求就顯得越來越迫切。
在教學(xué)管理中,讓管理人員頭疼的問題,就是需求是不斷變化的,特別是表單項的更改,對于沒有軟件開發(fā)經(jīng)驗的管理人員來講惟一能做的只有聯(lián)系軟件開發(fā)人員進行程序修改,同時還要修改數(shù)據(jù)表,工作量會比較大,這樣系統(tǒng)維護成本比較高。
鑒于此,本文提出了基于XML的動態(tài)表單的實現(xiàn)技術(shù),實現(xiàn)了數(shù)據(jù)和表單的分離,方便表單重現(xiàn)和數(shù)據(jù)的存儲,此外,還支持表單數(shù)據(jù)以Excel文件形式導(dǎo)出,方便辦公人員的進一步操作。
1.系統(tǒng)總體思想
考慮到辦公人員需要對錄入的數(shù)據(jù)進行進一步的分析統(tǒng)計,另外結(jié)合目前關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)操作方便性等特點,系統(tǒng)在設(shè)計時候考慮到了根據(jù)動態(tài)表單自動生成相應(yīng)的數(shù)據(jù)表,這樣最終錄入的數(shù)據(jù)會自動存儲在相應(yīng)的數(shù)據(jù)表,最后可以利用SQL語句進行高效的數(shù)據(jù)操作。
因此,系統(tǒng)在動態(tài)表單的存儲上采用XML文件形式進行存儲,動態(tài)表單所對應(yīng)的用戶提交數(shù)據(jù)采用關(guān)系型數(shù)據(jù)庫進行存儲。
這樣,系統(tǒng)就實現(xiàn)了數(shù)據(jù)和表單的分離,數(shù)據(jù)和表單的單獨管理,同時也實現(xiàn)了在錄入表單數(shù)據(jù)時的表單重現(xiàn)。
2.系統(tǒng)總體流程
本文所設(shè)計的系統(tǒng),其總體運行流程如圖1所示。
首先是登錄操作,根據(jù)權(quán)限判斷,如果是管理員,那么可以選擇表單設(shè)計或者表單操作。
如果是表單設(shè)計,那么就進入到表單設(shè)計界面,設(shè)計完畢后會自動生成表單并以XML形式進行存儲,同時會在關(guān)系型數(shù)據(jù)庫中生成相應(yīng)的數(shù)據(jù)表 (用來存儲用戶提交表單的數(shù)據(jù))。
如果是表單操作,那么可以選擇查看、刪除和導(dǎo)出表單三項操作中的任何一項。如果是查看操作,則可以瀏覽用戶提交表單的數(shù)據(jù);如果是刪除操作,則刪除相應(yīng)的表單,同時刪除生成的相應(yīng)數(shù)據(jù)表和數(shù)據(jù);如果是導(dǎo)出操作,則將以Excel文件形式導(dǎo)出該表單相關(guān)的用戶提交數(shù)據(jù)。
如果是普通用戶,那么就可以進行表單數(shù)據(jù)的錄入操作,根據(jù)給定的表單選擇進入后,系統(tǒng)會讀取XML文件形式的表單進行重現(xiàn),之后正常錄入數(shù)據(jù),直到提交表單結(jié)束操作。
這里以學(xué)生考勤表單的動態(tài)設(shè)計在教學(xué)管理中的應(yīng)用為例,闡述一些設(shè)計上的關(guān)鍵技術(shù)和細節(jié)。
1.表單設(shè)計
如圖2所示,是一個表單設(shè)計的可視化界面。
用戶首先輸入表單名,這里的表單名可以采用中英文(最后以該名稱生成相應(yīng)的數(shù)據(jù)表),接著輸入表單文件名,即最后生成的XML形式表單文件的名稱。
接下去就是表單中的表單項設(shè)置,如圖2所示,這里設(shè)計了一個學(xué)生考勤的表單,表單項包含學(xué)號、姓名、類型(遲到、早退和曠課)、節(jié)數(shù)(1節(jié)、2節(jié)、3節(jié)和4節(jié))、備注。
下拉列表里是相應(yīng)的表單項類型,比如文本框、密碼框、單選框、復(fù)選框和下拉列表等,在設(shè)計過程中,有選擇性地設(shè)置對應(yīng)的表單項類型。假設(shè)一般課程為1~4節(jié),那么“節(jié)數(shù)”表單項這里就應(yīng)該選擇單選框。
在技術(shù)實現(xiàn)上,考慮到交互操作的靈活性,這里采用JavaScript技術(shù)。當點擊“增加表項”后會自動生成新的一行表項;點擊“刪除表項”后會刪除當前表單項;當選擇“單選/復(fù)選/下拉列表”時會有 “增加屬性”的子項。JavaScript技術(shù)可以使得交互操作非常靈活方便。
2.表單和數(shù)據(jù)的存儲
為了實現(xiàn)表單和數(shù)據(jù)的分離,表單采用XML文件形式進行存儲,根據(jù)前面學(xué)生考勤表單的設(shè)計,相應(yīng)地會生成一個kaoqin.xml文件。
在數(shù)據(jù)庫中有兩個固定的表,login表用來存儲登錄的賬號,table表用來存儲表單名稱和相應(yīng)的數(shù)據(jù)表名的關(guān)聯(lián)記錄。
根據(jù)表單的設(shè)計,數(shù)據(jù)庫中會生成一個學(xué)生考勤表,它是根據(jù)表單名稱動態(tài)生成的數(shù)據(jù)表,表的字段結(jié)構(gòu)和表單項一一對應(yīng),用來存儲用戶提交的表單數(shù)據(jù)。
用戶的表單提交數(shù)據(jù)及其存儲情況,如圖3所示。
以上就是表單和數(shù)據(jù)的分離設(shè)計。
3.表單重現(xiàn)
表單重現(xiàn),顧名思義,就是根據(jù)之前表單的定義,在使用中將表單重新展現(xiàn)給用戶的一個過程。
學(xué)生考勤表單的定義文件以kaoqin.xml形式存儲,在表單重現(xiàn)過程中,系統(tǒng)首先讀取XML文件,之后再根據(jù)讀取的內(nèi)容進行判斷并顯示。
表單重現(xiàn)的總體過程如下:
(1)讀入XML文件,緊接著讀取節(jié)點列表,之后再對節(jié)點列表中的一個個節(jié)點數(shù)據(jù)進行分析,即節(jié)點數(shù)據(jù)解析,節(jié)點數(shù)據(jù)解析分兩種情況:“表單項含屬性和不含屬性”。前者比如單選框、復(fù)選框、下拉列表等表單項;后者就是一般的表單項處理。
(2)對于不同的表單項,做出不同的解析處理,最后就可以實現(xiàn)表單的重現(xiàn)。
如圖4所示,是一個完整的學(xué)生考勤表單的重現(xiàn),包含學(xué)號、姓名、類型、節(jié)數(shù)和備注,同時還有提交和重置按鈕。
作為演示,這里簡單填寫了一個表單數(shù)據(jù),數(shù)據(jù)填寫完畢后,點擊提交按鈕,完成數(shù)據(jù)錄入操作,之后就可以在相應(yīng)的數(shù)據(jù)表(學(xué)生考勤表)中看到剛剛錄入的數(shù)據(jù),如圖3所示。
4.表單數(shù)據(jù)導(dǎo)出
在教學(xué)管理當中,經(jīng)常性需要打印數(shù)據(jù)。比如對于學(xué)生考勤來講,除了教師定期上報數(shù)據(jù)外,教學(xué)管理人員還需要打印并請相關(guān)人員簽字備案。
因此,系統(tǒng)也提供了表單數(shù)據(jù)導(dǎo)出的功能,結(jié)合Excel處理數(shù)據(jù)高效快捷等原因,最后,采用Excel文件形式導(dǎo)出表單數(shù)據(jù)。
點擊“導(dǎo)出”操作,表單數(shù)據(jù)導(dǎo)出,打開導(dǎo)出的Excel文件,如圖5所示。
本文設(shè)計并實現(xiàn)了一個通用的動態(tài)表單系統(tǒng),通過學(xué)生考勤表單的動態(tài)設(shè)計及其在教學(xué)管理中的應(yīng)用為例,證明了動態(tài)表單技術(shù)能很好地解決教學(xué)管理中一些實時需求問題,可以大大提高教學(xué)管理人員的工作效率??傊?,在復(fù)雜多變的教學(xué)管理中,動態(tài)表單技術(shù)的應(yīng)用必將發(fā)揮越來越重要的作用。
[1]張佳強,王士同.信息管理系統(tǒng)動態(tài)表單技術(shù)的研究與實現(xiàn)[J].計算機應(yīng)用與軟件,2010.27(8):29-32.
[2]蔣國銀,劉鵬遠.基于XML的動態(tài)表單設(shè)計[J].中國管理信息化,2006.9(9):83-84.
[3]劉友生.基于數(shù)據(jù)表的動態(tài)表單處理技術(shù)[J].計算機工程與應(yīng)用,2004(34):199-201.
(編輯:金冉)
G424
B
1673-8454(2012)01-0074-03
*由浙江省2010年新世紀教改項目“軟件工程專業(yè)CDIO工程教育模式研究與實踐”資助(項目編號:zc2010023)。