企業(yè)工資管理系統(tǒng)文檔_第1頁(yè)
企業(yè)工資管理系統(tǒng)文檔_第2頁(yè)
企業(yè)工資管理系統(tǒng)文檔_第3頁(yè)
企業(yè)工資管理系統(tǒng)文檔_第4頁(yè)
企業(yè)工資管理系統(tǒng)文檔_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

年6月23日企業(yè)工資管理系統(tǒng)文檔資料內(nèi)容僅供參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系本人改正或者刪除。工資管理系統(tǒng)摘要本系統(tǒng)基本上能夠滿足現(xiàn)代化企業(yè)工資管理的需求?,F(xiàn)代化工資管理系統(tǒng)中使用了各種表格,保存相關(guān)的工資信息,方便查詢,瀏覽,修改等操作。本系統(tǒng)的前提條件是必須有員工的考勤信息作為基礎(chǔ),因?yàn)楸鞠到y(tǒng)是使用員工考勤信息來(lái)計(jì)算員工的工資,在使用的時(shí)候必須要保證員工的人事信息數(shù)據(jù)庫(kù)和工資數(shù)據(jù)庫(kù)在同一個(gè)文件夾中。本系統(tǒng)結(jié)合實(shí)際的人事、財(cái)務(wù)制度,經(jīng)過(guò)實(shí)際的需求分析,采用功能強(qiáng)大的VB作為開(kāi)發(fā)工具、Access作為數(shù)據(jù)庫(kù)開(kāi)發(fā)出來(lái)的企業(yè)工資管理系統(tǒng)。本文首先分析了企業(yè)工資管理系統(tǒng)的應(yīng)用現(xiàn)狀,闡述了本工資管理系統(tǒng)的開(kāi)發(fā)目的。經(jīng)過(guò)對(duì)數(shù)據(jù)庫(kù)技術(shù)的現(xiàn)狀與發(fā)展、數(shù)據(jù)庫(kù)系統(tǒng)的選擇原則、系統(tǒng)開(kāi)發(fā)工具的選擇一系列問(wèn)題的分析,確定了系統(tǒng)的開(kāi)發(fā)平臺(tái)。接著詳細(xì)給出了從工資管理系統(tǒng)分析到總體設(shè)計(jì)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)及測(cè)試的各個(gè)環(huán)節(jié),最后對(duì)本系統(tǒng)作出了客觀評(píng)價(jià),指明了系統(tǒng)的現(xiàn)實(shí)意義、缺點(diǎn)以及系統(tǒng)的升級(jí)方向。引言隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)管理中的應(yīng)用越來(lái)越普及,利用計(jì)算機(jī)實(shí)現(xiàn)企業(yè)工資的管理顯得越來(lái)越重要。對(duì)于大中型企業(yè)來(lái)說(shuō),利用計(jì)算機(jī)支持企業(yè)高效率完成勞動(dòng)人事管理的日常事務(wù),是適應(yīng)現(xiàn)代企業(yè)制度要求、推動(dòng)企業(yè)勞動(dòng)人事管理走向科學(xué)化、規(guī)范化的必要條件;而工資管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作,工資計(jì)算、發(fā)放、核算的工作量很大,一般不允許出錯(cuò),如果實(shí)行手工操作,每月發(fā)放工資須手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不但能夠保證工資核算準(zhǔn)確無(wú)誤、快速輸出,而且還能夠利用計(jì)算機(jī)對(duì)有關(guān)工資的各種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)務(wù)部門(mén)其它方面的核算和財(cái)務(wù)處理,同時(shí)計(jì)算機(jī)具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事工資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。企業(yè)的工資管理是公司管理的一個(gè)重要內(nèi)容。隨著當(dāng)今企業(yè)人員數(shù)量增加,企業(yè)的工資計(jì)算也變得越來(lái)越復(fù)雜。如果能夠?qū)崿F(xiàn)工資管理的自動(dòng)化,無(wú)疑是給企業(yè)管理部門(mén)帶來(lái)很大的方便。資金是企業(yè)生存的主要元素。資金的流動(dòng)影響到企業(yè)的整體運(yùn)作,企業(yè)員工的工資是企業(yè)資金管理的一個(gè)重要的組成部分,因?yàn)槠髽I(yè)每個(gè)月都要涉及發(fā)放企業(yè)員工工資的問(wèn)題。企業(yè)員工的人數(shù)越多,工資的統(tǒng)計(jì)工作就越多,工資的發(fā)放困難就越大。最初的工資統(tǒng)計(jì)和發(fā)放都是使用人工方式處理,工作的時(shí)候,出現(xiàn)錯(cuò)誤的機(jī)率也隨之升高。工資管理系統(tǒng)就是使用電腦代替大量的人工統(tǒng)計(jì)和計(jì)算,完成眾多工資信息的處理,同時(shí)使用電腦還能夠安全地保存大量的工資記錄。企業(yè)工資管理系統(tǒng),為個(gè)人提供工資查詢服務(wù),為企業(yè)提供工資計(jì)算,工資統(tǒng)計(jì)等服務(wù)。傳統(tǒng)的紙張材料的數(shù)據(jù)信息管理已經(jīng)不適合現(xiàn)代企業(yè)公司的發(fā)展了,實(shí)現(xiàn)工資管理的系統(tǒng)化、規(guī)范化、自動(dòng)化,將成為現(xiàn)在公司管理工資的首選。本系統(tǒng)實(shí)現(xiàn)的工資管理系統(tǒng)基本上能夠滿足現(xiàn)代化企業(yè)工資管理的需求。2、企業(yè)工資管理系統(tǒng)概述2.1系統(tǒng)的主要功能企業(yè)工資管理系統(tǒng)的主要任務(wù)是用計(jì)算機(jī)對(duì)各種工資信息進(jìn)行日常的管理,如查詢、修改、增加、刪除以及存儲(chǔ)等,迅速準(zhǔn)確地完成各種工資信息的統(tǒng)計(jì)計(jì)算和匯總工作,快速打印出工資報(bào)表,針對(duì)系統(tǒng)服務(wù)對(duì)象的具體要求,設(shè)計(jì)了企業(yè)工資管理系統(tǒng)。企業(yè)工資管理系統(tǒng)主要有以下幾大功能:(1)對(duì)單位人員的變動(dòng)進(jìn)行處理。一個(gè)單位的職工不會(huì)是一成不變的,總是在不斷的變化:有調(diào)出、有調(diào)入、也有職工在本單位內(nèi)部調(diào)動(dòng)。因此,設(shè)計(jì)系統(tǒng)是應(yīng)考慮到這些情況。(2)對(duì)職工的工資進(jìn)行計(jì)算、修改。能對(duì)各職工的工資進(jìn)行計(jì)算,即計(jì)算應(yīng)發(fā)金額、應(yīng)扣金額及實(shí)發(fā)金額等。(3)查詢統(tǒng)計(jì)功能。要求即能夠單項(xiàng)查詢,比如查看某個(gè)職工的工資情況等;也能夠查詢?nèi)俊?4)報(bào)表打印功能。每月發(fā)放工資時(shí),要求能夠打印本月的工資表、隨工資發(fā)給每個(gè)職工的工資條以及工資統(tǒng)計(jì)表。2.2企業(yè)工資管理系統(tǒng)的應(yīng)用現(xiàn)狀2.2.1開(kāi)發(fā)背景隨著中國(guó)國(guó)民經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展和具有中國(guó)特色的社會(huì)主義市場(chǎng)經(jīng)濟(jì)體制的迅速完善,各個(gè)行業(yè)都在積極使用現(xiàn)代化的手段,不斷改進(jìn)服務(wù)質(zhì)量,提高工作效率,這些都在很大程度上給企業(yè)提出越來(lái)越嚴(yán)峻的挑戰(zhàn),對(duì)企業(yè)體系無(wú)論是在行政職能、企業(yè)管理水平以及優(yōu)質(zhì)服務(wù)上都提出更高的要求。建設(shè)一個(gè)科學(xué)高效的信息管理系統(tǒng)是解決這一問(wèn)題的必由之路。企業(yè)內(nèi)部財(cái)務(wù)管理是該企業(yè)運(yùn)用現(xiàn)代化技術(shù)創(chuàng)造更多更高的經(jīng)濟(jì)效益的主要因素之一。工資管理作為企業(yè)內(nèi)部的一種財(cái)務(wù)管理也是如此,由于企業(yè)職工人數(shù)較多,每一位職工的具體實(shí)際情況也不盡相同,各項(xiàng)工資條款的發(fā)放,如果沒(méi)有一個(gè)完整的管理系統(tǒng),僅憑手工操作來(lái)實(shí)現(xiàn)不但容易出錯(cuò),而且也造成資源的不必要浪費(fèi),因此開(kāi)發(fā)這個(gè)工資管理系統(tǒng)是很有必要的。2.2.2開(kāi)發(fā)環(huán)境系統(tǒng)運(yùn)行環(huán)境騰II或以上64MB內(nèi)存或以上Windows95或以上裝了VisualBasic6.0開(kāi)發(fā)工具1、VB的選用和簡(jiǎn)介現(xiàn)在,市場(chǎng)上能夠選購(gòu)的應(yīng)用開(kāi)發(fā)產(chǎn)品很多,流行的也有數(shù)十種。當(dāng)前在中國(guó)市場(chǎng)上最為流行、使用最多、最為先進(jìn)的可用作企業(yè)級(jí)開(kāi)發(fā)工具的產(chǎn)品有:Microsoft公司的VisualBasicMicrosoft公司的VisualCBorland公司的DelphiSun公司的Java等等在當(dāng)前市場(chǎng)上這些眾多的程序開(kāi)發(fā)工具中,有些強(qiáng)調(diào)程序語(yǔ)言的彈性與執(zhí)行效率;有些則偏重于可視化程序開(kāi)發(fā)工具所帶來(lái)的便利性與效率的提高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的需求。然而,語(yǔ)言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒(méi)有彈性的語(yǔ)言作支持,許多特殊化的處理動(dòng)作必須要耗費(fèi)數(shù)倍的工夫來(lái)處理,使得原來(lái)所標(biāo)榜的效率提高的優(yōu)點(diǎn)失去了作用;相反,如果只強(qiáng)調(diào)程序語(yǔ)言的彈性,卻沒(méi)有便利的工具作配合,會(huì)使一些即使非常簡(jiǎn)單的界面處理動(dòng)作,也會(huì)嚴(yán)重地浪費(fèi)程序設(shè)計(jì)師的寶貴時(shí)間。作為數(shù)據(jù)庫(kù)系統(tǒng)的開(kāi)發(fā),VB是一個(gè)非常理想選擇。VB因簡(jiǎn)單易學(xué)、功能強(qiáng)大、編譯速度快而從眾多的軟件開(kāi)發(fā)工具中脫穎而出。它提供了靈活的可視化設(shè)計(jì)工具,將可視化界面與面向?qū)ο蠹夹g(shù)完善、緊密地結(jié)合起來(lái),并封裝了Windows編程的復(fù)雜性。程序的規(guī)模小到簡(jiǎn)單的個(gè)人數(shù)據(jù)庫(kù)應(yīng)用,大到復(fù)雜的企業(yè)的多層次分布式系統(tǒng),都能夠使用VB進(jìn)行開(kāi)發(fā),其友好的集成開(kāi)發(fā)界面,可視化的雙向開(kāi)發(fā)模式,良好的數(shù)據(jù)庫(kù)應(yīng)用支持高效的程序開(kāi)發(fā)和程序運(yùn)行,備受廣大程序開(kāi)發(fā)人員的好評(píng)。特別是VB對(duì)數(shù)據(jù)庫(kù)應(yīng)用的強(qiáng)大支持,大大提高了數(shù)據(jù)庫(kù)應(yīng)用軟件開(kāi)發(fā)的效率,縮短了開(kāi)發(fā)周期,深受廣大數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)人員的喜愛(ài)。VB為數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)人員提供了豐富的數(shù)據(jù)庫(kù)開(kāi)發(fā)組件,使數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)功能更強(qiáng)大,控制更靈活,編譯后的程序運(yùn)行速度更快,VB是微軟公司出品的一個(gè)快速可視化程序開(kāi)發(fā)工具軟件,借助微軟在操作系統(tǒng)和辦公軟件的壟斷地位,VB在短短的幾年內(nèi)風(fēng)靡全球。VB是極有和功能強(qiáng)大的軟件,主要表現(xiàn)在:所見(jiàn)即所得的界面設(shè)計(jì),基于對(duì)象的設(shè)計(jì)方法,極短的軟件開(kāi)發(fā)周期,較易維護(hù)的生成代碼。美國(guó)微軟公司在1991年推出VB1.0至今已經(jīng)經(jīng)歷了6個(gè)版本,VB6.0運(yùn)行在win9x或winme,win,winxp,windowsNT等操作系統(tǒng)下,是一個(gè)32位的應(yīng)用程序開(kāi)發(fā)工具。VB程序語(yǔ)言具有許多優(yōu)秀的特性,用其設(shè)計(jì)應(yīng)用程序時(shí)有兩個(gè)基本特點(diǎn):可視化設(shè)計(jì)和事件驅(qū)動(dòng)編程。VisualBasic系統(tǒng)除了一般高級(jí)語(yǔ)言所具有的一些名詞術(shù)語(yǔ)外,還有幾個(gè)系統(tǒng)常見(jiàn)的名詞。其基本含義如下:視窗(Form)視窗是進(jìn)行人機(jī)交互的界面或接口,也叫窗體。VB系統(tǒng)的人機(jī)交互界面或接口,無(wú)論是在設(shè)計(jì)時(shí)或是在運(yùn)行時(shí),都是Windows系統(tǒng)的標(biāo)準(zhǔn)視窗。對(duì)象(Object)對(duì)象是VB系統(tǒng)內(nèi)部提供給設(shè)計(jì)者能夠直接使用的處理輸出的控制工具。本程序所應(yīng)用到的對(duì)象類型有標(biāo)簽框(LabelBox),文本框(TextBox),命令按扭(CommandButton),網(wǎng)格(DataGrid),ADO控件(Adodc1)等。當(dāng)把這些工具放置到用戶界面對(duì)應(yīng)的窗體上時(shí),被稱為對(duì)象或控件。用戶能夠經(jīng)過(guò)設(shè)置對(duì)象的”屬性”和”方法”,便于對(duì)象適應(yīng)自己所設(shè)計(jì)應(yīng)用程序的輸入輸出內(nèi)容,對(duì)象的生成過(guò)程及結(jié)構(gòu)都被封裝起來(lái)。正確使用對(duì)象能夠減少程序和開(kāi)發(fā)時(shí)間,提高程序設(shè)計(jì)者的工作效率。屬性(Properties)屬性是VB系統(tǒng)提供的有關(guān)對(duì)象的參數(shù)或數(shù)據(jù)接口。用戶經(jīng)過(guò)適當(dāng)?shù)卦O(shè)置或改變對(duì)象的屬性來(lái)確定對(duì)象的外觀及性能特征,從而有效地使用系統(tǒng)提供的對(duì)象。比如,對(duì)象的名稱、在屏幕上顯示的位置、大小、顏色、接收或容納的數(shù)據(jù)內(nèi)容及數(shù)據(jù)的表現(xiàn)格式等。事件(Events)事件是指用戶或操作者對(duì)計(jì)算機(jī)進(jìn)行的某一操作(如擊鍵、單擊或移動(dòng)鼠標(biāo)等)的行為或系統(tǒng)狀態(tài)發(fā)生的變化。VB系統(tǒng)常見(jiàn)事件來(lái)引導(dǎo)計(jì)算機(jī)執(zhí)行一段程序。程序所用的鍵盤(pán)事件有KeyPress(按鍵)事件,KeyDown事件和KeyUp事件;鼠標(biāo)事件有Click(單擊鼠標(biāo))事件,DbDlicd(雙擊鼠標(biāo))。方法(Method)方法主要是指對(duì)一個(gè)對(duì)象使用某種作用的過(guò)程。它是在程序執(zhí)行的過(guò)程中要計(jì)算機(jī)執(zhí)行的某種操作。其程序的方法有Show(顯示)方法,Hide(隱藏)方法,Refresh(刷新)方法。過(guò)程(Procedure)過(guò)程是指經(jīng)過(guò)定義或說(shuō)明的,或基于某一對(duì)象對(duì)應(yīng)的事件所引發(fā)的程序段。模塊(Module)模塊是指一些運(yùn)算量或過(guò)程進(jìn)行聲明或定義的一個(gè)集合。系統(tǒng)程序大致可分成四個(gè)模塊:數(shù)據(jù)輸入、根據(jù)查詢、數(shù)據(jù)打印和通訊。2、可視化設(shè)計(jì)同其它的一些可視化程序開(kāi)發(fā)工具一樣,VB具有可視化設(shè)計(jì)的特點(diǎn),微軟的Word在剛剛進(jìn)入市場(chǎng)時(shí),同WPS競(jìng)爭(zhēng)的一個(gè)重要的功能砝碼就是"所見(jiàn)即所得"的字處理功能,VB在設(shè)計(jì)應(yīng)用程序界面時(shí)也能夠說(shuō)是"所見(jiàn)即所得".在設(shè)計(jì)時(shí),頭腦中所想象的應(yīng)用程序界面,完全能夠經(jīng)過(guò)鍵盤(pán)鼠標(biāo)以及徒手畫(huà)出來(lái),而不是編制大量的代碼然后再編譯生成,如果需要修改,也是利用鍵盤(pán)鼠標(biāo)和手畫(huà),而底層的一些程序代碼由VB自動(dòng)生成或修改。VB為用戶提供大量的界面元素(在VB中稱為控件對(duì)象),這些控件對(duì)象對(duì)于熟悉Windows應(yīng)用程序的用戶而言是一點(diǎn)也不陌生,如"窗體"、"菜單"、"命令按鈕"、"工具按鈕"、"檢查框"等等,用戶只需要利用鼠標(biāo)、鍵盤(pán)把這些控件對(duì)象拖動(dòng)到適當(dāng)?shù)奈恢?設(shè)置它們的大小、形狀、屬性等,就能夠設(shè)計(jì)出所需的應(yīng)用程序界面。3、事件驅(qū)動(dòng)編程Windows操作系統(tǒng)出現(xiàn)以來(lái),圖形化的用戶界面和多任務(wù)多進(jìn)程的應(yīng)用程序要求程序設(shè)計(jì)不能是單一性的,在使用VB設(shè)計(jì)應(yīng)用程序時(shí),必須首先確定應(yīng)用程序如何同用戶進(jìn)行交互.例如發(fā)生鼠標(biāo)單擊、鍵盤(pán)輸入等事件時(shí),由用戶編寫(xiě)的代碼控制這些事件的響應(yīng),這就是所謂的事件驅(qū)動(dòng)編程。4、實(shí)現(xiàn)菜單選項(xiàng)菜單是程序最重要的特性之一,大多數(shù)程序都依賴一個(gè)定義良好的菜單使程序易于使用和維護(hù),VisualBasic也提供了強(qiáng)大的創(chuàng)立菜單功能是程序更加標(biāo)準(zhǔn)。本系統(tǒng)使用VisualBasic的菜單編輯器建立菜單或者修改已經(jīng)存在的菜單,您也能夠使用VisualBasic的ApplicationWizard來(lái)操作。5、實(shí)現(xiàn)工具欄CoolBar控件與Office中看到的CoolBar是類似的。CoolBar就是一個(gè)能夠在窗體上浮動(dòng)的工具,同時(shí)也是其它ActiveX的容器。經(jīng)過(guò)在CoolBar中遷入其它空間你也能夠向用戶提供更好的靈活性和義用性。選擇”工程”下拉菜單中的”部件”選項(xiàng),顯示”部件”對(duì)話框。在”控件”選項(xiàng)卡列表中選擇”MicrosoftWindowsCommonControls6.0”本系統(tǒng)就用了Cool工具中的Statubar控件,在系統(tǒng)這一界面中,添加了狀態(tài)欄,在第一個(gè)欄中,在樣式這一欄中選擇了文本,在第二個(gè)欄中,選擇了系統(tǒng)日期,第三個(gè)欄中選擇了系統(tǒng)時(shí)間,這樣,任何時(shí)候操作本系統(tǒng),都能夠看到當(dāng)前的時(shí)間和日期。使用Access實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的概念數(shù)據(jù)庫(kù)是一種存儲(chǔ)數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行操作的工具。數(shù)據(jù)庫(kù)的作用在于組織和表示信息,簡(jiǎn)而言之,數(shù)據(jù)庫(kù)就是信息的集合。計(jì)算機(jī)的數(shù)據(jù)庫(kù)能夠分為兩類:非關(guān)系數(shù)據(jù)庫(kù)(flat-file)和關(guān)系數(shù)據(jù)庫(kù)(relational)。關(guān)系數(shù)據(jù)庫(kù)中包含了多個(gè)數(shù)據(jù)表的信息,數(shù)據(jù)庫(kù)含有各個(gè)不同部分的術(shù)語(yǔ),對(duì)象記錄、域等。新建一個(gè)數(shù)據(jù)庫(kù)創(chuàng)立任何一個(gè)數(shù)據(jù)庫(kù)的第一步是仔細(xì)的規(guī)劃數(shù)據(jù)庫(kù),設(shè)計(jì)必須是靈活的、有邏輯的。創(chuàng)立一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)的過(guò)程被認(rèn)為是數(shù)據(jù)模型設(shè)計(jì)。1.標(biāo)識(shí)需要的數(shù)據(jù);2.收集被標(biāo)識(shí)的字段到表中;3.標(biāo)識(shí)主關(guān)鍵字字段;4.繪制一個(gè)簡(jiǎn)單的數(shù)據(jù)圖表;5.規(guī)范數(shù)據(jù);6.標(biāo)識(shí)指定字段的信息;7.創(chuàng)立物理表。修改已建的數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的修改分為:添加、編輯和刪除記錄。這三種操作均可由VisualBasic創(chuàng)立的程序來(lái)完成,下面的章節(jié)將詳細(xì)描述實(shí)現(xiàn)的具體方法。6、實(shí)現(xiàn)數(shù)據(jù)庫(kù)之間的聯(lián)系數(shù)據(jù)庫(kù)之間的關(guān)系指明兩個(gè)庫(kù)之間共享一個(gè)共同的關(guān)鍵字值。一個(gè)連接是指一種虛擬的表,這種表是在當(dāng)用戶要求從相互關(guān)聯(lián)的各個(gè)不同的表中獲取信息時(shí)建立的,關(guān)鍵字段用于在相互連接的不同表中查找匹配的記錄。一個(gè)更高級(jí)的連接形式稱為自連接。這種連接是指一個(gè)表被連接到它自己的一個(gè)字段,或在不同的記錄中由重復(fù)數(shù)據(jù)的組合字段。數(shù)據(jù)庫(kù)中有三種不同類型的關(guān)鍵字:主關(guān)鍵字、組合關(guān)鍵字和外關(guān)鍵字。在表中使用的關(guān)鍵字類型用于描述庫(kù)表示什么以及在數(shù)據(jù)庫(kù)中如何與其它的庫(kù)建立關(guān)系。2.2.3數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是經(jīng)過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS-DATABASEMANAGEMENTSYSTEM)軟件來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、管理與使用的DBASELL就是一種數(shù)據(jù)庫(kù)管理系統(tǒng)軟件。(1)數(shù)據(jù)庫(kù)的概念數(shù)據(jù)庫(kù)是存儲(chǔ)在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無(wú)有害的或不必要的冗余,并為多種應(yīng)用服務(wù);數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用它的程序;對(duì)數(shù)據(jù)庫(kù)插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的,和可控制的方式進(jìn)行。當(dāng)某個(gè)系統(tǒng)中存在結(jié)構(gòu)上完全分開(kāi)的若干個(gè)數(shù)據(jù)庫(kù)時(shí),則該系統(tǒng)包含一個(gè)"數(shù)據(jù)庫(kù)集合"。(2)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)使用數(shù)據(jù)庫(kù)能夠帶來(lái)許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲(chǔ)空間;實(shí)現(xiàn)數(shù)據(jù)資源的充分共享等等。另外,數(shù)據(jù)庫(kù)技術(shù)還為用戶提供了非常簡(jiǎn)便的使用手段使用戶易于編寫(xiě)有關(guān)數(shù)據(jù)庫(kù)應(yīng)用程序。(3)數(shù)據(jù)庫(kù)文件的特征無(wú)論使用哪一種數(shù)據(jù)庫(kù)管理系統(tǒng),由它們所建立的數(shù)據(jù)庫(kù)文件都能夠看成是具有相同性質(zhì)的記錄的集合,因而這些數(shù)據(jù)庫(kù)文件都有相同的特性:文件的記錄格式相同,長(zhǎng)度相等。不同的行是不同的記錄,因而具有不同的內(nèi)容。不同的列表示不同的字段名,同一列中的數(shù)據(jù)的性質(zhì)(屬性)相同。每一行各列的內(nèi)容是不能分割的,但行的順序和列的順序不影響文件內(nèi)容的表示。3系統(tǒng)分析3.1系統(tǒng)需求分析本系統(tǒng)的開(kāi)發(fā)宗旨以及總體任務(wù)就是幫助企業(yè)的財(cái)務(wù)主管部門(mén)提高工作效率,實(shí)現(xiàn)企業(yè)工資信息管理的自動(dòng)化、規(guī)范化和系統(tǒng)化。因此為了能夠?qū)崿F(xiàn)編制這個(gè)系統(tǒng)所設(shè)定的目標(biāo),在程序的開(kāi)發(fā)之前,需求分析是必不可少的。需求分析的第一步描述工資管理系統(tǒng)的功能,即定義用例,以此確定系統(tǒng)的功能需求。工資管理系統(tǒng)的用例分析主要是找出系統(tǒng)中所有的用例,因此要和工資管理系統(tǒng)的潛在用戶進(jìn)行討論。系統(tǒng)最終實(shí)現(xiàn)的主要功能如下。工資管理系統(tǒng)的用例包括:(1)系統(tǒng)管理(2)工資設(shè)置(3)工資統(tǒng)計(jì)(4)工資查詢(5)工資表導(dǎo)出(6)打印報(bào)表系統(tǒng)管理用例包括添加用戶和修改密碼。都經(jīng)過(guò)其相應(yīng)的窗口來(lái)實(shí)現(xiàn)。工資設(shè)置用例包括基本工資設(shè)置和其它項(xiàng)目設(shè)置。其它項(xiàng)目設(shè)置有獎(jiǎng)金、津貼、福利、扣發(fā)等項(xiàng)目。工資統(tǒng)計(jì)用例能夠根據(jù)不同的月份對(duì)其進(jìn)行相應(yīng)地統(tǒng)計(jì)。工資查詢用例包括單人查詢和查詢所有,能夠顯示員工基本工資、員工其它項(xiàng)目情況,以及員工工資具體統(tǒng)計(jì)情況。工資表導(dǎo)出用例可根據(jù)所需的月份把工資表導(dǎo)出并可直接顯示在Excel表格中,而且能夠加以保存。打印報(bào)表用例是一個(gè)很重要的一個(gè)用例,它提供給用戶生成報(bào)表和報(bào)印的功能,能夠很方便地將員工的工資情況表打印出來(lái)。3.1.1系統(tǒng)目標(biāo)采用公司現(xiàn)有的軟硬件及科學(xué)的管理系統(tǒng)開(kāi)發(fā)方案,建立工資管理系統(tǒng),實(shí)現(xiàn)企業(yè)工資管理的計(jì)算機(jī)自動(dòng)化。系統(tǒng)應(yīng)符合公司人事、工資管理制度,并達(dá)到操作直觀、方便、實(shí)用、安全等要求。3.1.2數(shù)據(jù)流程圖基本工資等設(shè)置基本工資等設(shè)置月度員工考勤表基本工資獎(jiǎng)金等表計(jì)算工資導(dǎo)出或打印工資表月度工資發(fā)放工資圖3-1數(shù)據(jù)流程圖3.2系統(tǒng)功能調(diào)查系統(tǒng)從總體上能夠分為系統(tǒng)管理、工資信息設(shè)置、工資信息管理、打印報(bào)表等功能。3.2.1系統(tǒng)管理功能(1)添加用戶:使用這個(gè)用戶登錄后,能夠添加其它用戶(2)修改密碼:每一個(gè)用戶都能夠更改自己的密碼3.2.2工資信息設(shè)置功能(1)基本工資設(shè)置:按照員工編號(hào)或職務(wù)設(shè)置員工的基本工資信息。(2)其它項(xiàng)目設(shè)置:設(shè)置單個(gè)員工的獎(jiǎng)金,福利、津貼、出差費(fèi)、加班費(fèi)等信息。(3)工資計(jì)算公式設(shè)置:設(shè)置員工實(shí)發(fā)工資的計(jì)算公式信息。3.2.3工資信息管理功能出勤統(tǒng)計(jì):按照月份統(tǒng)計(jì)員工的當(dāng)月出勤信息。計(jì)算實(shí)發(fā)工資:計(jì)算當(dāng)月員工實(shí)發(fā)工資的金額。查詢工資:能夠按月查詢所有員工工資信息或查詢個(gè)人工資信息。(4)導(dǎo)出工資表:把數(shù)據(jù)庫(kù)中員工的工資信息導(dǎo)出到Excel中。3.2.4打印報(bào)表功能(1)基本工資列表打印:打印出基本工資列表(2)其它項(xiàng)目打印:打印其它項(xiàng)目列表(3)工資統(tǒng)計(jì)列表打印:打印工資統(tǒng)計(jì)列表3.3系統(tǒng)功能模塊圖基本工資設(shè)置基本工資設(shè)置其它項(xiàng)目設(shè)置計(jì)算公式設(shè)置員工資料設(shè)置添加用戶退出修改密碼工資信息設(shè)置系統(tǒng)管理工資信息管理打印報(bào)表企業(yè)工資管理系統(tǒng)工資統(tǒng)計(jì)打印其它項(xiàng)目打印基本工資打印工資表導(dǎo)出查詢工資計(jì)算實(shí)發(fā)工資出勤統(tǒng)計(jì)圖3-2系統(tǒng)功能模塊圖4系統(tǒng)概要設(shè)計(jì)4.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)基礎(chǔ)是完成需求分析后提供的需求說(shuō)明書(shū),用概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的關(guān)系,這種數(shù)據(jù)模型是與DBMS無(wú)關(guān)的、面向現(xiàn)實(shí)世界的、易如理解的數(shù)據(jù)模型,其獨(dú)立于計(jì)算機(jī)的數(shù)據(jù)模型,獨(dú)立于計(jì)算機(jī)的軟硬件系統(tǒng),與用戶進(jìn)行交流十分方便。概念性數(shù)據(jù)模型關(guān)心的是如何完整、正確地反映客觀實(shí)際情況,不關(guān)心在數(shù)據(jù)庫(kù)中如何實(shí)現(xiàn)。這種數(shù)據(jù)模式能真實(shí)地反應(yīng)用戶要求的實(shí)際情況,是一種容易被人們理解的直觀的數(shù)據(jù)庫(kù)結(jié)構(gòu)模式。同時(shí)也是一種相對(duì)穩(wěn)定統(tǒng)一的數(shù)據(jù)模式,一般情況下很少變動(dòng)。概念性數(shù)據(jù)在用戶和設(shè)計(jì)者之間建立了橋梁。是設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)的基礎(chǔ)。概念設(shè)計(jì)中自頂向下的實(shí)體分析方法,即常見(jiàn)的實(shí)體聯(lián)系模型(簡(jiǎn)稱E-R模型),對(duì)具體數(shù)據(jù)進(jìn)行抽象加工,將實(shí)體集合抽象成實(shí)體類型。用實(shí)體間聯(lián)系反映現(xiàn)實(shí)世界事物間的內(nèi)在聯(lián)系。E-R模型是建立概念性數(shù)據(jù)模型的有力工具。經(jīng)過(guò)對(duì)企業(yè)員工管理內(nèi)容、工資管理內(nèi)容和過(guò)程的分析,本系統(tǒng)設(shè)計(jì)的實(shí)體和屬性如下及圖4-1和圖4-2:員工(包括員工編號(hào)、員工姓名、性別、籍貫、年齡、生日、學(xué)歷、專業(yè)、住址、郵編、電話、Email、參加工作時(shí)間、進(jìn)入公司時(shí)間、起薪時(shí)間、備注)部門(mén)(員工編號(hào)、部門(mén)名稱)職務(wù)(員工編號(hào)、職務(wù)名稱)職稱(員工編號(hào)、職稱名稱)工資結(jié)構(gòu)(員工編號(hào)、正常加班工資、特殊加班工資、出差工資、曠工工資、遲到早退)工資帳目(工資帳目代號(hào)、工資帳目名稱)員工員工員工姓名性別員工編號(hào)籍貫?zāi)挲g生日學(xué)歷專業(yè)住址郵編電話Email參加工作時(shí)間進(jìn)入公司時(shí)間起薪時(shí)間備注圖4-1員工信息圖部門(mén)部門(mén)部門(mén)代號(hào)部門(mén)名稱職務(wù)職務(wù)代號(hào)職務(wù)名稱職稱職稱代號(hào)職稱名稱工資賬目工資賬目代號(hào)工資賬目名稱工資結(jié)構(gòu)員工編號(hào)正常加班工資特殊加班工資出差工資曠工工資遲到早退圖4-2工資管理內(nèi)容分析圖4.2實(shí)體和實(shí)體之間的關(guān)系E-R圖部門(mén)部門(mén)屬于職稱職務(wù)員工具有擔(dān)任具有工資結(jié)構(gòu)工資賬目具有圖4-3實(shí)體之間的關(guān)系E-R圖4.3數(shù)據(jù)庫(kù)設(shè)計(jì)Access在VB中的應(yīng)用非常廣泛,為此我選用Access數(shù)據(jù)庫(kù)來(lái)進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。根據(jù)前面定義的實(shí)體及實(shí)休之間的關(guān)系,形成數(shù)據(jù)庫(kù)的表格以及各個(gè)表之間的關(guān)系。4.3.1Person數(shù)據(jù)庫(kù)(員工數(shù)據(jù)庫(kù))(1)StuffInfo(員工資料表):員工基本信息表用于存儲(chǔ)員工基本信息,為保證數(shù)據(jù)的一致和歷史資料的完整,表的記錄在一般的情況不能被刪除。表4-1StuffInfo(員工資料表)序號(hào)字段名字段中文名類型1SID員工編號(hào)文本2SName員工姓名文本3SGender性別文本4SPlace籍貫文本5SAge年齡長(zhǎng)整型6SBirthday生日日期/時(shí)間7SDegree學(xué)歷文本8SSpecial專業(yè)文本9SAddress住址文本10SCode郵編文本11STel電話文本12SEmailEmail文本13SWorkTime參加工作時(shí)間日期/時(shí)間14SInTime進(jìn)入公司時(shí)間日期/時(shí)間15SDept部門(mén)文本16SPayTime起薪時(shí)間日期/時(shí)間17SPosition職務(wù)文本18SRemark備注文本(2)UserInfo(用戶口令表):為了便于多個(gè)用戶管理該系統(tǒng),建立此表,記錄用戶的登錄用戶名和口令。表4-2UserInfo(用戶口令表)序號(hào)字段名字段中文名類型1UserID用戶名稱文本2UserPWD用戶密碼文本(3)OverTimeInfo(加班情況表):用于存儲(chǔ)員工加班的情況,在計(jì)算工資時(shí)便于統(tǒng)計(jì)。表4-5OverTimeInfo(加班情況表)序號(hào)字段名字段中文名類型1OID記錄編號(hào)自動(dòng)編號(hào)2OStuffID員工編號(hào)文本3OSpeciality特殊加班天數(shù)數(shù)字4OCommon正常加班天數(shù)數(shù)字5OFromday加班日期日期/時(shí)間4.3.2Salary數(shù)據(jù)庫(kù)(工資數(shù)據(jù)庫(kù))(1)AttendanceStatistics(員工出勤表):用于統(tǒng)計(jì)員工的出勤情況,為統(tǒng)計(jì)工資時(shí)提供方便。表4-7AttendanceStatistics(員工出勤表)序號(hào)字段名字段中文名類型1StuffID員工編號(hào)文本2StuffName員工姓名文本3RecordMonth統(tǒng)計(jì)時(shí)間日期時(shí)間4Attendance出勤天數(shù)日期/時(shí)間5LateEarly遲到早退次數(shù)數(shù)字6Absent曠工次數(shù)數(shù)字7OverTimeCom正常加班次數(shù)數(shù)字8OverTimeSpe特殊加班次數(shù)數(shù)字9Errand出差次數(shù)數(shù)字(2)FormulaSetting(工資設(shè)置表):用于設(shè)置工資的各項(xiàng)情況。表4-8FormulaSetting(工資設(shè)置表)序號(hào)字段名字段中文名類型1OvertimeCom正常加班工資百分比數(shù)字2OvertimeSpe特殊加班工資百分比數(shù)字3Errand出差工資數(shù)字4Absent曠工工資數(shù)字5Le遲到早退數(shù)字(3)Salaryother(其它工資項(xiàng)目表):用于存儲(chǔ)不同名稱的其它工資,比如獎(jiǎng)金、津貼、福利等。表4-9Salaryother(其它工資項(xiàng)目表)序號(hào)字段名字段中文名類型1StuffID員工編號(hào)文本2YearMonth年月日期/時(shí)間3Type類型數(shù)字4Name名稱文本5Money金額貨幣6Remark備注備注(4)SalarySetting(基本工資設(shè)置):用于存儲(chǔ)不同職稱的員工的基本工資。表4-10SalarySetting(基本工資設(shè)置)序號(hào)字段名字段中文名類型1StuffID員工編號(hào)文本2Sposition員工職務(wù)文本3Salary基本工資貨幣(5)UserInfo(用戶表):用于存儲(chǔ)新添加的用戶,當(dāng)添加完用戶時(shí),就被存儲(chǔ)在此表中。表4-11UserInfo(用戶表)序號(hào)字段名字段中文名類型1UserID用戶名稱文本2UserPWD用戶密碼文本(6)SalaryStatistics(工資情況表):用于存儲(chǔ)員工的工資情況表,便于明確查看。表4-12SalaryStatistics(工資情況表)序號(hào)字段名字段中文名類型1StuffName員工編號(hào)文本2Stuffname員工姓名文本3YearMonth時(shí)間日期/時(shí)間4Basicsalary基本工資貨幣5Bonus獎(jiǎng)金貨幣6Welfare福利貨幣7Allowance津貼貨幣8Abatement扣發(fā)貨幣9LeSub遲到早退扣發(fā)貨幣10AbsentSub曠工扣發(fā)貨幣11Overtime加班費(fèi)貨幣12Others其它金額貨幣13Total總額貨幣5詳細(xì)設(shè)計(jì)根據(jù)系統(tǒng)分析、系統(tǒng)概要設(shè)計(jì)的結(jié)果,采用VB作為開(kāi)發(fā)工具,實(shí)現(xiàn)公司工資管理各模塊的功能。系統(tǒng)運(yùn)行時(shí),首先出現(xiàn)在用戶面前的就是一個(gè)登錄窗口。5.1登錄窗體設(shè)計(jì)5.1.1功能說(shuō)明它主要是控制員工登錄,防止非法用戶闖入本系統(tǒng),保證系統(tǒng)的安全,輸入口令時(shí)屏幕顯示為”*”以利保密。在開(kāi)發(fā)過(guò)程當(dāng)中,我還給系統(tǒng)限制了登錄出錯(cuò)的次數(shù),如果用戶名或密碼出錯(cuò)超過(guò)三次,那就自動(dòng)退出系統(tǒng)。系統(tǒng)登陸時(shí),要求正確輸入用戶名和密碼。成功登陸后顯示如圖4-2所示工資管理系統(tǒng)主界面。用戶名分為管理員用戶和普通用戶。如圖4-1所示: 圖4-1登錄窗口實(shí)現(xiàn)功能的部分主要代碼:PrivateSubComok_Click()OnErrorGoToDealerrorDimstrSqlAsStringDimstrMsgAsString'OnErrorGoToDealerrorDimobjCnAsNewConnectionstrcn=CS()objCn.ConnectionString=strcnobjCn.OpenSetobjRs=NewRecordsetSetobjRs.ActiveConnection=objCnobjRs.CursorLocation=adUseClientstrSql="SELECT*FROM系統(tǒng)用戶"objRs.OpenstrSqlobjRs.ActiveConnection=NothingobjCn.CloseSetobjCn=NothingIfLogontimes>=3ThenMsgBox"你已經(jīng)超過(guò)最大登陸次數(shù)!退出系統(tǒng)",vbOKOnly+vbCritical,"系統(tǒng)登錄"EndElseobjRs.MoveFirstobjRs.Find"用戶名='"&txtUserName&"'"IfobjRs.EOFThenMsgBox"用戶名錯(cuò)誤!",vbOKOnly+vbCritical,"系統(tǒng)登錄"txtUserName.SetFocustxtUserName.Text=""ElseIfobjRs!口令<>txtPasswordThenMsgBox"密碼錯(cuò)誤!請(qǐng)重新輸入!",vbOKOnly+vbCritical,"系統(tǒng)登錄"txtPassword.SetFocustxtPassword.Text=""Else'MsgBox"歡迎使用工資管理系統(tǒng)",vbOKCancel+vbOKOnly,"系統(tǒng)登錄"strusername=txtUserNameuserpassword=txtPassword IfCmbStatus=""Then MsgBox"請(qǐng)選擇登陸身份!",vbOKOnly+vbCritical,"系統(tǒng)登錄" CmbStatus.SetFocus Else IfCmbStatus.ListIndex=0AndobjRs!admin=TrueThen UserAdmin=1 EndIf IfCmbStatus.ListIndex=0AndobjRs!admin=FalseThen X=MsgBox("你不是管理員,將以普通用戶登陸",vbOKCancel+vbOKOnly,"系統(tǒng)登錄") EndIf IfX=2Then txtUserName.SetFocus txtUserName.Text="" txtPassword.Text="" Else '添加操作員登陸時(shí)間 strSql="insertintot_login(用戶,登錄時(shí)間)values('"&txtUserName&"','"&Now&"')" SetobjRs=ExecuteSQL(strSql,strMsg) UnloadMe MDIForm1.Show EndIfEndIfEndIfEndIfEndIfLogontimes=Logontimes+1'登陸次數(shù)ExitSubDealerror:msg="程序執(zhí)行出錯(cuò),錯(cuò)誤信息如下:"&vbCrLf&Err.DescriptionShowErrormsgEndSubDimobjRsAsRecordsetDimiAsIntegerDimLogontimesAsIntegerPrivateSubComcancle_Click()n=MsgBox("你選擇了退出系統(tǒng)登陸,退出將不能啟動(dòng)管理系統(tǒng)!"&vbCrLf&"是否真的退出?",vbYesNo,"系統(tǒng)驗(yàn)證")Ifn=vbYesThenUnloadMeEndIfEndSub5.2主窗口設(shè)計(jì)5.2.1功能說(shuō)明界面采用MDI方式,可同時(shí)打開(kāi)幾個(gè)子窗體,在界面上放置了菜單欄,它集中了系統(tǒng)操作的入口,各功能模塊的執(zhí)行從此進(jìn)入。其總體模塊圖如下所示:主菜單主菜單系統(tǒng)管理工資信息設(shè)置工資信息管理打印報(bào)表圖5-2總體模塊圖5.3系統(tǒng)管理模塊5.3.1功能說(shuō)明系統(tǒng)管理模塊主要實(shí)現(xiàn)的是添加用戶和修改密碼的功能,當(dāng)想要添加用戶時(shí),就可直接在添加用戶這個(gè)窗體上進(jìn)行錄入;而用戶想要修改密碼時(shí)則能夠在修改密碼這個(gè)窗口上進(jìn)行操作,此時(shí)用戶必須記得原先的密碼才能進(jìn)行修改,而且修改密碼時(shí)設(shè)置了再次確認(rèn)密碼,以免由于誤輸而導(dǎo)致操作無(wú)法完成。添加用戶窗體代碼如下:PrivateSubcmdCancel_Click()UnloadMeExitSubEndSubPrivateSubcmdOK_Click()DimsqlAsStringDimrsAsADODB.RecordsetIfTrim(username.Text)=""ThenMsgBox"請(qǐng)輸入用戶名稱",vbOKOnly+vbExclamation,"警告"'ExitSubusername.SetFocusElsesql="select*from系統(tǒng)用戶where用戶名='"&username&"'"Setre=getrs(sql,"gzgl")Ifre.EOF=FalseThenMsgBox"這個(gè)用戶已經(jīng)存在,請(qǐng)重新輸入用戶名",vbOKOnly+vbExclamation,"警告"username.SetFocususername.Text=""password.Text=""confirmpwd.Text=""ExitSubElseIfTrim(password.Text)<>Trim(confirmpwd.Text)ThenMsgBox"兩次輸入密碼不一致,請(qǐng)重新輸入密碼",vbOKOnly+vbExclamation,"警告"password.Text=""confirmpwd.Text=""password.SetFocusExitSubElseIfTrim(password.Text)=""ThenMsgBox"密碼不能為空",vbOKOnly+vbExclamation,"警告"password.Text=""confirmpwd=""password.SetFocusElseIfAdminCheck=FalseThensql="insertinto系統(tǒng)用戶(用戶名,口令)values('"&usernamesql=sql&"','"&password&"')"Calltransactsql(sql,"gzgl")Elsesql="insertinto系統(tǒng)用戶(用戶名,口令,admin)values('"&usernamesql=sql&"','"&passwordsql=sql&"','"&UserAdmin&"')"EndIfCalltransactsql(sql,"gzgl")MsgBox"添加成功",vbOKOnly+vbExclamation,"添加結(jié)果"username.Text=""password.Text=""confirmpwd.Text=""username.SetFocusIfCheck1=FalseThenUnloadMeEndIfEndIfEndIfEndIfEndSubPrivateSubForm_Load()Me.Left=ReadIni("添加用戶","left")Me.Top=ReadIni("添加用戶","top")EndSubPrivateSubForm_Unload(CancelAsInteger)CallWriteIni("添加用戶","left",Me.Left)CallWriteIni("添加用戶","top",Me.Top)EndSub修改密碼窗體代碼如下:PrivateSubcmdCancel_Click()UnloadMeExitSubEndSubPrivateSubcmdOK_Click()DimsqlAsStringDimrsAsADODB.RecordsetIfTrim(oldpwd.Text)=""ThenMsgBox"請(qǐng)輸入舊密碼",vbOKOnly+vbExclamation,"提示"oldpwd.SetFocusExitSubElseIfTrim(oldpwd.Text)<>Trim(userpassword)ThenMsgBox"舊密碼與登錄的密碼不同,請(qǐng)重新輸入!",vbOKOnly+vbExclamation,"提示"oldpwd.Text=""oldpwd.SetFocusElseIfTrim(newpwd.Text)=""ThenMsgBox"請(qǐng)輸入新密碼",vbOKOnly+vbExclamation,"提示"newpwd.SetFocusExitSubElseIfTrim(newpwd.Text)<>Trim(confirmpwd.Text)ThenMsgBox"兩次密碼不同",vbOKOnly+vbExclamation,"警告"newpwd.Text=""confirmpwd.Text=""newpwd.SetFocusElseuserpassword=newpwdsql="update系統(tǒng)用戶set口令='"&newpwd&"'where用戶名='"&strusername&"'"Calltransactsql(sql,"gzgl")MsgBox"密碼已經(jīng)修改",vbOKOnly+vbExclamation,"修改結(jié)果"UnloadMeEndIfEndIfEndSubPrivateSubForm_Load()Me.Left=ReadIni("修改密碼","left")Me.Top=ReadIni("修改密碼","top")EndSubPrivateSubForm_Unload(CancelAsInteger)CallWriteIni("修改密碼","left",Me.Left)CallWriteIni("修改密碼","top",Me.Top)EndSub5.4工資信息設(shè)置模塊5.4.1功能說(shuō)明工資信息設(shè)置基基本工資設(shè)置工資信息設(shè)置基基本工資設(shè)置其它項(xiàng)目設(shè)置基員工資料設(shè)置圖5-5分解模塊圖員工基本檔案信息的實(shí)現(xiàn):員工基本檔案信息管理,在窗體中完成員工基本信息的錄入工作。根據(jù)提示在該窗體中輸入相應(yīng)的信息,最后單擊”保存”按鈕,進(jìn)行信息的保存。如圖4-3所示圖4-3員工基本檔案信息錄入窗口相應(yīng)部分代碼如下:'添加員工基本信息PrivateSubcmdOK_Click()DimrsAsADODB.RecordsetDimstrSqlAsStringDimstrMsgAsStringDimtmpPathAsStringDimiStmAsADODB.Stream'如果是修改(保存照片--刪除原記錄--保存記錄)IfblnChange=TrueThen'如果不要?jiǎng)h除IfblnDelPhoto=FalseThen strSql="select*fromt_brwhere工號(hào)='"&txtGH.Text&"'" Setrs=ExecuteSQL(strSql,strMsg) '保存到文件 tmpPath=App.path&"\temp.jpg" IfNotIsNull(rs.Fields("照片").Value)Then SetiStm=NewADODB.Stream WithiStm.Mode=adModeReadWrite.Type=adTypeBinary.Open.Writers.Fields("照片").Value.SaveToFiletmpPath blnDel=True EndWith strFileName=tmpPath 'pic.Picture=LoadPicture(tmpPath) iStm.CloseElseblnDel=FalseEndIfrs.CloseEndIf'刪除記錄strSql="delete*fromt_brwhere工號(hào)='"&txtGH.Text&"'"Setrs=ExecuteSQL(strSql,strMsg)ElsestrSql="select*fromt_brwhere工號(hào)='"&txtGH.Text&"'"Setrs=ExecuteSQL(strSql,strMsg)Ifrs.EOF=FalseThenMsgBox"已有相同的工號(hào),無(wú)法添加到數(shù)據(jù)庫(kù)!",vbOKOnly+vbExclamation,"警告"TextFocustxtGHExitSubEndIfrs.CloseEndIfstrSql="select*fromt_br"Setrs=ExecuteSQL(strSql,strMsg)rs.AddNewrs.Fields("工號(hào)")=txtGH.Textrs.Fields("姓名")=txtName.TextIfcboPayStyle.Text=""Then rs.Fields("工資類別")=NullElse rs.Fields("工資類別")=cboPayStyle.TextEndIfIfcboHealthy.Text=""Then rs.Fields("健康狀況")=NullElse rs.Fields("健康狀況")=cboHealthy.TextEndIfIfcboSex.Text=""Then rs.Fields("性別")=NullElse rs.Fields("性別")=cboSex.TextEndIfIfcboEmployeeStyle.Text=""Then rs.Fields("職工類型")=NullElse rs.Fields("職工類型")=cboEmployeeStyle.TextEndIfIfcboPart.Text=""Then rs.Fields("部門(mén)")=NullElse rs.Fields("部門(mén)")=cboPart.TextEndIfIfcboDuty.Text=""Then rs.Fields("職務(wù)")=NullElse rs.Fields("職務(wù)")=cboDuty.TextEndIfIfcboCulture.Text=""Then rs.Fields("文化程度")=NullElse rs.Fields("文化程度")=cboCulture.TextEndIfIfcboNation.Text=""Then rs.Fields("民族")=NullElse rs.Fields("民族")=cboNation.TextEndIf'數(shù)字型IftxtMoney.Text=""Then rs.Fields("薪金")=0Else rs.Fields("薪金")=txtMoney.TextEndIfIfcboSpec.Text=""Then rs.Fields("所學(xué)專業(yè)")=NullElse rs.Fields("所學(xué)專業(yè)")=cboSpec.TextEndIf'年齡為數(shù)字型IftxtAge.Text=""Then rs.Fields("年齡")=0Else rs.Fields("年齡")=txtAge.TextEndIf'日期型rs.Fields("生日")=dtpBirthday.ValueIfcboPolity.Text=""Then rs.Fields("政治面貌")=NullElse rs.Fields("政治面貌")=cboPolity.TextEndIfIfcboMarry.Text=""Then rs.Fields("婚姻狀況")=NullElse rs.Fields("婚姻狀況")=cboMarry.TextEndIfIfcboNativePlace.Text=""Then rs.Fields("籍貫")=NullElse rs.Fields("籍貫")=cboNativePlace.TextEndIfIftxtHandset.Text=""Then rs.Fields("手機(jī)")=0Else rs.Fields("手機(jī)")=txtHandset.TextEndIfIftxtIdentity.Text=""Then rs.Fields("身份證號(hào)")=NullElse rs.Fields("身份證號(hào)")=txtIdentity.TextEndIfIftxtTelphone.Text=""Then rs.Fields("聯(lián)系電話")=NullElse rs.Fields("聯(lián)系電話")=txtTelphone.TextEndIfIftxtHomeAddress.Text=""Then rs.Fields("家庭住址")=NullElse rs.Fields("家庭住址")=txtHomeAddress.TextEndIf'日期型rs.Fields("合同開(kāi)始時(shí)間")=dtpBBargain.Valuers.Fields("合同終止時(shí)間")=dtpEBargain.ValueIftxtLong.Text=""Then rs.Fields("工齡")=0Else rs.Fields("工齡")=txtLong.TextEndIf'添加照片SetiStm=NewADODB.StreamIfLen(strFileName)>0Then WithiStm .Type=adTypeBinary'二進(jìn)制模式 .Open .LoadFromFilestrFileName EndWith rs.Fields("照片")=iStm.Read rs.Update iStm.CloseElse rs.UpdateEndIfrs.CloseSetrs=NothingcmdDel.Enabled=TrueCallDisabledControlcmdNew.Enabled=TrueMsgBox"添加成功"IfblnDelThen IftmpPath<>""Then KilltmpPathEndIfEndIfCallRefreshGridEndSub5.5工資信息管理模塊5.5.1功能說(shuō)明此模塊是整個(gè)系統(tǒng)中最重要的一部分,包括出勤統(tǒng)計(jì)、計(jì)算實(shí)發(fā)工資、查詢工資和導(dǎo)出工資表這些功能,其分解模塊圖如下:工資信息管理工資信息管理出勤統(tǒng)計(jì)計(jì)算實(shí)發(fā)工資查詢工資導(dǎo)出工資表圖5-8分解模塊圖出勤統(tǒng)計(jì)這個(gè)窗口是為管理員統(tǒng)計(jì)員工的出勤情況而提供的,管理員能夠選擇所需的月份來(lái)統(tǒng)計(jì)員工的當(dāng)月出勤信息,同時(shí)這個(gè)統(tǒng)計(jì)結(jié)果也為計(jì)算員工的本月工資提供了方便。設(shè)計(jì)這個(gè)功能時(shí)我考慮到了這個(gè)月份是否存在,如果存在還要看是否已經(jīng)被統(tǒng)計(jì)過(guò)了,如果已經(jīng)統(tǒng)計(jì)過(guò)了則提示”已經(jīng)統(tǒng)計(jì)”,未統(tǒng)計(jì)的在進(jìn)行統(tǒng)計(jì)后則提示”完成統(tǒng)計(jì)”;如果這個(gè)月份不存在時(shí)則提示”請(qǐng)重新選擇”。計(jì)算實(shí)發(fā)工資這個(gè)窗口的界面和出勤統(tǒng)計(jì)的界面幾乎類似,設(shè)計(jì)思路也和出勤統(tǒng)計(jì)類似。當(dāng)要統(tǒng)計(jì)的月份的記錄不存在時(shí),則提示”請(qǐng)重新選擇”并要求用戶選擇別的月份進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)完成后,將會(huì)把結(jié)果以表格的形式顯示出來(lái)。導(dǎo)出工資表能夠把數(shù)據(jù)庫(kù)中員工的工資信息導(dǎo)出到Excel中,便于更清楚地查看結(jié)果。添加員工考勤信息1、添加上下班信息窗體如圖4-5所示,填入相應(yīng)的信息,部分代碼如下:圖4-5添加員工考勤信息添加上下班信息PrivateSubcmdOK_Click()DimsqlAsStringDimsql2AsStringDimrsAsNewADODB.RecordsetDimstrMsgAsStringDimstrmsg2AsStringDimrsTimeAsNewADODB.RecordsetDimtmsetswsb,tmsetswxb,tmsetxwsb,tmsetxwxbAsDateDimtmsb1,tmxb1AsDatesql="select*fromAttendanceInfoorderbyIDdesc"sql2="select*fromTimeSetting"Setrs=ExecuteSQL(sql,strMsg)SetrsTime=ExecuteSQL(sql2,strmsg2)IfInFlag=FalseAndOutFlag=FalseThenMsgBox"請(qǐng)選擇上下班",vbOKOnly+vbExclamation,"警告!"EndIf'添加上班信息IfInFlag=TrueThenIftxtID.Text=""OrtxtName.Text=""ThenMsgBox"要添加上班信息,員工編號(hào)與姓名不能為空,請(qǐng)輸入",vbOKOnly,"提示"ExitSubEndIf'判斷上下午上班時(shí)間是否遲到tmsb1=dtpBT.Valueh=Hour(tmsb1)m=Minute(tmsb1)s=Second(tmsb1)tmsb1=CDate(h&":"&m&":"&s)tmsetswsb=CDate(rsTime.Fields("上午上班時(shí)間"))tmsetswxb=CDate(rsTime.Fields("上午下班時(shí)間"))tmsetxwsb=CDate(rsTime.Fields("下午上班時(shí)間"))'判斷上午上班時(shí)間是否遲到Iftmsb1<tmsetswxbThenIftmsb1>tmsetswsbThenilate=1MsgBox"遲到"Elseilate=0MsgBox"正常上班"EndIf'判斷下午上班時(shí)間是否遲到Else Iftmsb1>tmsetxwsbThenilate=1MsgBox"遲到"Elseilate=0MsgBox"正常上班"EndIfEndIfaflag="入"rs.AddNewrs.Fields("工號(hào)")=txtID.Textrs.Fields("姓名")=txtName.Textrs.Fields("當(dāng)前日期")=dtpET.Valuers.Fields("上班時(shí)間")=dtpBT.Hour&":"&dtpBT.Minute&":"&dtpBT.Secondrs.Fields("出入標(biāo)志")=aflagrs.Fields("遲到次數(shù)")=ilaters.Updaters.CloseMsgBox"已完成添加上班信息",vbOKOnly+vbInformation,"添加結(jié)果!"UnloadMeExitSubEndIf'添加下班信息IfOutFlag=TrueThenIftxtID.Text=""OrtxtName.Text=""ThenMsgBox"要添加下班信息,員工編號(hào)與姓名不能為空,請(qǐng)輸入",vbOKOnly+vbExclamation,"警告"ExitSubEndIf'判斷上下午下班時(shí)間是否早退tmxb1=DTPicker1.Valueh=Hour(tmxb1)m=Minute(tmxb1)s=Second(tmxb1)tmxb1=CDate(h&":"&m&":"&s)tmsetxwsb=CDate(rsTime.Fields("下午上班時(shí)間"))tmsetswxb=CDate(rsTime.Fields("上午下班時(shí)間"))tmsetxwxb=CDate(rsTime.Fields("下午下班時(shí)間"))'判斷上午下班時(shí)間Iftmxb1<tmsetxwsbThenIftmxb1<tmsetswxbTheniearly=1MsgBox"早退"Elseiearly=0MsgBox"正常下班"EndIf'判斷下午下班時(shí)間ElseIftmxb1<tmsetxwxbTheniearly=1MsgBox"早退"Elseiearly=0MsgBox"正常下班"EndIfEndIfaflag="出"rs.AddNewrs.Fields("工號(hào)")=txtID.Textrs.Fields("姓名")=txtName.Textrs.Fields("當(dāng)前日期")=dtpET.Valuers.Fields("下班時(shí)間")=DTPicker1.Hour&":"&DTPicker1.Minute&":"&DTPicker1.Secondrs.Fields("出入標(biāo)志")=aflagrs.Fields("早退次數(shù)")=iearlyrs.Updaters.CloseMsgBox"已完成添加下班信息",vbOKOnly+vbInformation,"添加結(jié)果!"UnloadMeExitSubEndIfEndSubPrivateSubForm_Load()dtpET.Value=Date'初始化為當(dāng)天時(shí)間EndSub2、設(shè)置員工每日產(chǎn)量考勤在該窗體中輸入相應(yīng)的信息,完成每日產(chǎn)量考勤具體如圖4-6所示,相應(yīng)部分代碼如下:圖4-6員工每日產(chǎn)量考勤”保存”按鈕代碼如下:PrivateSubcmdOK_Click()DimrsAsADODB.RecordsetDimstrSqlAsStringDimstrMsgAsString'根據(jù)需要進(jìn)行字段限制IfChkBoxJJ.Value=TrueThenIfCombo1.Text=""ThenMsgBox"產(chǎn)品類型不能為空"TextFocusCombo1ExitSubEndIfIfChkBoxCP.Value=TrueThenIfCombo2.Text=""ThenMsgBox"產(chǎn)品類型二不能為空"TextFocusCombo2ExitSubEndIfIfTxt3.Text=0ThenMsgBox"數(shù)量不能為空"TextFocusTxt3ExitSubEndIfEndIfIfChkBoxCR.Value=TrueThenIfCombo3.Text=""ThenMsgBox"產(chǎn)品類型三不能為空"TextFocusCombo3ExitSubEndIfIfTxt5.Text=0ThenMsgBox"數(shù)量不能為空"TextFocusTxt5ExitSubEndIfEndIfEndIf

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論