企業(yè)考勤管理系統(tǒng)的設(shè)計說明書_第1頁
企業(yè)考勤管理系統(tǒng)的設(shè)計說明書_第2頁
企業(yè)考勤管理系統(tǒng)的設(shè)計說明書_第3頁
企業(yè)考勤管理系統(tǒng)的設(shè)計說明書_第4頁
企業(yè)考勤管理系統(tǒng)的設(shè)計說明書_第5頁
免費預(yù)覽已結(jié)束,剩余38頁可下載查看

下載本文檔

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

文檔簡介

1、廣西大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院數(shù)據(jù)庫開發(fā)與應(yīng)用課程設(shè)計報告題目:企業(yè)考勤管理系統(tǒng)班級:信息與計算科學(xué) 121學(xué)號:1211100 xxx_姓 名:XXXXX期:二一四年六月背景與意義考勤管理系統(tǒng)是企業(yè)單位管理系統(tǒng)中最重要的信息。通過員工考勤考核 管理,反映員工在一定階段的工作成績。而我國眾多的企業(yè)都是采用傳統(tǒng)的 手工方式記錄企業(yè)員工每日的出勤情況, 這種方式繁瑣易錯,準(zhǔn)確性、透明 度、實時性差,受人為因素影響過大,增加了企業(yè)的人力資源成本。隨著現(xiàn) 代科技的進(jìn)步,利用信息和計算機(jī)技術(shù)來進(jìn)行企業(yè)員工考勤的管理也成為現(xiàn) 代化企業(yè)運作必不可少的一部分。一個企業(yè)對其職工的正常上下班、延時工 作及加班工作進(jìn)行

2、考勤,通過報表的形式輸出,合理調(diào)整員工工作安排,用 計算機(jī)對考勤數(shù)據(jù)進(jìn)行統(tǒng)計分析處理,得到我們所需要的各種統(tǒng)計報表和考 勤原始數(shù)據(jù),方便了企業(yè)對員工的管理。因此,開發(fā)一個合適的、高質(zhì)量的、 界面友好、易于操作的企業(yè)考勤管理系統(tǒng)進(jìn)行企業(yè)員工的考勤管理,對企業(yè)的長遠(yuǎn)發(fā)展有重大的意義。本考勤管理系統(tǒng)的開發(fā),是為了規(guī)范企業(yè)中考勤的管理工作, 為考勤管 理部門提供一套高效、快捷的應(yīng)用軟件。使用計算機(jī)進(jìn)行考勤信息的處理,具有如下優(yōu)點:(1)及時信息交流,改善管理質(zhì)量通過本系統(tǒng)對考勤信息的規(guī)范管理,可以及時掌握員工的信息,也能讓 員工及時了解部門主管發(fā)布的通知信息。(2)方便查詢,提高工作效率。二、需求分析

3、本系統(tǒng)要實現(xiàn)的功能模塊主要有:基本信息設(shè)置模塊、檔案管理模塊、 審批模塊、查詢模塊、考勤記錄模塊、匯總統(tǒng)計模塊和系統(tǒng)管理模塊。要求 提供數(shù)據(jù)輸入、輸出和整理功能,滿足日常工作的需要;具有查詢、統(tǒng)計等 功能,方便用戶快捷使用和管理信息,提高工作效率;采用一定的安全保護(hù) 措施,應(yīng)分有不同的使用權(quán)限,保證系統(tǒng)的實用性;具有系統(tǒng)備份和恢復(fù)功 能, 使系統(tǒng)使用者能容易進(jìn)行維護(hù), 同時軟件功能完整、 運行穩(wěn)定、界面友 好、操作簡便。1.對功能的規(guī)定針對企業(yè)的考勤管理業(yè)務(wù),本系統(tǒng)要實現(xiàn)以下功能:(1)基本信息設(shè)置擁有對系統(tǒng)中的基本信息,包括:部門信息、員工職稱信息、請假類型 信息、加班類型信息、出差類型信息

4、的添加、修改、刪除、查詢等操作的功 能,當(dāng)大量新的信息需要錄入時,可以通過EXCEL表格導(dǎo)入方式實現(xiàn),同 時也可將相應(yīng)信息分別導(dǎo)出到EXCEL表格中。(2)檔案管理擁有對系統(tǒng)中的員工信息、考勤制度信息、通知信息進(jìn)行增加、修改、 刪除、查詢等操作的功能。在錄入員工信息時,輸入員工的身份證號,進(jìn)行 回車操作即可自動填充員工性別,年齡,身份屬地,生日信息。當(dāng)有大量新 的員工信息、通知信息需要錄入時,可以通過EXCEL表格導(dǎo)入方式實現(xiàn), 同時也可將相應(yīng)信息導(dǎo)出到EXCEL表格中。(3)審批管理擁有對系統(tǒng)中的請假信息、加班信息、出差信息進(jìn)行審批的功能。查詢 出相應(yīng)的記錄,對該記錄進(jìn)行審批,審批通過則說明

5、該條請假記錄生效, 否 則為無效記錄。此功能只有考勤主管和部門主管有操作權(quán)限。(4)查詢管理擁有對系統(tǒng)中員工信息、企業(yè)考勤制度、出勤信息、請假信息、加班信 息、出差信息進(jìn)行查詢的功能。可以按照員工編號,姓名,部門名等條件對 員工具體信息進(jìn)行模糊/精確查詢。(5)考勤記錄管理擁有對企業(yè)員工中的出勤信息、請假信息、加班信息、出差信息進(jìn)行增 加、修改、刪除、查詢等操作,同時具有將相應(yīng)信息導(dǎo)出到EXCEL表格中的功能。其中只有可以對出勤信息進(jìn)行操作,當(dāng)有大量員工考勤相關(guān)信息需 要錄入時,只有考勤管理員可以通過EXCEL表格導(dǎo)入方式實現(xiàn)。(6)匯總統(tǒng)計管理擁有對考勤情況進(jìn)行統(tǒng)計以及報表查看的功能。選擇某

6、一時間段,可對 該時間段員工的考勤信息進(jìn)行統(tǒng)計,其中只有審核通過的請假記錄,加班記 錄,出差記錄能夠參與到考勤情況統(tǒng)計中。 可以對統(tǒng)計過的考勤情況通過報 表來查看到具體信息。(7)系統(tǒng)管理擁有密碼修改、用戶管理、系統(tǒng)初始化、數(shù)據(jù)備份/恢復(fù)、日志查看的 功能。密碼修改供當(dāng)前登錄用戶修改自己的密碼, 修改時需要對新密碼提供 二次輸入校對。用戶管理提供用戶的添加,修改,刪除,用戶名使用的是員 工的編號。系統(tǒng)初始化將系統(tǒng)中的數(shù)據(jù)都刪除,初始化前需對系統(tǒng)中的數(shù)據(jù) 進(jìn)行備份。數(shù)據(jù)備份/恢復(fù)擁有對系統(tǒng)中的數(shù)據(jù)進(jìn)行備份和恢復(fù)的功能。日 志查看擁有對使用本系統(tǒng)的用戶的登錄及退出信息進(jìn)行查看的功能,以維護(hù)系統(tǒng)的正

7、常操作。2.對性能的規(guī)定為保證本系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,系統(tǒng)須滿足 以下性能要求:(1)實用性:本系統(tǒng)應(yīng)能夠系統(tǒng),便捷,快速的實現(xiàn)對員工作休時間 的管理,從而保障企業(yè)的高效運營。(2)操作簡單:本系統(tǒng)應(yīng)適用于不同計算機(jī)水平的使用者,系統(tǒng)的操 作盡可能簡單易行。(3)技術(shù)先進(jìn):產(chǎn)品的系統(tǒng)設(shè)計和開發(fā)應(yīng)緊跟計算機(jī)的發(fā)展潮流,產(chǎn) 用目前較先進(jìn)的設(shè)計思想,利用最先進(jìn)的開發(fā)技術(shù)和開發(fā)工具。(4)安裝使用簡便:服務(wù)器端安裝簡潔明了,客戶機(jī)無需再裝任何軟 件,可直接使用。(5)適應(yīng)性和可擴(kuò)充性:應(yīng)能廣泛使用與不同的企業(yè),開發(fā)過程中, 應(yīng)充分考慮可擴(kuò)充問題。3.數(shù)據(jù)管理能力的要求為保證企業(yè)使

8、用本系統(tǒng)中數(shù)據(jù)的完整性,須滿足以下數(shù)據(jù)管理要求:(1)盡可能減少故障的發(fā)生,保障好數(shù)據(jù)的備份,數(shù)據(jù)的備份采用數(shù) 據(jù)庫服務(wù)器的備份功能實現(xiàn)。(2)當(dāng)系統(tǒng)發(fā)生故障時,當(dāng)重新啟動的時候,系統(tǒng)能夠正常運行,若 有數(shù)據(jù)遺失,能夠通過備份來還原。(3)要保證數(shù)據(jù)的安全性,只有授權(quán)的人員才能進(jìn)入系統(tǒng)進(jìn)行相應(yīng)的 操作。(4)發(fā)現(xiàn)有錯誤的數(shù)據(jù),及時地進(jìn)行修改。三、系統(tǒng)總體分析與設(shè)計1.解決方案為企業(yè)中的員工分別分配一個用戶號和密碼及相應(yīng)角色,員工可用該用 戶名和密碼登錄進(jìn)入企業(yè)考勤管理系統(tǒng)。不同的角色對應(yīng)有不同的使用權(quán) 限:普通員工可以進(jìn)入系統(tǒng)可以對各類信息進(jìn)行查詢,錄入自己的請假,加班及出差的記錄,對考勤的統(tǒng)

9、計報表進(jìn)行查看以及對自己的登錄密碼進(jìn)行修 改;部門主管除擁有普通員工所有權(quán)限外, 還可對員工信息,通知信息進(jìn)行 添加,修改,刪除的操作,對員工輸入的請假,加班,出差記錄進(jìn)行審批, 對員工某一階段的考勤進(jìn)行統(tǒng)計;考勤管理員除擁有普通員工所有權(quán)限外,還可對企業(yè)的考勤制度進(jìn)行設(shè)置,對員工的出勤信息進(jìn)行錄入或?qū)耄瑫r 也可對員工的請假,加班及出差記錄進(jìn)行批量導(dǎo)入;考勤主管具有系統(tǒng)的完 全管理權(quán)限,要定期對系統(tǒng)進(jìn)行檢查和備份,以維護(hù)系統(tǒng)的安全。系統(tǒng)設(shè)計分八個模塊:主菜單模塊,登錄模塊,檔案管理模塊,審批管 理模塊,查詢管理模塊,考勤記錄管理模塊,匯總統(tǒng)計管理模塊和系統(tǒng)管理 模塊。具體的功能結(jié)構(gòu)圖如圖1

10、-1所示。圖3-1企業(yè)考勤管理系統(tǒng)功能結(jié)構(gòu)圖本系統(tǒng)采用Delphi技術(shù),以及SQL Server數(shù)據(jù)管理技術(shù)進(jìn)行主要的設(shè)計,數(shù)據(jù)庫用SQL Server進(jìn)行設(shè)計和管理系統(tǒng)使用分三種角色,包括:員工,考勤管理員,部門主管,考勤主管。 體現(xiàn)各角色的使用權(quán)限的功能結(jié)構(gòu)圖如圖1-2。修改密碼報表查看修改密碼圖3-2體現(xiàn)各角色使用權(quán)限的功能結(jié)構(gòu)圖2.數(shù)據(jù)庫設(shè)計Personal員工信息表)員工信息表主要存放員工的基本信息,具體字段信息如表3-1表3-1員工信息表字段名稱類型長度碼說明Pno員工編號CHAR14PKP+日期+序號Pn ame姓名VARCHAR10Not nullDno部門編號CHAR14FK

11、Not nullPTno職務(wù)編號CHAR14FKNot nullIDCard身份證CHAR18ShuDi身份屬地CHAR20Sex性別CHAR2Age年齡INT-Birth生日DATE-Tel電話號碼VARCHAR20Photo相片VARBINARY50(2)Perso nalType職稱表)職稱表主要存放員工職稱信息,被員工信息表所調(diào)用,具體字段信息如表4-9。表4-9職稱表字段名稱類型長度碼說明PTno職稱編號CHAR14PKPT+序號PTn ame職稱名稱VARCHAR20Not null(3)Department(咅部門信息表)部門信息表主要存放部門基本信息,提供給員工信息表調(diào)用,具體

12、字段信息如表4-10表4-10部門信息表字段名稱類型長度碼說明Dno部門編號CHAR14PKD+序號Dn ame部門名稱VARCHAR20Not nullIn troduce部門簡介VARCHAR100Attendanee(考勤記錄表)考勤記錄表主要存放員工日常的出勤信息,具體字段信息如表4-11表4-11考勤記錄表字段名稱類型長度碼說明Ano記錄編號CHAR14PKA+日期+序號Pno員工編號CHAR14FKNot nullIn Out出入情況CHAR2Not nullATime時間DATETIME-Not nullOverwork(加班記錄表)加班記錄表主要存放員工日常加班的記錄信息,只有

13、主管審批通過后才能生效,才能進(jìn)行相應(yīng)的加班統(tǒng)計,具體字段信息見表4-12。表4-12加班記錄表字段名稱類型長度碼說明Ono記錄編號CHAR14PKO+日期+序號Pno員工編號CHAR14FKNot nullStartTime開始時間DATETIME-En dTime結(jié)束時間DATETIME-OT no加班類型編號CHAR14FKNot nullAPProval審核結(jié)果CHAR1OverworkType(加班類型表)加班類型表主要存放加班類型信息,提供給加班記錄表調(diào)用,具體字段 信息如表4-13。表4-13加班類型表字段名稱類型長度碼說明OT no加班類型編號CHAR14PKOT+序號OTn a

14、me加班類型名VARCHAR20Not null(7)Errand(出差記錄表)出差記錄表主要存放出差記錄信息,只有主管審批通過后才能生效,才 能進(jìn)行相應(yīng)的出差統(tǒng)計,具體字段如表4-14。表4-14出差記錄表字段名稱類型長 度碼說明Eno記錄編號CHAR14PKE+日期+序號Pno員工編號CHAR14FKNot nullStartTime開始時間DATETIME-En dTime結(jié)束時間DATETIME-Place出差地點VARCHAR20ETno出差類型編號CHAR14FKNot nullAPProval審核結(jié)果CHAR1(8)ErrandType(出差類型表)出差類型表主要存放加班類型信息

15、,提供給出差記錄表調(diào)用,具體字段 信息如表4-15。表4-15出差類型表字段名稱類型長度碼說明ETno出差類型編號CHAR14PKET+序號ETn ame出差類型名VARCHAR20Not null(9)Leave(請假記錄表)請假記錄表主要存放請假記錄信息,只有主管審批通過后才能生效,才能進(jìn)行相應(yīng)的請假統(tǒng)計,具體字段如表4-16。表4-16請假記錄表字段名稱類型長度碼說明Lno記錄編號CHAR14PKL+日期+序號Pno員工編號CHAR14FKNot nullStartTime開始時間DATETIME-En dTime結(jié)束時間DATETIME-LTno請假類型編號CHAR14FKNot nu

16、llDemo情況說明VARCHAR100APProval審核結(jié)果CHAR1(lO)LeaveType(請假類型表)請假類型表主要存放加班類型信息,提供給請假記錄表調(diào)用,具體字段 信息如表4-17。表4-17請假類型表字段名稱類型長度碼說明LTno請假類型編號CHAR14PKLT+序號LTn ame請假類型名VARCHAR20Not null(11)AttendanceCount(出勤情況統(tǒng)計表)出勤情況統(tǒng)計表主要記錄的是員工出勤,請假,加班,出差的一些統(tǒng)計信息,提供給企業(yè)管理著進(jìn)行查看,具體字段信息如表4-18。表4-18出勤情況統(tǒng)計表字段名稱類型長度碼說明ACno記錄編號CHAR14PKG+

17、日期+序號Pno員工編號CHAR14FKNot nullARno制度編號CHAR14FKNot nullYearMo nth年月CHAR7Not nullShouldTime應(yīng)工作時間INT-小時ActualTime實際工作時間INT-小時LeaveTime累計請假時間INT-半天OverworkTime累計加班時間INT-小時Erra ndTime累計出差時間INT-半天Late遲到次數(shù)SMALLINT-次LateTime遲到時間累計INT-小時Early早退次數(shù)SMALLINT-次EarlyTime早退時間累計INT-小時Absenee曠工次數(shù)SMALLINT-次Abse nceTime曠

18、工時間累計:INT-小時(12)Logdb(日志信息表)日志信息表主要記錄的是企業(yè)中的員工登錄到系統(tǒng)以及退出系統(tǒng)的信 息,具體字段信息如表4-19。表4-19日志信息表字段名稱類型長度碼說明Log no日志編號INT-PK自動編號Uno用戶編號CHAR14FKNot nullLogi nTime登錄時間DATETIME-LogoutTime退出時間DATETIME-(13)Userdb(用戶信息表)用戶信息表主要存儲用戶的信息,其中員工編號作為用戶名進(jìn)行登錄,密碼默認(rèn)為123456同時也定義了用戶的角色,具體字段信息如表4-20表4-20用戶信息表字段名稱類型長度碼說明Uno用戶編號CHAR1

19、4PKU+日期+序號Pno員工編號CHAR14FKNot nullAuthority角色CHAR2Passwd密碼VARCHAR20默認(rèn)為123456(14)ARegulation(考勤制度表)考勤制度表主要存儲的是企業(yè)的考勤制度,具體字段信息如表4-21表4-21考勤制度表字段名稱類型長度碼說明ARno制度編號CHAR14PKAR+序號ComeTime上午上班時間TIME-Not nullGoofEmepm上午下班時間TIME-Not nullComeTimepm下午上班時間TIME-Not nullGooffTime下午下班時間TIME-Not nullAmemo考勤制度VARCHAR10

20、000(15)ShuDi(屬地表)屬地表主要存儲的是身份證前6位所對應(yīng)的屬地名稱的信息,錄入員工 數(shù)據(jù)中身份證數(shù)據(jù)時快速得出員工性別,年齡,身份屬地,生日信息,減小 因手工輸入產(chǎn)生的信息錯誤概率,具體字段信息如表4-22。表4-22屬地表字段名稱類型長度碼說明ID編號CHAR6PKNot nullBM屬地編號CHAR14Not nullDQ屬地名稱VARCHAR30Not null(16)Notice(通知表)通知表主要存儲的是企業(yè)中的一些通知信息,具體字段信息如表4-23表4-23通知表字段名稱類型長度碼說明Nno通知編號CHAR14PKN+日期+序號NTime通知時間Datetime-Ti

21、tle通知標(biāo)題VARCHAR30Not nullContent通知內(nèi)容CHAR5000四、系統(tǒng)的實現(xiàn)1.界面設(shè)計系統(tǒng)設(shè)計中的界面設(shè)計不同于一般的平面設(shè)計, 擁有自身的設(shè)計特征 網(wǎng)頁設(shè)計應(yīng)時刻圍繞“信息傳達(dá)”這一主題來進(jìn)行。界面力求清晰、準(zhǔn)確、 有力地傳達(dá)信息。本系統(tǒng)主要采用的的界面模板主要包括: 登錄界面、主菜單界面、基本 信息設(shè)置界面、檔案管理界面、查詢管理界面、考勤記錄管理界面、審核管 理界面、匯總統(tǒng)計界面、系統(tǒng)管理設(shè)置界面。(1).登錄界面運行本系統(tǒng)后,出現(xiàn)如圖4-1的登錄界面,輸入用戶名和密碼,選擇用 戶角色,點擊“登錄”按鈕,如果輸入的信息不正確,會有“用戶名或密碼 錯誤,請檢查!”

22、的錯誤提醒,如果三次登陸錯誤,會有“你無權(quán)使用本系 統(tǒng)!”的錯誤提醒,即每次登錄,最多允許有三次登錄錯誤的機(jī)會。當(dāng)所有 信息都輸入正確后,可以登錄到主界面,不用的用戶角色進(jìn)入的主界面中的 功能菜單不同。登錄界面允許效果圖如圖4-1。4-1登錄界面(2).主菜單界面用戶登錄后,可進(jìn)入到如圖4-2的主菜單界面,在主菜單界面中,用戶 可以看到企業(yè)中發(fā)布的通知信息,這有利于讓企業(yè)中的員工盡可能快而全面 地掌握企業(yè)中消息的動態(tài)。主菜單界面如圖4-2圖4-2主菜單界面(3) 查詢管理界面在主菜單上點擊查詢菜單下的“請假情況查詢”, 即可進(jìn)入到如下圖4-3請假情況查詢界面,在界面中輸入員工號或員工姓名、 部

23、門名稱、請假類型 等信息,以及選擇時間范圍的信息,即可進(jìn)行組合查詢以及模糊查詢。 其他 信息的查詢功能跟此功能基本一致,在此不再贅述。請假情況查詢界面如圖4-3。圖4-3請假情況查詢界面(4).信息管理界面信息管理界面包括:基本信息設(shè)置界面(圖4-4)、檔案管理界面(圖4-5)、考勤記錄管理界面(圖4-6)。點擊信息管理界面中的“添加”按鈕, 相應(yīng)的記錄信息將自動編號,在輸入相應(yīng)信息即可。以員工信息管理為例,點擊“添加”按鈕,編號處將自動填充,編號規(guī)則為:“P+年月日+001”,輸入省份證號后,回車即可得出性別、年齡、省份屬地、生日等信息,在部 門的編輯框處雙擊,即可得出企業(yè)中的部門信息,選擇

24、相應(yīng)的部門,貝冋在 該編輯框中得出相應(yīng)的部門編號,也可手動輸入正確的部門編號,職稱的填 寫方式和部門的填寫方式相同,再相應(yīng)地填寫其他信息,點擊保存,如果信 息填寫無誤,會有“保存成功! ”的提示,添加信息完成。同時也可選中相 應(yīng)的員工信息,對其進(jìn)行刪除操作。也可導(dǎo)入/導(dǎo)出Excel表格。其他信息管 理的功能跟此功能類似,不再贅述。檔案管理界面如圖4-4。圖4-4檔案管理界面圖4-5基礎(chǔ)信息設(shè)置界面* is ffi曰恨存歲俐sm 陽 AEXCELS壽出EXCELS溝辰記flt列袈LnoPrwtarTimeEndTimeLTnoDemo05145153001P2O1W2617D12P14/4/11

25、 lft5&W2QWm lo-Wi&oLTTOlWlMlL20140509002P2O1W2617D2014/4/12 B;57;5D3014/V12IOISO-LT2O14O411KI9C1LKH他09(肋P20HO82617032OH/4/1O 11):56:542014/-4/12 10*6:50LTOHWlSdMil電和存P 2014.26170220W/4/12 itk56c502014W2ALT20i4MiM901態(tài)3WP20iq&dl2617Dl2D1-4/4/11 1曲細(xì)M2Cll4/fli lOtS:血11201404193901刃粒靜iPJ31W26

26、PQ2M零4/U fl:57:5l? Z01斗嚴(yán)口dLTTQlWlKl知L201-W509007P2O1W2617D32014/4/10 lftS&M2014/12 105;55LTBH40暑90901 時圖4-6考勤記錄管理界面(5).審批界面在主菜單上點擊查詢菜單下的“出差審批”,即可進(jìn)入到出差審批界面, 如圖4-7。查詢出相應(yīng)的員工出差信息,覺得員工的出差信息無誤后即可進(jìn) 行審批,點擊“確定”按鈕后,會出現(xiàn)“審批完成!”的提示。出差審批界面如圖4-7。圖4-7審批界面企業(yè)考勤管理系統(tǒng)一考勤記錄渤U運假iE錄記球號:|LiatiW9aoii碑51: 11 A:i-n4i:qri:

27、|/ou/ 4/12_J|lQ:56:WS;門;問;IS間:企業(yè)考勤管理系統(tǒng)王甌Gi用SbM _ _M:!:王: JK-B|20H/ 5/11二1- 91 .跟演1II “ |=!|flT|SI d KU5W1H(20WO511W1 P2014W2BW1王聊5宇mwii如恥站卻他陰2 i陰姑82OL4/S/111532;S4201/5/12 H5:33:丸岀謹(jǐn):(6).統(tǒng)計界面在主菜單上點擊查詢菜單下的“出差審批”,即可進(jìn)入到出差審批界面, 如圖4-8。選擇需要統(tǒng)計的起始時間,點擊統(tǒng)計,即可得到員工考勤情況的 統(tǒng)計表(統(tǒng)計的信息包括:應(yīng)工作時間(小時),實際工作時間(小時),累 計請假時間(半

28、天),累計加班時間(小時),累計出差時間(半天),遲到 次數(shù)(次),遲到時間累計(小時),早退次數(shù)(次),早退時間累計(小時),曠工次數(shù)(次),曠工時間累計(小時)。統(tǒng)計需要一些時間,進(jìn)度條會顯 示統(tǒng)計的進(jìn)度。統(tǒng)計界面如圖4-8。圖4-8統(tǒng)計界面2.系統(tǒng)實現(xiàn)關(guān)鍵技術(shù)(1) .添加數(shù)據(jù)時自動編號運行系統(tǒng)時,當(dāng)需要新增信息時,點擊“添加”按鈕,即可進(jìn)行自動對 記錄的ID進(jìn)行編號,以實現(xiàn)編號的規(guī)范性。添加數(shù)據(jù)時自動編號的代碼如 下:1.自定義函數(shù):根據(jù)原來編號bh,構(gòu)造新編號:年月日+3位序列。functionxbh(bh:stri ng):stri ng;vard0,d1,c : stri ng;

29、beg ind0:=copy(bh,2,8);c:=copy(bh,10,3);d1:=formatdatetime(yyyymmdd, now);if d0 d1 thenbh:=d1+ 001elsebeg inc:=00+i nttostr(strtoi nt(c)+1);bh:=d1+copy(c,le ngth(c)-2,3); end;xbh:= bh;end;(2) .員工信息管理中“添加”按鈕的點擊事件代碼。procedure TDa nganF orm.SpeedButt on 1Click(Se nder: TObject);var bm:stri ng;beg inif

30、adotable1sEmpty the nbm:=卩+formatdatetime(yyyymmdd, now)+ 001 /構(gòu)造第一個編號取8位日期數(shù)碼取最后3位數(shù)碼獲取當(dāng)天日期/如果不是同一天構(gòu)造當(dāng)天第一個編號在原來基礎(chǔ)上加1構(gòu)造編號:日期+3位整數(shù)elsebeg inadotablel.Last;bm:=adotable1P no;bm:=P+xbh(bm);end;adotablel.Appe nd;DBedit11.Text:=bm;DBGrid2.Fields0.Text:=bm;DBedit12.SetFocus;end;/讀取數(shù)據(jù)表末尾記錄的編號/在表尾添加新紀(jì)錄/在編輯框中填

31、寫新編號/在表格框中填寫新編號/將光標(biāo)移到填寫姓名框員工信息添加為例,效果如圖4-9。圖4-9員工信息添加頁面(3) .輸入身份證號回車顯示其他相關(guān)信息運行系統(tǒng),添加員工信息時,輸入身份證號,回車即可顯示該身份證號 對應(yīng)員工的身份屬地、性別、年齡及生日信息。使用此功能減小了錄入信息 的人員因失誤輸入錯誤信息的概率, 保證了信息的正確性。運行效果圖如圖5-1所示,具體代碼如下:1.身份證號對應(yīng)編輯框回車事件代碼。procedure TDanganForm.DBEdit13KeyPress(Sender: TObject; var Key:Char);con stW:array 1.18 of i

32、n teger = (7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);位權(quán)A:array 0.10 of char = (1,0,x,9,8,7,6,5,4,3,2); /校驗碼Var i, j, S: integer;NewID, shud: stri ng;da:Tdatetime; kk:boolea n;beg inkk:= (key=#8) or (key=#13) or (key=x) or (key=X) or (key=#48) and(key=#57);if not kk then key:=#0;鍵盤輸入過濾掉非身份證號碼if key=#13

33、thenbegi nNewlD:= DBedit13.Text;/1.檢查長度if Len gth(NewID) 18 the nbeg inmessageDlg(輸 入的數(shù) 字不是18位,請 重新輸 入!,mtError,mbOK,0);DBedit13.SetFocus;exit;end;2.檢查屬地ADOqueryl.close; ADOquery1.Parameters.ParamByName(sd).Value:=copy(NewlD,1,6);給動態(tài)SQL語句賦值A(chǔ)DOquery1.ope n;打開,查詢記錄if ADOquery1.RecordCount=O then如果找不到s

34、d相同的記錄begi nMessageDlg(前面六位數(shù)字無效,請檢查!,mti nformation,mbok,0);DBedit13.SetFocus;exit;endelseshud :=ADOquery1.FieldByName(DQ).Value;/獲取屬地3.檢查年年份i:=strtoi nt(copy(NewlD,7,4);獲取年份if ( i2020) the nbegi nMessageDlg(年份號碼無效,請檢查!,mti nformatio n,mbok,0);DBedit13.SetFocus;exit;end ;j:=strtoi nt(copy(NewlD,11,2

35、);獲取月份if ( j12) the n begi nMessageDlg(月份號碼無效,請檢查!,mti nformatio n,mbok,0);DBedit13.SetFocus;exit;end ;s:=strtoi nt(copy(NewlD,13,2);if ( s31) thenbegi nMessageDlg(日數(shù)號碼無效,請檢查!,mti nformatio n,mbok,0);DBedit13.SetFocus;exit;end ;da:= En codeDate(i,j,s);/構(gòu)造生日4.檢查校驗碼s:= 0;for i:=1 to 17 dobegi nj:= Str

36、ToI nt(NewlDi) * Wi;s:= s + j;end;s:= s mod 11;if NewlD18=X then NewlD18:=x; /將大寫字母X變成小寫字母x ifNewlD18vAS the nbegi nmessageDIg(校驗碼錯!請重新輸入!,mtError,mbOK,0);showmessagefmt(校驗碼錯!應(yīng)該是s!請重新輸入!,AS);DBedit13.SetFocus;exit;end;5.填寫證件的詳細(xì)信息ADOTablel.Edit;DBedit16.Text :=shud;屬地DBedit17.Text :=formatdatetime(dd

37、ddd,da); /生日DBedit18.Text :=formatdatetime(yy,date-da); /年齡if NewlD17 in1,3,5,7,9 the n以下是判別性別DBedit15.Text :=男elseDBedit15.Text :=女;end;end;(4).導(dǎo)出EXCEL表格運行系統(tǒng)時,可以對系統(tǒng)中的相應(yīng)數(shù)據(jù)信息導(dǎo)出到excel表格中,方便用戶使用相應(yīng)的數(shù)據(jù)信息。1.將某個數(shù)據(jù)表導(dǎo)出成Excel表的通用函數(shù)function ExportDBGrid(DBGrid: TDBGrid; SheetName: string): boolean;直接保存,不顯示EXCE

38、LVarc, r, i, j: in teger;app: Olevaria nt;TempFileName, ResultFileName: stri ng;beg intryresult := True;app := CreateOLEObject(Excel.applicatio n);app.WorkBooks.Add(xlWBatWorkSheet);exceptApplicatio n. MessageBox(Excel沒有正確安裝!,警告,MB_OK);result := False;exit;end;mainFo rm.SaveDialog1.DefaultExt:=xls;m

39、ainFo rm.SaveDialogl.FileName := SheetName;if mainFo rm.SaveDialogl.Execute the nTempFileName := mainFo rm.SaveDialogl.FileNameelseExit;app.Workbooks.add;app.Visible := false;Scree n.Cursor := crHourGlass;DBGrid.DataSource.DataSet.First;c := DBGrid.DataSource.DataSet.FieldCou nt;r := DBGrid.DataSour

40、ce.DataSet.RecordCo unt;Applicati on .ProcessMessages;for i := 0 to c - 1 do即p.cells(1, 1 + i) := DBGrid.DataSource.DataSet.Fieldsi.DisplayLabel;for j := 1 to r dobegi nfor i := 0 to c - 1 doapp.cells(j + 1,1 + i) := DBGrid.DataSource.DataSet.Fieldsi. AsStri ng;DBGrid.DataSource.DataSet.Next;end;Res

41、ultFileName := TempFileName;if ResultFileName = ” the nResultFileName :=數(shù)據(jù)導(dǎo)出;if FileExists(TempFileName) the nDeleteFile(TempFileName);app.Activeworkbook.saveas(TempFileName);app.Activeworkbook.close(false);app.quit;app := un assig ned;end;2.調(diào)用導(dǎo)出Excel數(shù)據(jù)的函數(shù),“導(dǎo)出Excel表格”按鈕的點擊事件代碼procedure TDa nganF orm

42、.SpeedButt on 5Click(Se nder: TObject);beg intryScree n.Cursor := crHourGlass;mai n.ExportDBGrid(DBGrid2,”); fin allyScree n.Cursor := crDefault; end;end;.導(dǎo)入EXCEL表格運行系統(tǒng)時,當(dāng)需要新增大量數(shù)據(jù)時,可以通過導(dǎo)入Excel表格實現(xiàn)批量增加的操作。注意:需要導(dǎo)入的Excel表格中的數(shù)據(jù)一定要與數(shù)據(jù)表中的 數(shù)據(jù)類型一致,否則會出現(xiàn)導(dǎo)入失敗的情況。導(dǎo)入Excel表格中數(shù)據(jù)的代碼如下:procedure TDa nganF orm.Speed

43、Butt on 9Click(Se nder: TObject);varoe:varia nt;str:stri ng;i,j, n:i nteger;beg inif ope ndialog1.Execute the nope ndialog1.DefaultExt:=xls;str:=ope ndialog1.FileName;oe:=CreateOleObject(Excel.Applicati on);oe.workbooks.open(str);/連接所選定的Excel表n:=oe.Worksheets1.UsedRa nge.Rows.Co unt;/求工作表sheet1中已有數(shù)據(jù)

44、的行數(shù)tryfor i:=2 to n do從Excel表第2行開始,逐行讀入(假設(shè)第一行為表頭)begi nADoTable2.Appe nd;/添加空記錄將鼠標(biāo)成沙漏狀調(diào)用函數(shù)導(dǎo)出數(shù)據(jù)回復(fù)鼠標(biāo)原狀for j:=1 to ADOTable2.fieldco unt doADOTable2.Fieldsj-1.Value:=oe.worksheets1.cellsi,j.value; end;ADoTable2.Refresh;showmessage導(dǎo)入完畢);exceptshowmessage數(shù)據(jù)庫錯誤或有重復(fù)編號,請檢查);end;end;(6).組合查詢配合模糊查詢組合查詢配合模糊查詢能

45、夠滿足查詢的各種需求。本系統(tǒng)中多處都實現(xiàn)了組合查詢以及模糊查詢。以查詢請假記錄為例,代碼如下:1.查詢請假記錄,“查詢”按鈕的事件代碼。procedure TSelectForm.SpeedButt on 3Click(Se nder: TObject); varsqlstr: stri ng;begdate: stri ng;en ddate: stri ng;beg inif ComboBox2.Text the nbeg inbegdate := datetostr(DateTimePicker3.date);en ddate := datetostr(DateTimePicker4.d

46、ate);if combobox2.Text=在日thensqlstr := select * from Leave_Per_D where StarTime=”+ begdate +and StarTimev” +datetostr(DateTimePicker3.date+1)+ and Pno like %+edit4.text + % and Pn ame like %+ editlO.Text + % and Dn ame like %+edit9.Text + % and LTname like %+ edit17.Text + %else if combobox2.Text=在前

47、thensqlstr := select * from Leave_Per_D where StarTime=”+ begdate +and Pno like %+ edit4.text + % and Pname like %+ editlO.Text + % and Dname like %+ edit9.Text + % and LTname like %+ edit17.Text + % else ifcombobox2.Text=在間the nsqlstr := select * from Leave_Per_D where StarTime=”+ begdate +and Star

48、Time= + en ddate + ” and Pno like %+ edit4.text + % and Pnamelike %+ editlO.Text + % and Dn ame like %+ edit9.Text + % and LTn ame like%+ edit17.Text + %;endelsesqlstr := select * from Leave_Per_D where Pno like %+ edit4.text+ % and Pname like %+ editlO.Text + % and Dname like %+ edit9.Text + %and L

49、Tn ame like %+ edit17.Text + %;ADOQuery2.Close;ADOQuery2.SQL.CIear;ADOQuery2.SQL.Add(sqlstr);ADOQuery2.ope n;end;查詢效果如圖4-10。bm,P no,AR no:stri ng;i,j, n,coun ter:i nteger;Time:Array0.3of TTime;Hour:array0.1ofdouble; /a: double;Hour:array0.1of in teger; a: in teger;StartTime,E ndTime:TDate;保存員工號用于循環(huán)和

50、計數(shù)保存上下班時間保存上下午工作時間保存始末時間圖4-10請假查詢效果圖(7).匯總統(tǒng)計運行本系統(tǒng)時,選擇需要統(tǒng)計的起始時間,點擊統(tǒng)計,即可得到員工考 勤情況的統(tǒng)計表(統(tǒng)計的信息包括:應(yīng)工作時間(小時),實際工作時間(小 時),累計請假時間(半天),累計加班時間(小時),累計出差時間(半天), 遲到次數(shù)(次),遲到時間累計(小時),早退次數(shù)(次),早退時間累計(小 時),曠工次數(shù)(次),曠工時間累計(小時)。具體代碼如下:1.“統(tǒng)計”按鈕事件代碼。procedure THuizForm.SpeedButton 2Click(Se nder: TObject);varTimeStamp, Lat

51、e_Time,Early_Time,Work_Start,Work_e nd:TDateTime;Late,Early,Abse nt,L eave,Erra nd:Boolea n;保存中間判斷時間保存判斷結(jié)果WorkHour,OverHour,LeaveHDay,Erra ndHDay,LateTime,EarlyTime,AbsentTime ,ActualTime:l nteger;保存時間間隔長度LateTimes,EarlyTimes,Abse ntTimes:Smalll nt;Temp:Stri ng;beg inTimeO:= strtotime(Da nganF orm.A

52、DOTable4ComeTime);Time1:= strtotime(Da ngan Form.ADOTable4GoofEmepm);Time2:= strtotime(Da nganF orm.ADOTable4ComeTimepm);Time3:= strtotime(Da nga nF orm.ADOTable4GoofEme);Hour0:=Rou nd(Time1-Time0)*24);Hour1:=Rou nd(Time3-Time2)*24);a:=Hour0+Hour1;ARn o:= Dan ga nF orm.ADOTable4AR no;StartTime:=Date

53、TimePicker1.Date;En dTime:=DateTimePicker2.Date;beg in/提取員工列表T_pers on. Filtered:=True;T_pers on. Ope n;n:=T_perso n.RecordCo unt; i:=0;Gauge1.Progress:=0;T_perso n.First;while not T_perso n.Eof do begi n獲取出勤記錄/上午工作時間/下午工作時間/一天工作時間Pn o:=T_pers on P no;Q_atte nd.Close;Q_atte nd.Parameters.ParamValues

54、P no :=P no;Q_atte nd.Parameters.ParamValuesSTARTTIME:=StartTime;Q_atte nd.Parameters.ParamValuesENDTIME:=E ndTime+1;Q_atte nd.Ope n;Q_atte nd.First;初始化WorkHour:=0;LeaveHDay:=O;Erran dHDay:=0;LateTimes:=0;LateTime:=0;EarlyTime:=0;Abse ntTime:=0;EarlyTimes:=0;Abse ntTimes:=0;ActualTime:=0;OverHour:=0

55、;TimeStamp:=StartTime;while TimeStampvE ndTime+0.1 dobeg inif(DayOfWeek(TimeStamp)1)and(DayOfWeek(TimeStamp)7) thenbegi nActualTime:=ActualTime+a;/遍歷班次beg inLate_Time:=TimeStamp+Time2*j;Early_Time:=TimeStamp+Time2*j+1;判斷是否請假Q(mào)_leave.Close;Q_leave.Parameters.ParamValuesP no :=P no;Qeave.Parameters.Par

56、amValuesSTARTTIME:=Late_Time;Qeave.Parameters.ParamValuesENDTIME:=Early_Time;Q_leave.Ope n;Leave:=(Q_leave.RecordCo un t0);判斷是否出差Q_erra nd.Close;Q_erra nd.Parameters.ParamValuesP no :=P no;Q_erra nd.Parameters.ParamValuesSTARTTIME:=Late_Time;Q_erra nd.Parameters.ParamValuesENDTIME:=Early_Time;Q_erra

57、 nd.Ope n;erran d:=(Q_leave.RecordCo un t0);if leave the n請假In c(LeaveHDay)else if errand the n出差beg inIn c(Erra ndHDay);WorkHour:=WorkHou葉H ourj;endelse正常上班beg inWork_start:=Late_Time;Work_e nd:=Early_Time;Late:=True;Abse nt:=False;判斷是否遲到while (not Q_atte nd.Eof) and (Q_atte ndIOTimev=Late_Time) do

58、begi nLate:=(Q_atte nd In Out=O);Q_atte nd.Next;end;判斷是否曠工if Late the nbegi nif (not Q_atte nd.Eof) and (Q_atte ndIOTimeEarly_Time) thenbeg inWork_start:=Q_atte ndIOTime;/記錄遲到時間LateTime:=LateTime+Rou nd(Work_Start-Late_Time)*24);endelseAbse nt:=True;Abse ntTime:=Abse ntTime+Ro un d(Early_Time-Late_T

59、ime)*24);end;Early:=False;判斷是否早退while (not Q_atte nd.Eof) and (Q_atte ndIOTimeEarly_Time) dobegi nEarly:=(Q_atte ndl nOut=O);if Early the nbeg inWork_en d:=Q_atte ndIOTime;EarlyTime:=EarlyTime+Ro un d(Early_Time-Late_Time)*24);endelseWork_e nd:=Early_Time;Q_atte nd.Next;end;if Abse nt the nIn c(Abse

60、 ntTimes) else begi nif Late the nIn c(LateTimes);if Early the nIn c(EarlyTimes);WorkHour:=WorkHour+Rou nd(Work_e nd-Work_start)*24);計算實際工作時間end;en d;一個班次判斷結(jié)束end;下一班次end;是否休息日TimeStamp:=TimeStamp+1;推進(jìn)一天en d;后一天考勤統(tǒng)計加班時間Q_overtime.Close;Q_overtime.Parameters.ParamValuesP no :=P no;Q_overtime.Parameters.ParamValuesST

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論