吳昶成,談華宇,邱小平(湖北師范學院,黃石 435000)
科研管理系統(tǒng)中動態(tài)表單技術的應用與實現(xiàn)
吳昶成,談華宇,邱小平
(湖北師范學院,黃石435000)
眾所周知,在信息管理系統(tǒng)中,用戶經(jīng)常需要通過固定格式的表單來收集填寫各種的信息資料,如科研成果信息、教師個人信息等。但隨著科研管理工作的深入,用戶對表單的需求也不斷變化,格式單一固定的表單已無法滿足用戶的需求。因此,本文設計了基于JSON數(shù)據(jù)格式和Bootstrap前端框架來實現(xiàn)動態(tài)表單的三層架構系統(tǒng),同時系統(tǒng)完成了數(shù)據(jù)和表單分離、用戶常用信息自動填寫、收集的數(shù)據(jù)信息以xls或doc格式導出等功能的實現(xiàn),該系統(tǒng)有效地解決程序修改困難,可擴展性差,復用性不好等問題。
(1)系統(tǒng)架構設計
本系統(tǒng)以Visual Studio 2013為開發(fā)平臺,結合Microsoft SQL Server 2008后臺數(shù)據(jù)庫,采用表示層(Presentation Layer)、業(yè)務邏輯層 (Business Logic Layer)、數(shù)據(jù)訪問層(Data Access Layer)來搭建系統(tǒng)架構,如圖1所示。
采用三層架構使得層與層之間相互獨立,可維護性、可擴展性提高,結構更加清晰,耦合性低,有利于開發(fā)任務的同步進行,適應需求變化。系統(tǒng)在表單設計中過程每新建一個表單則會自動在數(shù)據(jù)庫中新建對應的用于存儲用戶填寫表單信息的關系表。其中表現(xiàn)層(Presentation Layer)展示UI界面,主要接受用戶請求、返回請求結果的展現(xiàn)和給用戶提供交互消息提示。業(yè)務邏輯層(Business Tier)主要向數(shù)據(jù)層發(fā)送請求,返回給表示層數(shù)據(jù)層返回的數(shù)據(jù),有時將數(shù)據(jù)層返回的數(shù)據(jù)進行處理,例如用戶登錄、權限分配。數(shù)據(jù)訪問層(Data Tier)主要接收來自業(yè)務邏輯層的請求,對數(shù)據(jù)庫進行相應的增刪改查,并返回給業(yè)務邏輯層數(shù)據(jù)。
用戶如果要進入系統(tǒng),首先要輸入用戶名和密碼進行登錄,由業(yè)務邏輯層判斷該用戶名是否存在,若存在則判斷密碼是否正確,若正確則成功登錄本系統(tǒng),并將該用戶的個人信息存入Session[“User”]中。按退出按鈕即可注銷系統(tǒng),注銷成功后Session[“User”]清空,返回到登錄界面。
系統(tǒng)登錄成功后,根據(jù)當前用戶的角色來判斷對應的系統(tǒng)操作權限。如果是普通科研人員且在表單提交的截止時間之前,即可按照表單中的要求填寫信息,通過系統(tǒng)信息驗證后,保存提交。如果是管理員除了可以填寫表單外,同時還可以管理表單,包括表單設計、表單保存、表單發(fā)布和刪除等操作。
圖1 系統(tǒng)架構設計圖
(2)系統(tǒng)流程設計
圖2 系統(tǒng)流程設計圖
(3)系統(tǒng)角色權限設計
用戶的權限分為以下幾項:①設計動態(tài)表單;②表單的管理(再編輯、刪除等);③表單的發(fā)布(讓指定的人和部門去填寫);④填寫表單。
顯然為了防止系統(tǒng)被惡意破壞,讓普通用戶獲取表單的管理權限以及表單的發(fā)布權限并不合理,所以目前只有兩個角色:管理員:可以設計表單,發(fā)布表單(可選擇相應的填寫人),也填寫表單。科研人員:普通用戶,只可以填寫已發(fā)布的表單。
(4)數(shù)據(jù)庫設計
User用戶表、ID主鍵、UserName用戶名、RealName真實姓名、Gender性別、Birthday生日、CardID身份證號、Birthplace籍貫、Nationality民族、SectionId部門表外鍵、XueLi學歷、ZhiWu職務、JiBie級別、DangZheng黨政、WorkBeginDate工作開始時間、Tellphone電話、E-mail郵箱、Password密碼、Status狀態(tài)、Credit操作積分、QQ、Major專業(yè)方向、Introduction介紹、PhotoPath圖片地址、RoleID權限ID。用戶表如此詳細是因為當動態(tài)表單中有用戶已有信息時,可以不用用戶填寫直接寫入表單中。
Role權限表、ID主鍵、RoleName權限名、CreateUserID創(chuàng)建用戶ID、CreateDate創(chuàng)建時間。目前只有兩種角色,學生和管理員。
Section部門表、ID主鍵、ParentID父節(jié)點、Section-Name部門名稱。
2.1表單管理
管理員擁有表單管理權限,可以將設計好的表單進行再編輯或者刪除。選擇編輯則進入設計表單頁面(以當初保存的表單形式返回),刪除則將該表單徹底刪除掉。
圖3 動態(tài)表單提交界面
所有用戶都可以進行待填表單的填寫提交,選擇可以填寫的表單進行填寫。如果是用戶信息(User表中)已有的部分,例如姓名、年齡、性別等可以不用用戶填寫,系統(tǒng)會自動判斷表單中的待填寫內容,如果有則將空白內容替換為用戶信息。在表單設計中還添加了數(shù)據(jù)驗證,例如輸入的電話號碼或者郵件之類的,會進行JavaScript語句判斷輸入的格式是否正確或輸入內容是否正確(數(shù)字還是中文)。
本文主要闡述了動態(tài)表單設計系統(tǒng)的設計思路和實現(xiàn),基本的用戶設計表單和用戶填寫收集數(shù)據(jù)功能,以及登錄用戶的權限判斷。該系統(tǒng)能夠解決科研人員對科研信息管理系統(tǒng)中表單格式頻繁變化而不斷重新設計的問題,并且可以收集用戶提交的信息。下一步的研究方向是重點提高用戶界面的易用性,以及對用戶填寫的信息進行服務器端驗證,如防止SQL注入攻擊等工作。
[1]劉友生,陳一平,胡浪.基于數(shù)據(jù)表的動態(tài)表單處理技術[J].計算機工程與應用,2005,40(34):199~201
[2]向宏,馬智驄,胡海波.基于虛擬表的動態(tài)表單設計與實現(xiàn)[J].重慶工學院學報:自然科學版,2009,23(2):104~108
[3]張佳強,王士同.信息管理系統(tǒng)動態(tài)表單技術的研究與實現(xiàn)[J].計算機應用與軟件,2010,27(8):29~32
Management System;Dynamic Form;Three-Layer Architecture
Application and Implementation of Dynamic Form Technology in Scientific Management System
WU Chang-cheng,TAN Hua-yu,QIU Xiao-ping
(Hubei Normal University,Huangshi 435000)
1007-1423(2015)10-0078-03
10.3969/j.issn.1007-1423.2015.10.022
談華宇(1992-),男,湖北孝昌人,本科,研究方向為前端開發(fā)
吳昶成(1993-),男,江西南昌人,本科,研究方向為后臺開發(fā)
邱小平(1996-),男,武漢新洲人,本科,研究方向為后臺開發(fā)
2015-02-26
2015-03-31
指導老師:李光敏
針對用戶不斷變化的業(yè)務需求,固定格式的表單錄入系統(tǒng)已無法滿足需求的現(xiàn)狀,提出基于JSON的動態(tài)表單技術在科研管理中的實現(xiàn)思路,設計并實現(xiàn)動態(tài)表單的結構存儲、數(shù)據(jù)收集和數(shù)據(jù)導出的功能。并詳細闡述系統(tǒng)的三層架構、用戶角色設計、數(shù)據(jù)庫設計等方面的實現(xiàn)細節(jié)和方法。
管理系統(tǒng);動態(tài)表單;三層架構
湖北師范學院2014年本科生科研立項項目(No.2013ZD50)
According to the change of user service for form,designs dynamic form designer oriented Web,realizes function that dynamic form designing and user filling.The part of three-layer architecture,role design,describes database design and other aspects of system in details,the system provides user with function that dynamic form designs simply and collecting information.