
1 開發系統的目的和意義
很多大中型企業都會為員工組織各種培訓課程,有的甚至有具體的課時要求。傳統的培訓流程一般先由人事部門下發培訓通知到各部門,員工填寫報名表,人事部門匯總并安排課程和考試。這樣的形式往往是一級一級地下發通知,再一級一級地上交報名表,以及組織一場又一場的考試。工作效率非常低,而且不便于匯總和分析員工培訓情況和考試成績。為此,我們開發了企業網上培訓系統,為企業提供一個靈活方便的內部培訓、學習交流和培訓管理的平臺。人事部門可以利用此系統發布培訓通知、培訓課程信息、管理職工培訓檔案,企業員工可以瀏覽培訓通知和培訓課程情況,并根據要求報名參加指定課程的培訓。培訓課程結束后,職工可以參加課程的考試,還可以對課程情況發表自己的看法。
2 系統設計
2.1 系統開發平臺的選擇
為了便于企業職工能靈活方便地使用本系統,不受時間和地域的限制,企業職工培訓管理系統采用了目前流行的以Internet為基礎的瀏覽器/服務器(Browser/Server)模式。該模式操作簡單、方便,并且系統結構簡單,容易維護。
本系統在主流的操作系統平臺下,采用ASP.NET開發技術,在Visual Studio 2008開發環境下,使用C#語言和SQL Server 2005數據庫進行開發。系統通過Web服務器發布,職工、人事部門員工都可以通過瀏覽器完成各自的工作。該系統主要實現了信息發布、在線報名、信息審核、在線培訓、在線考試、人事部門以及職工個人的培訓總結,以及相應的信息管理與維護。
2.2 系統功能模塊設計
根據對企業培訓管理的一般業務流程的考察和了解,企業網上培訓的流程設計如下:
首先由人事部門的員工進行培訓課程的組織和管理、培訓教師的組織和管理、員工基本信息的管理、網上發布培訓通知和培訓課程的信息;然后企業員工在網上瀏覽培訓課程的信息,并根據要求進行網上報名;人事部門的員工在進行課程報名的審核和匯總工作并發布一些相關的上課通知、進行課程題庫的編輯和整理等工作,最后進行諸如培訓考試、總結等。根據流程,系統的功能模塊結構圖如圖1所示。
企業培訓系統分為前臺操作和后臺管理兩大部分。后臺管理模塊主要供人事部門使用,包括課程管理、教師管理、員工管理、試題管理、報名管理、通知管理、培訓檔案管理等。課程管理是人事部門員工增加培訓課程信息、修改培訓課程信息等。教師管理是增加教師信息、修改教師信息等。員工管理是增加和修改員工信息。試題管理是增加和維護培訓課程的題庫。報名管理是人事部門匯總和審核員工的報名信息。通知管理是增加和修改通知信息。檔案管理是查詢和匯總員工培訓課程的考試信息以及已經通過的培訓內容的信息。
前臺操作模塊主要供企業員工使用,包括查看通知、查看課程、在線報名、在線考試、過往檢索和填寫反饋意見等。查看通知是企業員工可以瀏覽和搜索人事部門發布的通知。查看課程是可以瀏覽和搜索培訓課程的信息。在線報名是員工可以報名參加某培訓課程。過往檢索是員工可以搜素和瀏覽已經通過的培訓內容和培訓成績信息。在線考試是員工在結束培訓課程以后,進行該課程的考核。
2.3 數據庫設計
根據系統的功能模塊設計,系統創建8張數據表,分別為管理員表、教師表、培訓課程表、課程詳情表、員工信息表、報名表、試題表、通知表。每張表的具體字段和功能如下。
(1) 管理員表:用來存儲人事部門的員工信息,包括職工號、密碼、姓名、性別、職務、電話、職稱、任職地、工齡、身份證號等字段。
(2) 教師表:用來存儲培訓教師的信息,包括臨時工號、姓名、性別、密碼、職稱、電話、身份證號、專長、專業等字段。
(3) 培訓課程表:用來存儲培訓課程的信息,包括課程編號、課程名稱、培訓日期、培訓人員、培訓要求、培訓內容、培訓教師、培訓教材、輔助材料等字段。
(4) 課程詳情表:用來存儲課程的上課時間地點等信息。包括課程編號、課程名稱、授課地點、授課時間等。
(5) 員工信息表:用來存儲員工的信息,包括工號、性別、密碼、工齡、任職地、部門、電話、職務、職稱等。
(6) 報名表:用來存儲員工報名的情況,包括工號、課程編號、報名時間、是否通過、審核日期、培訓成績、考試時間等。
(7) 試題表:用來存儲課程的考題,包括題目編號、課程編號、課程名稱、考題類型、考題內容、參考答案、分值等。
(8) 通知表:用來存儲有關培訓課程的通知和新聞。包括編號、主標題、副標題、發表時間、摘要、內容等。
3 主要功能的實現
3.1 用戶權限的設置
對于沒有登錄的用戶,可以瀏覽培訓的課程信息和培訓通知信息。要想報名參加課程就必須利用職工號和系統預設的密碼進行登錄。登錄以后,用戶可以修改個人的相關信息和密碼,可以報名參加培訓課程和參加考試,維護報名信息等。人事部門負責相關培訓的系統管理人員采用專門的頁面登錄系統,進行員工管理、課程管理、通知管理、報名管理等工作。由于系統的用戶都是企業內部職工,所以系統直接將用戶的用戶名設置為職工號或者臨時職工號,而不需要注冊。
系統在每一個只有登錄后才能使用的頁面中都增加了驗證,代碼為:
if (Session["userName"] == "" || Session["userName"] == null)
Response.Write("<script>alert('請先登錄,再報名');window.close();</script>");
為了防止有人惡意進行登錄,系統在所有的登錄頁面都采用了驗證碼技術。系統中的驗證碼是隨機產生的4位數字組成的一副圖片,圖片里加上了一些干擾像素。用戶在登錄時,必須輸入與圖片中數字相同的驗證碼才能進行登錄,然后連接數據庫檢查用戶輸入的職工號和密碼是否正確。
3.2 前臺操作部分
前臺操作部分主要有查看課程、查看通知、查看已通過的培訓、報名培訓某課程、參加考試、發表留言等模塊。其中報名培訓某課程和參加考試模塊有一定難度,在此進行介紹。
在線報名模塊中,只有員工用職工號和密碼成功登錄以后,才能報名。只要是沒有獲得批準的課程,員工還可以選擇退報。在員工進行培訓報名時,注意不能重復報名,也就是同一名員工對于同一個課程只能報名一次。實現上主要是通過連接數據庫,并用員工的職工號和所有選擇的課程進行報名數據表的查詢,如果查詢結果不為空則表示已經報過此課程了,否則表示沒有報過此課程。防止重復報名的代碼如下:
OleDbConnection myCon = new OleDbConnection(conn);
myCon.Open();
string sql="select * from 報名 where 用戶姓名='"+Session["userName"].ToString()+"' and 課程名稱='"+Request.QueryString["km"].ToString()+"'";
OleDbCommand myCmd = new OleDbCommand(sql,myCon);
OleDbDataReader dr = myCmd.ExecuteReader();
if (dr.Read())
{ myCon.Close();
Response.Write("<script>alert('您已經報過此課程了!');window.close();</script>");
}
在確認了員工沒有參加過此課程的培訓以后,就可以報名了。報名培訓某課程的實現就是向報名表中插入一行新數據,職工號字段為登錄時放入Session的值,課程號為用戶選擇的課程編號,報名時間為系統當前時間,是否審核字段為“未審核”。員工可以在“查看報名”的模塊中,查看已經報名的課程,也可以進一步了解課程的具體情況,如課程上課時間、地點等。
員工只能參加已經報名并且允許考試的課程的考試。進入考試后,系統會自動從題庫中抽取該課程的試題并形成試卷。員工答完題,點擊交卷按鈕之后,系統能夠根據標準答案自動進行成績判定,并將成績顯示給用戶。
3.3 后臺管理
后臺管理部分包括員工管理、教師管理、課程管理、報名管理、通知管理、試題管理、檔案管理等。其中員工管理、教師管理、課程管理、通知管理、試題管理分別對員工的基本信息、教師的基本信息、課程的信息、通知信息、試題信息進行增加和修改等維護工作,在程序實現上較為簡單,主要是應用了對數據庫的增加、修改和刪除、查詢等操作。
報名管理模塊主要是對報名的信息進行審核和批準報名,并進行報名匯總。人事部門員工根據課程的具體要求,對報名的員工信息進行審核,符合要求的批準報名。在程序的實現上,主要是通過Update語句修改報名表中相應行的“是否”審核字段,如果批準,則該字段設為“批準”,否則設為“未批準”。另外,為了方便生成課程的名冊,系統能自動將當前已經被批準的人員進行匯總,并可以轉換到Excel表中,方便進行排版和打印。檔案管理模塊是對員工參加的培訓情況進行查詢和匯總,系統設定多種查詢方式,可以根據查詢結果進行多種類型的匯總和打印。
4 總 結
基于Web的職工培訓管理系統可以使得職工報名、培訓和考試更方便,而且可以使得人事部門非常便捷地管理職工的培訓檔案,從而簡化了培訓流程,提高了培訓數據采集與統計的效率。