[摘 要] 本文使用Visual Basic編程語(yǔ)言,開(kāi)發(fā)和設(shè)計(jì)了工資管理系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了一般工資管理系統(tǒng)對(duì)員工工資信息的瀏覽、添加、刪除、修改和查詢功能,能夠完成對(duì)員工工資的結(jié)算,減少大量的人工操作的工作量,降低數(shù)據(jù)出現(xiàn)錯(cuò)誤的概率,加強(qiáng)工資記錄的安全性和完整性。
[關(guān)鍵詞] 工資管理;VB;設(shè)計(jì);開(kāi)發(fā)
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2013 . 17. 013
[中圖分類號(hào)] F232 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 1673 - 0194(2013)17-0026-04企業(yè)職工工資關(guān)系到每一個(gè)職工的切身利益,是保障企業(yè)穩(wěn)健運(yùn)行的重要環(huán)節(jié)。工資核算是所有單位財(cái)務(wù)部門(mén)最基本的業(yè)務(wù)之一,是一項(xiàng)重要的經(jīng)常性的工作。在傳統(tǒng)的手工方式下,為了完成工資核算,需要財(cái)務(wù)人員花費(fèi)大量的時(shí)間和精力,并且在計(jì)算過(guò)程中非常容易出錯(cuò)。本文基于Visual Basic語(yǔ)言開(kāi)發(fā)的工資管理系統(tǒng)采用計(jì)算機(jī)處理,保證了工資核算的準(zhǔn)確性和及時(shí)性。
1 系統(tǒng)功能與可行性分析
工資管理系統(tǒng)的基本功能就是為企業(yè)提供工資核算和管理的有關(guān)信息,附帶提供有關(guān)職工個(gè)人檔案的基本資料,一方面,通過(guò)各種資料和計(jì)算公式得到每名職工工資數(shù)據(jù);另一方面,通過(guò)工資分?jǐn)倢⒐べY分配到各種費(fèi)用中去。
1.1 系統(tǒng)功能分析
為完成工資管理功能,系統(tǒng)應(yīng)完成的主要功能包括:
1.1.1 系統(tǒng)管理
系統(tǒng)管理包括操作員管理、權(quán)限管理、安全管理等功能,這些功能主要通過(guò)操作員編碼、姓名、權(quán)限以及登錄密碼等來(lái)實(shí)現(xiàn)。
1.1.2 檔案管理
檔案管理包括員工信息管理和部門(mén)信息管理。應(yīng)實(shí)現(xiàn)對(duì)員工和部門(mén)的基本信息的瀏覽、添加、刪除和修改。
1.1.3 工資管理
(1)基本工資設(shè)置:對(duì)員工的基本工資信息進(jìn)行添加、刪除和修改。
(2)考勤信息統(tǒng)計(jì):對(duì)員工的考勤信息進(jìn)行添加、刪除和修改。
(3)工資結(jié)算:根據(jù)員工的基本工資信息和考勤信息,以及本月獎(jiǎng)金和補(bǔ)助等的輸入金額,計(jì)算出員工的個(gè)人所得稅并結(jié)算出該月的工資。
(4)固定工資調(diào)整:對(duì)于企業(yè)員工的固定工資,進(jìn)行統(tǒng)一的調(diào)整。
1.1.4 信息查詢
(1)查詢員工工資信息:按照員工編號(hào)或員工姓名,或二者組合查詢員工的工資信息。
(2)查詢部門(mén)工資信息:按照部門(mén)編號(hào)或部門(mén)名稱,或二者組合查詢工資信息。
系統(tǒng)功能模塊圖如圖1所示。
1.2 系統(tǒng)設(shè)計(jì)可行性分析
1.2.1 經(jīng)濟(jì)可行性
利用VB語(yǔ)言開(kāi)發(fā)的工資管理系統(tǒng)成本低,時(shí)間短,符合現(xiàn)代企業(yè)財(cái)務(wù)管理的利潤(rùn)最大化的目標(biāo)。應(yīng)用工資管理系統(tǒng),節(jié)省了許多人力、物力上的開(kāi)支,使工資管理工作更加簡(jiǎn)化,使其更加合理化、規(guī)范化。
1.2.2 操作可行性
系統(tǒng)是使用VB語(yǔ)言開(kāi)發(fā)的,易于操作。而且系統(tǒng)還采用了可視化面向?qū)ο蟮拈_(kāi)發(fā)工具,其窗口、界面簡(jiǎn)潔易懂,所以系統(tǒng)在操作上是可行的。
1.2.3 技術(shù)可行性
從目前IT業(yè)界比較流行的數(shù)據(jù)庫(kù)開(kāi)發(fā)、管理軟件來(lái)看,對(duì)于比較簡(jiǎn)單的中小型數(shù)據(jù)庫(kù),Visual Basic 6.0和Access 2007的結(jié)合無(wú)疑是在實(shí)際應(yīng)用中較為成功的一種解決方案。為用戶提供了非常友好、操作簡(jiǎn)單的用戶界面,完善強(qiáng)大的數(shù)據(jù)庫(kù)操作功能和簡(jiǎn)潔明了的數(shù)據(jù)庫(kù)接口,所以技術(shù)應(yīng)用相對(duì)容易。
2 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)如下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。
2.1 主要數(shù)據(jù)庫(kù)表
要進(jìn)行工資系統(tǒng)的設(shè)計(jì),首先設(shè)計(jì)好數(shù)據(jù)庫(kù)表,主要的數(shù)據(jù)庫(kù)表包括:用戶信息表,主要用來(lái)存儲(chǔ)用戶的信息;部門(mén)信息表,主要用來(lái)存儲(chǔ)各個(gè)部門(mén)的信息;職工信息表,主要用來(lái)存儲(chǔ)職工的詳細(xì)信息;職工工資明細(xì)表,主要用來(lái)存儲(chǔ)職工工資的詳細(xì)信息;職工工資結(jié)算表;主要用來(lái)存儲(chǔ)職工工資結(jié)算的詳細(xì)信息等。其中,職工工資明細(xì)表如表1所示。
2.2 系統(tǒng)登錄界面設(shè)計(jì)
系統(tǒng)登錄主要用于驗(yàn)證工作人員登錄系統(tǒng)時(shí)的用戶名稱、密碼是否正確。系統(tǒng)登錄窗體運(yùn)行圖如圖2所示。
2.3 系統(tǒng)主界面的設(shè)計(jì)
經(jīng)過(guò)用戶身份驗(yàn)證后,進(jìn)入系統(tǒng)主界面,系統(tǒng)主界面有系統(tǒng)管理、檔案管理、工資管理、查詢、打印報(bào)表5個(gè)模塊。
系統(tǒng)主界面如圖3所示。
2.4 系統(tǒng)設(shè)計(jì)
系統(tǒng)功能主要包括系統(tǒng)管理、檔案管理、工資管理、查詢、打印報(bào)表,部分功能的實(shí)現(xiàn)如下:
2.4.1 建立員工基本工資設(shè)置窗體
添加一個(gè)普通窗體,caption屬性設(shè)置為“基本工資設(shè)置”,其窗體運(yùn)行如圖4所示。
其窗體命令按鈕的增加、刪除、保存的部分代碼如下:
增加按鈕代碼:
Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Text1(0).SetFocus
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = True
End Sub
刪除按鈕代碼:
Private Sub Command2_Click()
If MsgBox(\"確定刪除當(dāng)前資料嗎?\", vbInformation + vbYesNo, \"刪除資料?\") = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
End If
End Sub
保存:
Private Sub Command4_Click()
For i = 0 To 11
If Text1(i) = \"\" Then
MsgBox \"輸入不完整!\", vbOKOnly + vbExclamation, \"警告\"
Text1(i).SetFocus
Exit Sub
End If
Next i
If MsgBox(\"確定保存當(dāng)前資料嗎?\", vbInformation + vbYesNo, \"保存資料?\") = vbYes Then
Adodc1.Recordset.Update
Adodc1.Recordset.MovePrevious
End If
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = False
Command7.Enabled = True
End Sub
2.4.2 建立考勤信息統(tǒng)計(jì)窗體
添加一個(gè)普通窗體,Caption屬性設(shè)為“考勤信息統(tǒng)計(jì)”,其窗體運(yùn)行如圖5所示。
考勤信息統(tǒng)計(jì)代碼如下:
Private Sub Form_Load()
Command1.Enabled = True
Command2.Enabled = True
Command4.Enabled = True
Command7.Enabled = True
Combo1.AddItem \"1\"
Combo1.AddItem \"2\"
Combo1.AddItem \"3\"
Combo1.AddItem \"4\"
Combo1.AddItem \"5\"
Combo1.AddItem \"6\"
Combo1.AddItem \"7\"
Combo1.AddItem \"8\"
Combo1.AddItem \"9\"
Combo1.AddItem \"10\"
Combo1.AddItem \"11\"
Combo1.AddItem \"12\"
connstr = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database\企業(yè)工資管理系統(tǒng).mdb;Persist Security Info=False\"
conn.Open connstr
mysql = \"select * from 考勤信息表\"
End Sub
2.4.3 建立工資結(jié)算窗體
普通窗體,Caption屬性設(shè)為“工資結(jié)算”。其窗體運(yùn)行圖如圖6所示。
其工資的結(jié)算的部分代碼如下:
Private Sub Command2_Click() '計(jì)算
If Text4(2) = \"\" Then
MsgBox \"請(qǐng)輸入獎(jiǎng)金金額!\", vbOKOnly + vbExclamation, \"提示\"
Text4(2).SetFocus
Else
If Text4(3) = \"\" Then
MsgBox \"請(qǐng)輸入其他補(bǔ)助金額!\", vbOKOnly + vbExclamation, \"提示\"
Text4(3).SetFocus
Else
Text4(11) = Date
Dim GL As Integer
GL = Val(Year(Date) - Year(Label1(10).Caption)) '計(jì)算工齡
Label2(8).Caption = Val(Label2(11).Caption)*GL '計(jì)算工齡工資
Text4(1).Text = Val(Label2(12).Caption)*Val(Label3(10).Caption) '計(jì)算加班工資
Text4(4).Text = Val(Label2(15).Caption)*Val(Label3(11).Caption) '計(jì)算遲到扣款
Text4(5).Text = Val(Label2(13).Caption)*Val(Label3(9).Caption) '計(jì)算病假扣款
Text4(6).Text = Val(Label2(14).Caption)*Val(Label3(8).Caption) '計(jì)算事假扣款
Text4(0).Text = Val(Text4(4).Text) + Val(Text4(5).Text) + Val(Text4(6).Text) 計(jì)算考勤扣款
Dim money As Integer '應(yīng)發(fā)金額
money = Val(Label2(9).Caption) + Val(Label2(10).Caption) + Val(Label2(8).Caption) _
+ Val(Text4(1).Text) + Val(Text4(2).Text) + Val(Text4(3).Text) - Val(Text4(0).Text) - Val(Text4(7).Text)
計(jì)算實(shí)發(fā)金額:
Text4(9).Text = money - Val(Text4(8).Text)
計(jì)算基本工資額,包括職務(wù)津貼、基本工資、工齡工資:
JBGZE = Val(Label2(10).Caption) + Val(Label2(9).Caption) + Val(Label2(8).Caption)
計(jì)算本月補(bǔ)助,包括加班工資、獎(jiǎng)金、其他補(bǔ)助:
BYBZ = Val(Text4(1).Text) + Val(Text4(2).Text) + Val(Text4(3).Text)
計(jì)算其他扣款,包括違紀(jì)罰款和個(gè)人所得稅:
QTKK = Val(Text4(7).Text) + Val(Text4(0).Text)
End Sub
2.4.4 建立員工固定工資調(diào)整窗體
重點(diǎn)描述確定按鈕的代碼如下:
Private Sub Command1_Click()
Dim m As Integer
If Combo1.Text = \"基本工資\" Then m = 1
If Combo1.Text = \"職務(wù)津貼\" Then m = 2
If Combo1.Text = \"工齡津貼/年\" Then m = 3
If Combo1.Text = \"加班工資/天\" Then m = 4
If Combo1.Text = \"事假扣款/天\" Then m = 5
If Combo1.Text = \"病假扣款/天\" Then m = 6
If Combo1.Text = \"遲到扣款/天\" Then m = 7
If Combo1.Text = \"\" Then
MsgBox \"請(qǐng)選擇需調(diào)整的工資項(xiàng)目!\", vbOKOnly + vbExclamation, \"提示\"
Else
If Combo2.Text = \"\" Then
MsgBox \"請(qǐng)選擇調(diào)整的條件!\", vbOKOnly + vbExclamation, \"提示\"
Else
If Text1.Text = \"\" Then
MsgBox \"請(qǐng)輸入調(diào)整值!\", vbOKOnly + vbExclamation, \"提示\"
Exit Sub
End If
Adodc1.Recordset.MoveFirst
Do While Not Adodc1.Recordset.EOF
if adodc1.Recordset.Fields(\"職務(wù)\")=Combo2.Text then
Adodc1.Recordset.Fields(Combo1.Text) = Text1.Text
dodc1.Recordset.MoveNext '職工工資明細(xì)表
Loop
End If
End If
MsgBox \"修改成功!\", vbOKOnly + vbExclamation , \"信息\"
End Sub
2.4.5 建立查詢員工工資窗體
查詢員工工資窗體運(yùn)行如圖7所示:
該窗體是一個(gè)職工工資查詢窗體,表示當(dāng)符合某一查詢條件時(shí)所進(jìn)行的查詢操作,部分代碼如下:
If flag = 1 Then Adodc2.RecordSource = \" select*from 職工工資結(jié)算表 where 員工編號(hào)=” Text1.Text \"'\"
If flag = 2 Then Adodc2.RecordSource = \" select*from 職工工資結(jié)算表 where 員工姓名=\" Text2.Text \"'\"
If flag = 3 Then Adodc2.RecordSource = \" select*from 職工工資結(jié)算表 where 員工編號(hào)=\" Text1.Text \" and 員工姓名=\" Text2.Text \"'\"
輸入查詢條件后,單擊“查詢”按鈕,顯示查詢結(jié)果,代碼(部分)如下:
以員工編號(hào)和員工姓名查詢
Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF <> True
If Text1.Text = Adodc1.Recordset.Fields(\"員工編號(hào)\").Value _
And Text2.Text = Adodc1.Recordset.Fields(\"員工姓名\").Value Then
i = 1
flag = 3
Exit Do
End If
Adodc1.Recordset.MoveNext
Loop