基于VB企業(yè)工資管理系統(tǒng)畢業(yè)設(shè)計_第1頁
基于VB企業(yè)工資管理系統(tǒng)畢業(yè)設(shè)計_第2頁
基于VB企業(yè)工資管理系統(tǒng)畢業(yè)設(shè)計_第3頁
基于VB企業(yè)工資管理系統(tǒng)畢業(yè)設(shè)計_第4頁
基于VB企業(yè)工資管理系統(tǒng)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、畢 業(yè) 設(shè) 計設(shè)計題目:企業(yè)工資管理系統(tǒng)完成時間: 設(shè)計作者: 學(xué) 號:學(xué)校班級: 聯(lián)系電話:摘 要企業(yè)的工資管理是公司管理的一個重要內(nèi)容。隨著企業(yè)人員數(shù)量增加,企業(yè)的工資管理工作也變得越來越復(fù)雜。工資管理既涉及到企業(yè)勞動人事的管理,同時也是企業(yè)財務(wù)管理的重要組成部分。工資管理需要和人事管理相聯(lián)系,同時連接工時考勤和醫(yī)療保險等等,來生成企業(yè)每個職工的基本工資、津貼、醫(yī)療保險、保險費、實際發(fā)放工資等。資金是企業(yè)生存的主要元素,資金的流動影響到企業(yè)的整體運作,企業(yè)員工的工資是企業(yè)資金管理的一個重要的組成部分。早期的工資統(tǒng)計和發(fā)放都是使用人工方式處理紙質(zhì)材料,不僅花費財務(wù)人員大量的時間且不易保存,往

2、往由于個人的因素抄寫不慎或計算疏忽,出現(xiàn)工資發(fā)放錯誤的現(xiàn)象。早期工資管理多采取紙質(zhì)材料和具有較強的時間限制?;谝陨显颍髽I(yè)工資管理系統(tǒng)使用電腦安全保存、快速計算、全面統(tǒng)計,實現(xiàn)工資管理的系統(tǒng)化、規(guī)范化、自動化。企業(yè)工資管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),前臺程序開發(fā)工具采用微軟的VB6,后臺數(shù)據(jù)庫采用Access數(shù)據(jù)庫。VB6是一種面向?qū)ο蟮拈_發(fā)工具,具有組件豐富、語言簡單、功能強大的優(yōu)點。 Access數(shù)據(jù)庫具有與VB6無縫連接、操作簡單、易于使用的優(yōu)點。運行結(jié)果證明,本企業(yè)工資管理系統(tǒng)極大提高了工作效率,節(jié)省了人力和物力,最終滿足企業(yè)財務(wù)管理、員工工資發(fā)放的需要,同時也成為現(xiàn)代化企

3、業(yè)管理的標(biāo)志關(guān)鍵詞:工資管理 信息管理 數(shù)據(jù)查詢 數(shù)據(jù)庫目    錄摘  要 第一章  緒  論 1.1 數(shù)據(jù)庫管理系統(tǒng)簡介 1.2 圖書管理系統(tǒng) 1.3 開發(fā)工具簡介 第二章  企業(yè)工資管理系統(tǒng)設(shè)計分析 2.1 應(yīng)用需求分析 2.2 系統(tǒng)功能模塊劃分 2.3 系統(tǒng)數(shù)據(jù)庫設(shè)計 第三章  企業(yè)工資管理系統(tǒng)應(yīng)用程序設(shè)計 3.1 “登錄”模塊詳細設(shè)計3.2 “主窗體”模塊詳細設(shè)計3.3 各項子模塊詳細設(shè)計3.4 各項子模塊編寫要點第四章 結(jié)束語 致  謝 參考書目 第一章 緒論1.1數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)

4、庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過DBMS進行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。MS Access 2000就是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。關(guān)系模型主要是用二維表格結(jié)構(gòu)表達實體集,用外鍵表示實體間聯(lián)系。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,每個關(guān)系實際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用

5、指針導(dǎo)航數(shù)據(jù),表格簡單用戶易懂,編程時并不涉及存儲結(jié)構(gòu),訪問技術(shù)等細節(jié)。SQL語言是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(yīng)用。1.2 企業(yè)工資管理系統(tǒng)企業(yè)工資管理是一項瑣碎、復(fù)雜而又十分細致的工作,一般不允許發(fā)生差錯。最初的工資統(tǒng)計和發(fā)放都是使用人工方式處理,工作量大的時候,出現(xiàn)錯誤的機率也隨之升高,不僅花費財務(wù)人員大量的時間,而且往往由于抄寫不慎,或者由于計算的疏忽,出現(xiàn)工資發(fā)放錯誤的現(xiàn)象。同時工資的發(fā)放具有較強的時間限制,必須嚴(yán)格按照單位規(guī)定的時間完成計算和發(fā)放工作。正是企業(yè)工資管理的這種重復(fù)性、規(guī)律性、時間性,使得企業(yè)工資管理計算機化成為可能。企業(yè)工資管理系統(tǒng)就是使用電腦代替大量的人

6、工統(tǒng)計和計算,完成眾多企業(yè)工資信息的處理,同時使用電腦還可以安全地、完整地保存大量的企業(yè)工資記錄。1.3 開發(fā)工具簡介微軟公司的Visual Basic 6.0是Windows應(yīng)用程序開發(fā)工具,是目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設(shè)計界面和實現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設(shè)計過程,從而有效的提高了應(yīng)用程序的運行效率和可靠性。因此,本系統(tǒng)使用MS Visual Basic 6.0開發(fā)。第二章 企業(yè)工資管理系統(tǒng)設(shè)計分析2.1 應(yīng)用需求分析需求分析的過程可以說是一個對具體問題的反復(fù)理解和抽象的過程。理解就是對現(xiàn)實問

7、題的理解,要弄清楚究竟需要解決什么問題。抽象就是除去問題的表面,提取問題的本質(zhì),建立問題的邏輯模型,以便于以后階段的系統(tǒng)的設(shè)計實現(xiàn)。需求分析階段是軟件產(chǎn)品生存命期中的一個重要階段,其根本任務(wù)是確定用戶對軟件系統(tǒng)的需求。所謂需求是指用戶對軟件的功能和性能的要求,就是用戶希望軟件能什么事情,完成什么樣的功能,達到什么性能。通常需求分為兩種類型:一種是功能性需求,一種是非功能性需求,這一點也需要有一種清楚的認識。功能性需求是指需要計算機系統(tǒng)解決的問題,也就是對數(shù)據(jù)的處理要求,這是一類最主要的需求。非功能性需求是指實際使用環(huán)境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,

8、等等。軟件需求一般包含三個層次業(yè)務(wù)需求、用戶需求和功能需求,還包括非功能需求。業(yè)務(wù)需求:反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們在項目視圖與范圍文檔中予以說明。用戶需求:描述了用戶使用產(chǎn)品必須要完成的任務(wù)和具備的功能,這在使用實例文檔或方案腳本說明中予以說明。功能需求:定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足其業(yè)務(wù)需求。2.2 系統(tǒng)功能模塊劃分開發(fā)這個系統(tǒng)的目的就是幫助企業(yè)的財務(wù)主管部門提高工作效率,實現(xiàn)企業(yè)工資信息管理的系統(tǒng)化、規(guī)范化和自動化。能夠和認識管理系統(tǒng)、考勤管理系統(tǒng)相結(jié)合,真正實現(xiàn)企業(yè)高效、科學(xué)、現(xiàn)代化的員工管理。系統(tǒng)最終實現(xiàn)的主要功能如下

9、。·企業(yè)工資信息設(shè)置部分:包括設(shè)置員工的基本工資和其他項目的金額,如獎金等。并且負責(zé)設(shè)置員工工資的計算公式。·企業(yè)工資信息管理部分:包括統(tǒng)計出勤、計算工資、查詢工資和導(dǎo)出工資表。·系統(tǒng)部分:包括添加用戶和修改密碼。2.3系統(tǒng)數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是信息管理系統(tǒng)的后臺,存儲著所有的信息,在信息管理系統(tǒng)中有著很重要的地位。數(shù)據(jù)庫設(shè)計的好與壞,直接影響到這個系統(tǒng)的運行效率。良好的數(shù)據(jù)庫設(shè)計,可以提高數(shù)據(jù)信息的存儲效率,確保數(shù)據(jù)信息的完整性和一致性。針對企業(yè)工資信息管理系統(tǒng)的需求,通過對員工工資計算過程的內(nèi)容分析,為本系統(tǒng)設(shè)計如下的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):·基本工資信息:包

10、括員工編號和基本工資(元/小時)。·其他項目信息:包括員工編號、獎金、津貼、福利、扣發(fā)等。·計算公式信息:包括加班費的百分比、出差工資、曠工、遲到早退扣發(fā)等。·出勤統(tǒng)計信息:包括員工編號、姓名、統(tǒng)計日期、出勤天數(shù)、遲到早退次數(shù)、加班天數(shù)、加班天數(shù)等。·工資統(tǒng)計信息:包括員工編號、姓名、統(tǒng)計日期、基本工資、獎金、津貼、福利,加班費、出差費、扣發(fā)、總額等。啟動Access 2000,創(chuàng)建新的數(shù)據(jù)庫,命名為Salary.mdb和Person.mdb,保存在要存放這個系統(tǒng)所有工程文件的文件夾中。在使用的時,要把應(yīng)用程序和這兩個數(shù)據(jù)庫保存在同一個文件夾中。員工出勤

11、統(tǒng)計信息表:字 段類 型長 度是否空說 明id自動編號長整型不能空記錄編號stuffid文本50不能空員工編號stuffname文本50不能空員工姓名recordmonth日期/時間不能空統(tǒng)計時間attendance數(shù)字長整型不能空出勤天數(shù)lateearly數(shù)字長整型不能空遲到早退次數(shù)absent數(shù)字長整型不能空曠工次數(shù)overtimecom數(shù)字長整型不能空正常加班次數(shù)overtimespe數(shù)字長整型不能空特殊加班次數(shù)errand數(shù)字長整型不能空出差次數(shù)員工工資計算公式信息表:字 段類 型長 度是否空說 明overtimecom數(shù)字長整型不能空正常加班工資百分比overtimespe數(shù)字長整型

12、不能空特殊加班工資百分比errand數(shù)字長整型不能空出差工資absent數(shù)字長整型不能空曠工工資le數(shù)字長整型不能空遲到早退字 段類 型長 度是否空說 明id自動編號長整型不能空記錄編號stuffid文本50不能空員工編號sposition文本50不能空員工職務(wù)salary貨幣貨幣不能空基本工資員工其他項目設(shè)置:字 段類 型長 度是否空說 明id自動編號長整型不能空記錄編號stuffid文本50不能空員工編號yearmonth日期/時間 不能空年月type數(shù)字長整型 不能空類型name文本50 能空類型money貨幣貨幣 不能空名稱remark備注 能空備注員工工資統(tǒng)計信息表:字 段類 型長

13、度是否空說 明id自動編號長整型不能空記錄編號stuffid文本50不能空員工編號stuffname文本50不能空員工姓名yearmonth日期/時間不能空時間basicsalary貨幣貨幣基本工資bonus貨幣貨幣獎金welfare貨幣貨幣福利allowance貨幣貨幣津貼abatement貨幣貨幣扣發(fā)lesub貨幣貨幣遲到早退扣發(fā)absentsub貨幣貨幣曠工扣發(fā)overtime貨幣貨幣加班費errand貨幣貨幣出差費others貨幣貨幣其他金額total貨幣貨幣總額員工信息表:字 段類 型長 度是否空說 明sid文本50能空員工編號sname文本50能空員工姓名sgender文本50能空

14、性別splace文本50能空籍貫sage數(shù)字長整型不能空年齡sbirthday日期/時間不能空生日sdegree文本50能空學(xué)歷sspecial文本50能空專業(yè)saddress文本50能空住址scode文本50能空郵編stel文本50能空電話semail文本50能空EmailsworkTime日期/時間不能空參加工作時間sintime日期/時間不能空進入公司時間sdept文本50能空部門spaytime日期/時間不能空起薪時間sposition文本50能空職務(wù)sremark文本50能空備注用戶信息表:字 段類 型長 度是否空說 明userid文本50不能空用戶名稱userpwd文本50不能空用

15、戶密碼第三章企業(yè)工資管理系統(tǒng)應(yīng)用程序設(shè)計31 “登錄模塊”詳細設(shè)計 登錄模塊的詳細設(shè)計主要是用戶登錄的一個界面,判斷登錄的用戶是管理員還是普通用戶,進入后將面對的是主界面,從而進行相關(guān)的操作。 登錄的界面主要由用戶名和密碼的信息,還有一些標(biāo)題設(shè)置,確定和取消的按鈕組成。通過標(biāo)題可以知道此系統(tǒng)的大概內(nèi)容,由此,登錄界面的設(shè)計完成。 32 “主窗體”模塊詳細設(shè)計在這個項目中,選擇使用多文檔界面。使用這個窗體的好處是可以使程序更加有條理。對于一個多任務(wù)的應(yīng)用程序,使用多文檔窗體還可以減少占用的系統(tǒng)資源。主窗體設(shè)計的界面是用菜單編輯器做的,主要由系統(tǒng)、工資信息設(shè)置、工資信息管理和關(guān)于這四個大模塊組成。

16、主窗體是進行相關(guān)操作的主界面。在這幾個里,管理員有所有的權(quán)利進行各種操作。3.3各項子模塊詳細設(shè)計選擇“系統(tǒng)”>“添加用戶”菜單,在添加用戶的窗體里,輸入新的用戶名稱和密碼后,單擊“確定”按鈕,系統(tǒng)將會添加新的用戶。 sql = "insert into userinfo (userid,userpwd) values('" & username sql = sql & "','" & password & "')" Call transactsql(sql, &q

17、uot;salary") MsgBox "添加成功", vbOKOnly + vbExclamation, "添加結(jié)果" username.Text = "" password.Text = "" confirmpwd.Text = "" username.SetFocus 選擇“系統(tǒng)”>“修改密碼”菜單,在修改密碼的窗體里,輸入舊密碼和2次輸入新密碼后,單擊“確定”按鈕,系統(tǒng)將會更改當(dāng)前用戶的密碼。userpassword = newpwdsql = "update

18、userinfo set userpwd='" & newpwd & "'where userid='" & strusername & "'"Call transactsql(sql, "salary")MsgBox "密碼已經(jīng)修改", vbOKOnly + vbExclamation, "修改結(jié)果"選擇“工資信息設(shè)置”>“基本工資設(shè)置”菜單設(shè)置員工的基本工資,可以根據(jù)員工的編號,或者根據(jù)員工職務(wù)設(shè)置基本工資,設(shè)置

19、的基本工資為每個小時的工資。Set rs = getrs(sql, "salary")If rs.EOF = False Thensql = "delete from salarysetting where stuffid='" & Mstuffid.Text & "'"Call transactsql(sql, "salary")End Ifrs.Closeid = Mstuffid.TextCall addrecordMsgBox "已經(jīng)設(shè)置基本工資", vb

20、OKOnly + vbExclamation, "添加結(jié)果"Call initsql = "select * from salarysetting"Call frmresult.basictopicCall frmresult.showbasic(sql)frmresult.Showfrmresult.ZOrder 0Me.ZOrder 0選擇“工資信息設(shè)置”>“其他項目設(shè)置”菜單,在其他項目設(shè)置的窗體中,設(shè)置員工當(dāng)月的獎金、津貼、福利等項目。sql = "select * from salaryother" If ichang

21、eflag = 1 Then Call add MsgBox "已經(jīng)添加記錄", vbOKOnly + vbExclamation, "提示" Call frmresult.othertopic Call frmresult.showother(sql) frmresult.Show Unload Me Else If Me.optionbonus.Value = True Then itype = 1 ElseIf Me.optionallowance.Value = True Then itype = 2 ElseIf Me.optionwelfar

22、e.Value = True Then itype = 3 ElseIf Me.optionabatement.Value = True Then itype = 4 ElseIf Me.optionothers.Value = True Then itype = 5 resumdate = recordtime sql = "delete from salaryother where stuffid='" & Mid.Text sql = sql & "' and YearMonth=#" & recordtim

23、e & "# and " sql = sql & "Type=" & itype Call transactsql(sql, "Salary") Call add Call frmsumsalary.resumsalary(resumdate) sql = "select * from salaryother" Call frmresult.othertopic Call frmresult.showother(sql) frmresult.Show Unload Me End If 選擇“

24、工資信息設(shè)置”>“工資計算公式設(shè)置”菜單,在這個計算公式窗體中設(shè)置員工實際發(fā)放工資的計算公式。If Me.textovertimecom = "" And IsNumeric(Me.textovertimecom) = True Then MsgBox "請輸入正常加班工資百分比", vbOKOnly + vbExclamation, "提示" Me.textovertimecom = "" Me.textovertimecom.SetFocus ElseIf Me.textovertimespe = &qu

25、ot;" And IsNumeric(Me.textovertimespe) = False Then MsgBox "請輸入特殊加班工資百分比", vbOKOnly + vbExclamation, "提示" Me.textovertimespe = "" Me.textovertimespe.SetFocus ElseIf Me.texterrand = "" And IsNumeric(Me.texterrand) = False Then MsgBox "請輸入出差工資", v

26、bOKOnly + vbExclamation, "提示" Me.texterrand = "" Me.texterrand.SetFocus ElseIf Me.textabsent = "" And IsNumeric(Me.textabsent) = False Then MsgBox "請輸入曠工扣發(fā)工資", vbOKOnly + vbExclamation, "提示" Me.textabsent = "" Me.textabsent.SetFocus ElseIf

27、Me.textle = "" And IsNumeric(Me.textle) = False Then MsgBox "請輸入遲到早退扣發(fā)工資", vbOKOnly + vbExclamation, "提示" Me.textle = "" Me.textle.SetFocus Else Call setvalue Call init End If選擇“工資信息管理”>“出勤統(tǒng)計”菜單,在統(tǒng)計出勤記錄窗體中選擇需要統(tǒng)計記錄的月份。firstday = Year(Date) & "-"

28、; & Mmonth.Text & "-1"days = DateDiff("d", Year(Date) & "-" & Mmonth.Text & "-1", _ Year(Date) & "-" & Mmonth.Text + 1 & "-1")lastday = Year(Date) & "-" & Mmonth.Text & "-" &am

29、p; dayssql = "select * from attendancestatistics where recordmonth between #"sql = sql & firstday & "# and #" & lastday & "#"Set rsrecord = getrs(sql, "salary")If rsrecord.EOF = False Then MsgBox "已經(jīng)統(tǒng)計", vbOKOnly + vbExclamation, &quo

30、t;提示" frmaresult.Show frmaresult.ZOrder 0 rsrecord.Close Unload Me Exit Sub End If sql = "select * from attendanceinfo where adate between #" sql = sql & firstday & "# and #" & lastday & "#" Set rsrecord = getrs(sql, "person") If rsrecord.

31、EOF = False Then sql = "select sid,sname from stuffinfo order by sid" Set rsperson = getrs(sql, "person")選擇月份后單擊“確定”按鈕,如果系統(tǒng)已經(jīng)統(tǒng)計過該月份的記錄,那么會出現(xiàn)如下圖所示的統(tǒng)計結(jié)果信息列表。如果系統(tǒng)沒有統(tǒng)計過,那么系統(tǒng)就會開始統(tǒng)計記錄,然后顯示如圖所示的統(tǒng)計結(jié)果信息列表。If strusername <> "admin" Thensql = "select sid from stuffinfo

32、where sname='" & strusername & "'"Set rs = getrs(sql, "salary")sd = rs(0)sql = "select * from attendancestatistics where stuffid='" & sd & "'"Me.Adodc1.ConnectionString ="provider=microsoft.jet.oledb.4.0;Datasource=&qu

33、ot;& App.Path & "salary.mdb" Me.Adodc1.RecordSource = sqlMe.Adodc1.RefreshSet Me.DataGrid1.DataSource = Me.Adodc1.RecordsetMe.DataGrid1.RefreshElsesql = "select * from attendancestatistics"Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="

34、& App.Path & "salary.mdb"Me.Adodc1.RecordSource = sqlMe.Adodc1.RefreshSet Me.DataGrid1.DataSource = Me.Adodc1.RecordsetMe.DataGrid1.Refresh End If選擇“工資信息管理”>“計算實發(fā)工資”菜單,在這個窗體中選擇需要統(tǒng)計的月份。選擇統(tǒng)計月份后,單擊“開始統(tǒng)計”按鈕,系統(tǒng)如果已經(jīng)統(tǒng)計了該月份的工資,系統(tǒng)會顯示工資信息列表窗體。如果系統(tǒng)還沒有統(tǒng)計工資,那么系統(tǒng)開始統(tǒng)計工資,然后在信息結(jié)果列表窗體中顯示統(tǒng)計結(jié)果。If M

35、month.Text = 4 Then firstday = Year(Date) & "-" & Mmonth.Text & "-1" days = DateDiff("d", Year(Date) & "-" & Mmonth.Text & "-1", _ Year(Date) & "-" & Mmonth.Text + 1 & "-1") lastday = Year(Date)

36、 & "-" & Mmonth.Text & "-" & days Call sumsalary(firstday, lastday) sql = "select * from salarystatistics" frmresult.SSTab1.Caption = "員工工資統(tǒng)計列表" Call frmresult.listtopic Call frmresult.showdata(sql) frmresult.Caption = "統(tǒng)計結(jié)果列表" frmres

37、ult.ZOrder 0 Unload MeElse MsgBox "這個月的工資未統(tǒng)計", vbOKOnly + vbExclamation, "提示"End If選擇“工資信息管理”>“查詢工資”菜單,系統(tǒng)顯示如圖的查詢信息窗體,系統(tǒng)默認的是查詢出數(shù)據(jù)庫中所有的記錄(當(dāng)管理員進入的時候),當(dāng)從“員工編號”下拉列表中選擇一個員工編號后,單擊“查詢單人”按鈕,就會查詢出符合這個員工編號的記錄;如果需要返回查詢所有信息,單擊“查詢所有”按鈕,系統(tǒng)就會返回所有員工的信息。在“員工工資統(tǒng)計列表”中單擊鼠標(biāo)右鍵,會彈出下圖的菜單,在“員工其他項目列表”中單

38、擊鼠標(biāo)右鍵也會出現(xiàn)下圖的菜單。如果要選擇“刪除基本工資設(shè)置”,出現(xiàn)如下的提示:具體的操作這里就不詳細介紹。選擇“工資信息管理”>“導(dǎo)出工資表”菜單,會出現(xiàn)下圖的“導(dǎo)出記錄”窗體中選擇需要導(dǎo)出工資的月份。選擇月份和保存位置后,單擊“導(dǎo)出”按鈕,系統(tǒng)會開始導(dǎo)出數(shù)據(jù)。單擊“確定”按鈕打開導(dǎo)出的文件,單擊“取消”按鈕回到系統(tǒng)。 導(dǎo)出的工資記錄34 各項子模塊編寫要點在登錄的這個窗體里,我做的特點是:只要在數(shù)據(jù)庫里有用戶信息的,都可以登錄,然后顯示相關(guān)自己的信息,而管理員顯示所有的信息。當(dāng)輸入的用戶名或密碼不正確的時候,會出現(xiàn)如下的對話框: 或者 在主窗體的設(shè)計中,我在系統(tǒng)的下拉菜單里包括有添加用

39、戶、修改密碼和退出系統(tǒng)。在這個模塊里普通用戶只有修改自己的密碼的權(quán)利。在添加用戶的窗體里:添加3個標(biāo)簽、3個文本框和2個命令按鈕,然后設(shè)置它們相關(guān)的屬性。在修改密碼的窗體里:添加了3個標(biāo)簽,用來顯示信息;3個文本框用來輸入用戶名稱和用戶密碼;2個按鈕用來確定和取消操作,然后設(shè)置它們的屬性。在工資信息設(shè)置的下拉菜單里包括有基本工資信息設(shè)置、其他項目信息設(shè)置和計算公式設(shè)置。在這個模塊里,普通用戶沒有任何權(quán)利進行相關(guān)的操作。在基本工資窗體里:添加了2個選項按鈕、2個下拉列表、2個標(biāo)簽、1個文本框和2個按鈕,然后設(shè)置它們的屬性。在其他項目設(shè)置的窗體里:使用了一個DTPicker控件獲得添加記錄的時間,

40、要使用這個控件需要添加部件類庫,選擇“工程>部件”命令,選擇Microsoft Windows Common Controls-2 6.0(sp4)項,然后設(shè)置相關(guān)的屬性。在工資信息管理的下拉菜單里包括有統(tǒng)計出勤信息、計算實發(fā)工資、查詢工資和導(dǎo)出工資表。在這個模塊里,普通用戶有統(tǒng)計出勤信息和查詢工資的權(quán)利,但是都顯示的是自己的信息。在出勤統(tǒng)計窗體里:添加一個下拉列表、一個標(biāo)簽和2個命令按鈕,然后設(shè)置相關(guān)的屬性。在出勤結(jié)果信息列表的窗體里:使用了Adodc控件和DataGrid控件,控件的Visible屬性一定要設(shè)置為False。在計算實發(fā)工資窗體里添加的控件和統(tǒng)計出勤記錄窗體的控件相同。

41、在工資統(tǒng)計列表窗體里:使用了SSTab控件,在每一個標(biāo)簽上添加一個MSFlexGrid控件,然后設(shè)置它們的屬性。在導(dǎo)出工資表的窗體中使用了CommondDialog控件,要使用這個控件需要在“控件”窗體中,選擇Microsoft Common Dialog Control6.0(sp3)項,同時因為數(shù)據(jù)表格是導(dǎo)出到Excel,所以需要添加引用。選擇“工程>引用”菜單,在“引用”窗體中選擇Microsoft Excel 9.0 Object Library項,這樣才能夠成功導(dǎo)入到Excel。在這個窗體里,我做的特點是:權(quán)利分工明確。當(dāng)管理員進入的時候他有所有的權(quán)利,單擊哪個模塊就會彈出相對

42、應(yīng)的窗體。而普通用戶則不能,我把它進行了權(quán)限設(shè)置,會彈出權(quán)限的對話框。 在添加用戶的窗體里,如果輸入的用戶密碼和確認密碼不一致,將出現(xiàn)一個警告對話框: 然后輸入與用戶密碼相同的密碼,我這里的密碼都是以*的形式表達,是不可見的。添加的用戶將保存在數(shù)據(jù)庫的userinfo里。單擊“取消”按鈕就卸載此窗體,添加用戶的過程到此完成。在修改密碼的窗體里,我要注重講解一下:當(dāng)輸入的舊密碼與登錄時的密碼不一致將出現(xiàn)提示對話框(如圖一),當(dāng)輸入的“確認新密碼”和“輸入新密碼”的密碼不一致時也將出現(xiàn)警告對話框(如圖二)。我在做這個窗體時遇到了一個問題:就是輸入的新密碼確認后,當(dāng)你再一次的進入修改密碼窗體輸入舊密

43、碼時,如果輸入的是剛剛修改過的密碼,就會出現(xiàn)錯誤。經(jīng)過一段時間的思考,我發(fā)現(xiàn)原因是修改過的密碼沒有覆蓋登錄時的密碼,所以會出現(xiàn)問題。我覺得這是一個很大的問題,在別的書上可能沒注意到這一點,所以我要注重的講一下,這是我做這個窗體時的最大體會。 圖一 圖二在建立基本工資窗體時,這個窗體會在兩個地方使用到,一個就是添加,另一個就是修改,在窗體載入時系統(tǒng)應(yīng)自動判斷狀態(tài)。選擇員工編號或選擇職務(wù),然后填寫工資金額,單擊“確定”按鈕,系統(tǒng)就會按照選擇的方式,設(shè)置員工的基本工資。在做基本工資這個窗體時,我的想法是:當(dāng)你在修改基本工資的信息,首先都要從數(shù)據(jù)庫中調(diào)出相關(guān)的信息,然后把它刪除掉,再從數(shù)據(jù)庫中的員工信

44、息表中調(diào)出所要的信息,然后再一次的添加所要設(shè)置的信息。當(dāng)你沒輸入員工編號的時候,會出現(xiàn)下圖的對話框; 當(dāng)沒輸入員工的職務(wù)時會出現(xiàn)錯誤的信息。在建立其他項目設(shè)置的窗體時,也在兩個地方使用,即添加和修改,在載入時也需要判斷狀態(tài)。選擇員工編號,再選擇需要添加的項目和進額,單擊“確定”按鈕,即可添加其他項目。在其他項目設(shè)置這個窗體里,我用了一個Frame控件和幾個optionButton控件,目的在于:在添加其他項目時,只能有一個設(shè)置是有效的,而且還可以添加其他的項目,還有備注等等,這些都便于記錄。這里還有一個DTPicker控件是用來記錄添加其他項目的時間,我覺得這個控件非常好。還有就是每次添加成功

45、后,系統(tǒng)需要初始化,更新一下。在設(shè)置完這個窗體后將會彈出查詢工資的窗體。在建立工資計算公式的窗體時,輸入內(nèi)容后,單擊“確定”按鈕,設(shè)置計算公式中使用的數(shù)字。在計算公式設(shè)置的窗體里,單擊“恢復(fù)默認值”按鈕系統(tǒng)將會恢復(fù)公式中的默認值。這里的恢復(fù)默認值功能采用的方法比較簡單,就是在一個函數(shù)中設(shè)置了固定的默認值。如果需要使用可變的默認值,可以在數(shù)據(jù)庫中設(shè)置一項默認值字段,這樣可以方便的更改默認值。當(dāng)輸入的格式與設(shè)定的格式不一致的時候,會彈出相關(guān)的對話框。建立出勤統(tǒng)計窗體,選擇月份后,單擊“確定”按鈕,開始統(tǒng)計出勤記錄。在統(tǒng)計出勤信息的窗體里,這要和出勤記錄的數(shù)據(jù)庫相連,如果輸入的月份沒有統(tǒng)計將如下的對

46、話框:如果輸入的月份有統(tǒng)計記錄則彈出如下的對話框:然后彈出出勤結(jié)果的窗體,顯示數(shù)據(jù)庫中統(tǒng)計信息相關(guān)的記錄。 管理員能看到的界面 這是用戶登錄所顯示的用戶信息建立計算實發(fā)工資的窗體,這個窗體的建立和統(tǒng)計出勤記錄的窗體比較相似,選擇月份后,單擊“開始統(tǒng)計”按鈕,即可統(tǒng)計員工工資。在計算實發(fā)工資的窗體里,如果輸入的月份的工資沒統(tǒng)計會彈出如下的對話框:否則會出現(xiàn)如下的對話框: 單擊“確定”后,就會出現(xiàn)工資信息列表,這時你將看見所有關(guān)于你想要的信息。建立工資查詢的窗體,在選擇員工編號后,單擊“查詢單人”按鈕,返回選擇員工的相關(guān)信息。單擊“查詢?nèi)俊卑粹o,系統(tǒng)返回全部員工的信息。在建立工資查詢(即工資統(tǒng)計

47、結(jié)果列表)的窗體時,我覺得這是一個最難的窗體。不僅是因為它的設(shè)置,還有就是它的代碼和數(shù)據(jù)庫相連的操作。在這個窗體中使用了SSTab控件,在每一個標(biāo)簽上添加一個MSFlexGrid控件。當(dāng)你是管理員登錄的時候,他的權(quán)限是所有,當(dāng)你是用戶登錄的時候,窗體只顯示登錄用戶本人的相關(guān)信息。他沒有任何權(quán)限,只能看到自己的信息,這是我做這個窗體的特色。 窗體的部分代碼為:If strusername = "admin" Then 管理員的權(quán)限 sql = "select stuffid from salarysetting" Set rs = getrs(sql, &

48、quot;salary") If rs.EOF = False Then While Not rs.EOF Mid.AddItem rs(0) rs.MoveNext Wend rs.Close End If Mid.ListIndex = 0 Select Case Me.SSTab1.Tab Case 0 sql = "select * from salarysetting" Call basictopic Call showbasic(sql) Case 1 sql = "select * from salaryother" Call o

49、thertopic Call showother(sql) Case 2 sql = "select * from salarystatistics order by id desc" Call listtopic Call showdata(sql) End Select Else 用戶的權(quán)限 sql = "select sid from stuffinfo where sname='" & strusername & "'" Set rs = getrs(sql, "salary"

50、;) While Not rs.EOF Mid.AddItem rs(0) rs.MoveNext Wend rs.MoveFirst sd = rs(0) rs.Close Mid.ListIndex = 0 Select Case Me.SSTab1.Tab Case 0 sql = "select * from salarysetting where stuffid='" & sd & "'" Call basictopic Call showbasic(sql) Case 1 sql = "select * from salaryother where stuffid='" & sd & "'" Call othertopic Cal

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論