鞠宏軍,杜麗娟
(華北科技學院計算機學院,北京東燕郊 101601)
數(shù)據填報、查詢及Excel導入導出操作是計算機管理信息系統(tǒng)不可缺少的功能。在目前的管理系統(tǒng)中,以上操作涉及的數(shù)據表及字段定義都是預先定義好的。若需要處理管理系統(tǒng)中沒有的數(shù)據表及字段結構,就不能實現(xiàn)。解決的方法是修改系統(tǒng),添加新的數(shù)據表,并擴展對添加數(shù)據表的相應程序功能。但修改程序擴展數(shù)據表操作對于非計算機專業(yè)人員來說,很難實現(xiàn)[1-3]。針對這種問題,本文結合實際應用,介紹了一種以Asp.net為開發(fā)工具,以Oracle為后臺數(shù)據庫的通用數(shù)據填報系統(tǒng),可以在不修改任何程序的情況下,由系統(tǒng)管理員通過功能菜單自由添加數(shù)據表、定義數(shù)據字段;客戶端自動生成相應填報表格界面,用戶可以自由添加、修改、刪除數(shù)據,也可以通過下載Excel模板,上傳Excel數(shù)據文件,實現(xiàn)批量數(shù)據填報;同時系統(tǒng)管理員也可以對填報的數(shù)據表進行后臺維護、自定義組合查詢及Excel導出[4-5]。
系統(tǒng)設置填報系統(tǒng)表,用于管理員定義系統(tǒng)名稱、查看數(shù)據表填報狀態(tài)等信息,具體字段設計如表1。
表1 填報系統(tǒng)表
為實現(xiàn)填報系統(tǒng)字段的自定義,設置字段表存儲各系統(tǒng)的字段名稱、字段類型、數(shù)值小數(shù)位數(shù)、文本字符長度等,其中zdmc存儲中文名稱用于顯示,zd為系統(tǒng)自動生成,用于內部建表、查詢等操作。具體字段設計如表2。
系統(tǒng)管理員在表1中添加某填報系統(tǒng)名稱,然后在表2中定義該系統(tǒng)數(shù)據表的字段信息。定義字段結束后,生成相應的數(shù)據存儲表,存儲表表名采用tbxt_sjb+系統(tǒng)表名id,如tbxt_sjb0001、tbxt_sjb0002等;自動生成的數(shù)據表字段為表2中預定義的d001、d002……。
系統(tǒng)功能分管理端和客戶端兩部分。管理端主要實現(xiàn)填報系統(tǒng)管理、數(shù)據字段定義、數(shù)據維護、自定義組合查詢及導出等操作;客戶端只有數(shù)據填報功能。根據系統(tǒng)使用流程,各功能界面設計如下:
系統(tǒng)管理員維護系統(tǒng)列表,可以添加、刪除系統(tǒng)名稱,查看系統(tǒng)數(shù)據表創(chuàng)建狀態(tài)及使用狀態(tài),也可以設置系統(tǒng)正在使用或暫停使用,系統(tǒng)管理界面如圖1所示。定義好的系統(tǒng)可以在圖2中定義數(shù)據字段。
系統(tǒng)管理員添加系統(tǒng)、定義字段后,點擊創(chuàng)建數(shù)據表,系統(tǒng)自動創(chuàng)建數(shù)據表和對應的Excel數(shù)據模板。在客戶端,用戶選擇某填報系統(tǒng)后顯示出對應數(shù)據表格,此時既可以直接進行數(shù)據添加、刪除、修改等維護操作,也可以下載Excel模板進行批量數(shù)據導入[6-8]。系統(tǒng)數(shù)據填報界面如圖3,模板下載、數(shù)據粘貼及上傳界面如圖4、圖5、圖6。
用戶在客戶端填報數(shù)據完成之后,系統(tǒng)管理員可以在后臺進行數(shù)據修改、Excel導出、數(shù)據清空等維護操作;也可以對數(shù)據進行自定義組合查詢,將需要的結果導出到Excel表中[9]。后臺數(shù)據維護界面如圖7,自定義查詢界面如圖8。
系統(tǒng)開發(fā)采用目前較為流行的B/S模式,開發(fā)工具為Visual Studio 2010,開發(fā)語言使用C#,后臺數(shù)據庫采用Oracle 11g[10-11]。
數(shù)據表的動態(tài)創(chuàng)建,是根據管理員對系統(tǒng)和字段的定義,動態(tài)生成SQL CREATE TABLE語句實現(xiàn)。具體關鍵代碼如下:
圖1 填報系統(tǒng)列表
圖2 系統(tǒng)數(shù)據字段定義
圖3 數(shù)據維護界面
圖4 模板下載
圖5 模板數(shù)據粘貼
圖6 模板數(shù)據上傳
圖7 后臺數(shù)據維護
圖8 自定義組合查詢及Excel導出
其中ExcelMBCreate()函數(shù)創(chuàng)建模板及后期的Excel數(shù)據導入、導出操作,采用在.Net平臺上調用Office應用程序對象模型和相關的程序集實現(xiàn),具體實現(xiàn)類似于VBA編程。
系統(tǒng)中的自定義組合查詢,采用和創(chuàng)建數(shù)據表類似的思想,動態(tài)生成SQL查詢語句實現(xiàn)。
本文主要闡述了基于Asp.net的通用數(shù)據填報系統(tǒng)的設計與實現(xiàn),系統(tǒng)實現(xiàn)了數(shù)據表字段自定義、輸入界面及模板動態(tài)生成、自定義組合查詢、查詢結果的Excel動態(tài)生成及導出等功能。系統(tǒng)設計中采用的字段動態(tài)定義、數(shù)據表動態(tài)生成、SQL動態(tài)生成、Excel處理等技術,解決了傳統(tǒng)管理信息系統(tǒng)擴展性、靈活性差的問題,具有一定的先進性、實用性和推廣價值。
[1] 鞠宏軍,杜麗娟.基于Web的期末考試考務管理系統(tǒng)的設計與實現(xiàn)[J].華北科技學院學報,2013,4:63-67.
[2] 鞠宏軍,杜麗娟.Web表格批量數(shù)據錄入的控制及實現(xiàn)[J].電腦知識與技術,2012,3:1473-1477.
[3] 馬珊丹.學分制下成人高教課程重修信息管理子系統(tǒng)的設計[J].湖北大學成人教育學院學報,2012,12:32-34.
[4] 林偉.基于Asp.net與Oracle的通用多媒體數(shù)據處理[J].電子知識與技術,2011,8:53-56.
[5] 余勇智.通用試題庫系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2013.
[6] 鄭齊心.ASP.NET項目開發(fā)案例全程實錄[M].北京:清華大學出版社,2011.
[7] 炎士濤.ASP.NET項目開發(fā)案例精粹[M].北京:清華大學出版社,2011.
[8] 洪石丹.ASP.NET范例開發(fā)大全[M].北京:清華大學出版社,2011.
[9] 龐婭娟,房大偉.ASP.NET從入門到精通[M].北京:清華大學出版社.2012.
[10] 張領.ASP.NET項目開發(fā)全程實錄[M].清華大學出版社,2012.
[11] 余金山.ASP.NET 2.0+SQL Server 2005企業(yè)項目開發(fā)與實戰(zhàn)[M].電子工業(yè)出版社,2012.