基於WWW的勞資人事管理系統

勞資人事管理是公司企業內部很重要的一個管理事項,但目前大多公司內部勞資人事的管理,基本上是手工操作或是基於dos下的套用,這樣對信息的管理者有諸多不便,有的雖然是用foxpro、visual foxpro開發,但由於開發工具本身的限制,對網路功能的支持程度不是很強,為以後軟體升級到網際網路帶來了麻煩。因此有必要開發一個基於網路的勞資人事管理系統,能在網路環境下實現數據的錄入、插入、刪除、查詢、統計、更新、列印等功能。同時,為了信息的保密與安全,系統還要提供一定的安全機制。

Powerbuilder6.5是美國著名的Powersoft公司推出的廣泛使用於客戶機/伺服器體系結構下的應用程式開發工具,具有完整的Web套用開發功能。它同時支持多種關係資料庫管理系統,通過微軟公司的ODBC接口和專用的大型資料庫接口,能夠高速讀取資料庫中的數據。本系統就採用Powerbuilder6.5開發,伺服器端的作業系統為Windows NT 4.0,客戶端作業系統為Windows 98。

系統功能的分析及規劃

(1)系統功能的分析

公司內部的勞資人事的管理,從大的方面分主要集中在公司職員的個人情況、工資細目、調入調出及用車等。所以該系統主要是實現對數據的錄入、插入、

刪除、網上查詢、統計、更新、列印等功能。其次,

為了信息的保密與安全,系統還要提供一定的安全機制。

(2)系統功能的規劃

根據以上系統功能的分析,本系統決定採用MDI風格,它主要分為以下幾個模組,其中勞資人事管理系統的父視窗的功能結構圖如圖1所示。

檔案模組:此模組實現本系統對數據的打開、保存、列印預覽、列印及用戶管理等功能,並可由此退出系統。

信息管理模組:此模組實現系統的信息管理,包括對職工情況一覽表、職工調入調出情況表、職工工資表及其它各表的信息數據的插入、刪除、修改、保存等功能。

查詢模組:此模組實現本系統的查詢功能,能將個人的基本情況、調入調出情況、工資情況等檢索出來,並可實現多條件查詢和模糊查詢。

統計模組:此模組用於對資料庫中的信息數據按照一定的規則進行統計。

系統服務模組:此模組用來系統管理人員設密碼和對系統的功能和開發信息進行介紹等。

對於系統中的各表,其基本信息管理功能結構圖如圖1所示:

圖1. 職工基本信息管理功能圖

3 根據用戶要求設計數據表

數據表的建立是應用程式開發過程中的非常重要的一個環節,必須清楚每一模組要操縱的數據是那些,以及數據間的相互關係,然後建立數據表。勞資人事管理系統要求能對職工的個人情況、調入調出情況、工資情況等進行管理,在職工個人情況表下面,還有象維護職務表,維護學歷表等等。同時還要對系統設定安全機制,為實現以上要求,下面僅以人事、工資、密碼錶為例介紹一下各表的結構:

職工情況一覽表

它包括職工標號、姓名、性別、政治面貌等信息。其結構如下:

code char(4) not null, //職工編碼

name char(8) null, //姓名

sex char(2) null, //性別

politics char(8) null, //政治面貌

birthday data null, //出生日期

work_time data null, //參加工作時間

post_zhw char(10) null, //職務

address char(30) null, //家庭住址

該表主鍵為職工編號(code)。

職工工資表

其結構主要包括職工所得的各種工資福利等。

Code char(4) not null, //職工編號

Name char(8) null, //姓名

g_pay integer null, //崗位工資

j_pay integer null, //技能工資

w_pay integer null, //物價補

s_pay integer null, //書報費

ws_pay integer null, //衛生費

xh_pay integer null, //小孩補貼

a_pay integer null, //工齡工資

ht_pay numeric(6,2) null, //契約補貼

jj_pay numeric(8,2) null, //獎金

total_pay numeric(8,2) null, //工資總額

該表主鍵為職工編號code。

系統密碼錶

user_name char(10) not null, //用戶名稱

user_word char(10) not null, //用戶密碼

user_qx char(2) not null, //用戶許可權

系統的網路實現

由於Powerbuilder具有完整的web套用開發功能,由它編制的軟體可以方便的同伺服器端的資料庫協同工作,構成Client/Server工作方式,它使用的是業界熟悉的Web標準(HTML和Java),通過端對對的設計、調試和提交,可以控制Web套用的整個生命周期。本系統客戶套用和伺服器套用都採用Powerbuilder開發。其中伺服器端的程式是實現中的重點部分,其內容主要是生成SQL語句對資料庫操作及對所得的數據進行處理。它主要分為監聽客戶連線、處理客戶請求、避免死鎖、向客戶推送訊息等。本系統的實現平台關係圖如圖2所示:

圖2. 實現平台關係圖

關鍵問題的解決

(1) 安全機制問題

在進入系統之前,要進行身份確認,只有用戶名和用戶密碼都相符的用戶方可進入本系統。為了防止不合法用戶對數據的察看和修改,本系統把用戶分為三個級別:超級、可修改和唯讀用戶,即一二三級用戶。超級(一級)用戶不僅擁有對數據的查詢、修改許可權,還對用戶的使用許可權進行控制,可以設定用戶名、密碼和其許可權,還可以對紀錄進行增加、刪除、修改等操作。可修改(二級)用戶對數據可以查詢、列印,還可以對紀錄進行增加、刪除、修改等操作。唯讀(三級)用戶只擁有對紀錄的瀏覽、查詢和列印許可權。當用戶要進入系統是必須先輸入用戶名和密碼,按“確認”按鈕後,系統辨別用戶身份,對合法用戶根據用戶的許可權級別賦予相應的使用功能。

對任一數據列進行排序的問題。

熟悉Windows的用戶一定對資源管理器不陌生,當目錄或檔案很多時,當然會想到使用排序來儘快定位目標,你只要用滑鼠在資源管理器上端的name、size、type或modified中的任意一項點擊,它就會將此項按升序或降序排列。同樣地,在PowerBuilder中,如果數據比較多,我們也可以採用這種辦法來排序以儘快查找記錄。

本系統以視窗w_rsh為例,要實現這樣的排序功能,首先定義兩個實例變數String pre_col=“”和Int click_time=0,它們分別記錄上次點擊的列和點擊同一列的奇偶數。然後在dw_1的Clicked事件中添加如下腳本:

String clicked_pos,col,format

Long il_pos

clicked_pos = dwo.Name //取點擊的對象

il_pos = Pos(clicked_pos,‘_t‘) //對於列標題,

//取得的對象是列名+”_t”

If il_pos >0 Then

col = Left(clicked_pos,il_pos -1)

If col=pre_col Then

If click_time=0 Then

click_time = 1

format = col+" A"

Else

click_time=0

format = col+" D"

End If

Else

click_time = 0

format = col+" A"

End If

pre_col = col

dw_1.SetSort(format)

dw_1.Sort()

End If

採用上面的方法可實現象Windows中資源管理器靈活排序的功能,從而使所要瀏覽的數據更加一目了然。

數據視窗控制項的編輯風格的使用

本系統對日期型、需漸變數等數據的輸入採用了編輯掩碼控制項editmask,這樣就可以大大方便用戶的操作。對於象性別這樣只有男、女兩個值的,則採用單選鈕radiobutton形式,用戶在錄入時只需要滑鼠點擊選鈕即可。在設定條件時的值段名和有固定職供用戶選擇的數據使用了下拉列表框(droplistbox),用戶只需選擇所要輸入的值即可。

6 結束語

隨著計算機的發展與普及,以及網際網路技術的擴展,日常勞資人事管理必將實現無紙化辦公,並且加入到公司內部的Intranet或者是Internet上去,實現數據的共享,這樣有利於勞資人事信息在單位內部的查詢,提高了數據資源的利用,並且能及時的得到更新,不需要象過去那樣浪費大量的人力物力去進行抄寫,提高了工作的效率。