【正文】
事 ,原因主要在于考勤涉及人員、班種、請(qǐng)假等諸多因素 ,每日考勤統(tǒng)計(jì)工作量極大等 .利用計(jì)算機(jī)管理考勤不僅能使管理人員從繁重的考勤管理工作中解脫出來(lái) ,而且能夠使考勤管理工作更加科學(xué)化 ,規(guī)范化 ,智能化 . 隨著計(jì)算 機(jī)技術(shù)的高速發(fā)展 ,正在改變著整個(gè)世界的經(jīng)濟(jì) ,也改變著企業(yè)的管理 .順應(yīng)信息技術(shù)發(fā)展的潮流 ,作為企業(yè)信息化的核心部分 ,選擇先進(jìn)的 ,符合國(guó)際標(biāo)準(zhǔn)的考勤系統(tǒng) ,不僅可以有效提高企業(yè)管理 ,協(xié)作與監(jiān)控員工的出勤效率 ,更可以為企業(yè)進(jìn)一步信息化建設(shè)奠定良好的基礎(chǔ) .利用計(jì)算機(jī)實(shí)現(xiàn)企業(yè)人事考勤管理勢(shì)在必行。s going out on duty situation, Standard personnel system management, Guarantees the pany normal work. It is the important part of human resources management The development of this system mainly includes two aspects: the establishment of the backstage database and the development of the frontside application. This system contains following several modules: the basic information management module, the attendance information management module, the statistical inquiry module and the system user administration module. Visual C++ and SQL Server2021 are used in the development of the system. The system uses the popular ADO technology, and encapsulates the fields and the operations of each table into some classes. It causes the operation which the application procedure each window all can share synchronizes tables. It has not repeat codes, and makes the application to be easier to maintain. By this way, the idea of objectoriented programming will be applied in the database application. Key words: Attendance management。系統(tǒng)是使用 Visual C++開(kāi)發(fā)語(yǔ)言,使用 Microsoft Visual Studio 為工具軟件,數(shù)據(jù)庫(kù)為 SQL Server 2021。 1 摘 要 隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,越來(lái)越多的公司和企業(yè)對(duì)職工的考勤都實(shí)行了信息化管理,使用計(jì)算機(jī)系統(tǒng)代替復(fù)雜的手工方式來(lái)管理考勤事務(wù)。系統(tǒng)采用目前比較流行的 ADO數(shù)據(jù)訪問(wèn)技術(shù),并將每個(gè)數(shù)據(jù)庫(kù)表的字段和操作封裝到類中,它使應(yīng)用程序的各個(gè)窗口都能夠共享對(duì)表的操作,不需要重復(fù)編碼,使程序更加易于維護(hù),從而將面向?qū)ο蟮某绦蛟O(shè)計(jì)思想應(yīng)用到數(shù)據(jù)庫(kù)應(yīng)用程序中。 Human resources。本系統(tǒng)結(jié)合企業(yè)實(shí)際考勤管理制度 ,經(jīng)過(guò)實(shí)際的需求分析,采用功能強(qiáng)大的 Visual C++ 作為開(kāi)發(fā)工具 ,開(kāi)發(fā)出來(lái)的企業(yè)考勤管理系統(tǒng)。 整個(gè)系統(tǒng)從符合操作簡(jiǎn)便、界面友好、靈活、實(shí)用、安全的要求出發(fā),完成日常的員工簽到 ,出勤 修改 ,出勤查詢 ,用戶維護(hù) ,員工維護(hù) ,以及系統(tǒng)配置等功能 .經(jīng)過(guò)實(shí)際使用證明,本文所設(shè)計(jì)的系統(tǒng)可以滿足企業(yè)進(jìn)行日常的員工考勤管理方面的需要。 因此,開(kāi)發(fā)一個(gè)界面友好,易于操作 的員工信息管理軟件進(jìn)行自動(dòng)化處理具有較大的社會(huì)現(xiàn)實(shí)意義。這些優(yōu)點(diǎn)能夠極大地提高人事勞資管理的效率 ,也是企業(yè)的科學(xué)化、正規(guī)化管理 ,與世界接軌的重要條件。信息錄入項(xiàng)目齊全、完整、系統(tǒng)。在論述遠(yuǎn)程電腦考勤系統(tǒng)實(shí)例的同時(shí),還從系統(tǒng)環(huán)境,前臺(tái)應(yīng)用程序 的設(shè)計(jì),后臺(tái)數(shù)據(jù)庫(kù)的設(shè)計(jì),系統(tǒng)數(shù)據(jù)庫(kù)的安全,系統(tǒng)網(wǎng)絡(luò)的安全等方面給出了開(kāi)發(fā)兩層次 C/S 結(jié)構(gòu)應(yīng)用系統(tǒng)、一般方法和技巧,具有一定的參考價(jià)值。 VB 的多種功能特點(diǎn)體現(xiàn)于:具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,把程序和數(shù)據(jù)封裝起來(lái)視為一個(gè)對(duì)象,每個(gè)對(duì)象都是可逆的。傳統(tǒng)的編程方式是一種面向過(guò)程,按程序事先設(shè)計(jì)的流程運(yùn)行。明確提供了易學(xué)易用的應(yīng)用程序集成開(kāi)發(fā)環(huán) 境在 VB 集成開(kāi)發(fā)環(huán)境中,用戶可設(shè)計(jì)界面、編寫代碼、調(diào)試程序,直至把應(yīng)用程序編譯成可執(zhí)行文件,在 Windows 中運(yùn)行,使用戶在友好的開(kāi)發(fā)環(huán)境中工作。 Active技術(shù)發(fā)展了原有的 OLE 技術(shù),它使開(kāi)發(fā)人員擺脫了特定語(yǔ)言的束縛。 SQL Server 2021 是 Microsoft 公司推出的數(shù)據(jù)庫(kù)管理系統(tǒng),它繼承了 SQL Server 在數(shù)據(jù)庫(kù)軟件設(shè)計(jì)和引擎方面的優(yōu)勢(shì),同時(shí)增加了讀多新的功能,使用更加方便,完全支持 Web 應(yīng)用,而且更具可靠性和穩(wěn)定性。使用 SQL Server 2021 我們可以很方便的建立數(shù)據(jù)庫(kù),可以將所建立的數(shù)據(jù)庫(kù)很好的和 VB結(jié)合起來(lái)。因此實(shí)施此考勤系統(tǒng)無(wú)需硬件資金投入,若想將管理系統(tǒng)全面投入運(yùn)行,所需資金投入也只需日常維護(hù)與技術(shù)支持等必須費(fèi)用。企業(yè)計(jì)算機(jī)設(shè)備齊全,網(wǎng)絡(luò)完善,有良好的機(jī)房和技術(shù)人員。作為該過(guò)程的結(jié)果,需求規(guī)格說(shuō)明書(shū)是對(duì)系統(tǒng)的功能和行為完整的描述。 用戶工作流程 登陸 —— 運(yùn)行 —— 更新(刪除) —— 查詢 系統(tǒng)開(kāi)發(fā)主要有以下五個(gè)模塊組成: 在系統(tǒng)模塊中實(shí)現(xiàn)了,登錄與運(yùn)行功能。 (2) 該管理軟件將根據(jù)用戶的需要對(duì)個(gè)人信息進(jìn)行查詢,并能打印詳細(xì)信息。在滿足 不同系統(tǒng)用戶的操作需求的基礎(chǔ)上,提高系統(tǒng)的安全性。 基礎(chǔ)數(shù)據(jù)管理:維護(hù)人事管理相關(guān)的一些基礎(chǔ)數(shù)據(jù)。 數(shù)據(jù)庫(kù)管理:對(duì)現(xiàn)有的數(shù)據(jù)庫(kù)進(jìn)行管理,包括數(shù)據(jù)備份和恢復(fù),以方便用戶對(duì)數(shù)據(jù)庫(kù)的管理和維護(hù)工作,提高系統(tǒng)的數(shù)據(jù)安全性。還可以通過(guò)考勤匯總查詢對(duì)員工某月的考勤記錄進(jìn)行匯總,計(jì)算出員工月工作天數(shù),早退、遲到的天數(shù)等。對(duì)員工的考勤信息可按月進(jìn)匯總計(jì)算,對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢查,盡可能排除人為的錯(cuò)誤。 圖 41人事考勤系統(tǒng)功能結(jié)構(gòu) 17 業(yè)務(wù)流程圖展示 圖 42 人事考勤系統(tǒng)業(yè)務(wù)流程圖 數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)分析 人事考勤管理系統(tǒng)使用了 Microsoft SQL Sever 2021 數(shù)據(jù)庫(kù)來(lái)滿足系統(tǒng)的要求,數(shù)據(jù)庫(kù)名稱為 tb_person,在數(shù)據(jù)庫(kù)中創(chuàng)建 4 張表用于存儲(chǔ)各種不同的信息,如圖 42所示 圖 42 數(shù)據(jù)庫(kù)中的標(biāo) 2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 下面給出人事考勤管理系統(tǒng)數(shù)據(jù)庫(kù)中的主要表的表結(jié)構(gòu)。 Static void UnInitADO()。 Cstring GetSQLConstr(CString IP,CString DBName)。 }。在析構(gòu)方法中當(dāng)此變量為 0 時(shí)調(diào)用CoUninitialize 方法取消 OLE 的初始化。 g_Connection。 m_ConnectionClose()。 }。 m_ConnectionOpen((_bstr_t)ConStr,adModeUnknown)。Persist Security Info = False。 return Str。 if(State == adStateOpen) return true。 int GetRecordNo()。 void AddNew()。 void SetConion(CADOConnection *pCon)。 private: BOOL IsOpen()。 m_DataSet = NULL。 else return 0。State)。 } Next 方法將記錄指針下移一位,實(shí)現(xiàn)代碼如下: BOOL CADODataSet::Next() { if(m_DataSetadoEOF) retuen false。 } SetFieldValue 方法用來(lái)向記錄集中指定的字段賦值,實(shí)現(xiàn)代碼如下: void CADODataSet::SetFieldValue(CString FieldName,_variant_t Value0) { m_DataSetPutCollect((_bstr_t)FieldName,Value)。 } GetRecordNo 方法用來(lái)獲取記錄集中的當(dāng)前行號(hào),實(shí)現(xiàn)代碼如下: int CADODataSet::GetRecordNO() 27 { return m_DataSetAbsolutePositon。 (2)在 New 窗口左方的列表視圖中選擇 MFC AppWizard[exe]選項(xiàng),在 Project name 編輯框中輸入工程名稱,在 Location編輯框中設(shè)置工程保存的路徑。 (5)創(chuàng)建一個(gè)菜單資源,并設(shè)置各個(gè)菜單項(xiàng)的 ID 和名稱。 用戶登錄窗體是整個(gè)系統(tǒng)中創(chuàng)建并顯示的第一個(gè)窗體,所以該窗體應(yīng)在主窗體創(chuàng)建前創(chuàng)建并顯示。 else Enable3dControlsStatic()。 29 if(()! = IDOK) return false。 int nResponse = ()。分別設(shè)置兩個(gè)按鈕的 Caption 屬性為“確定”和“取消”。 int count = ()。 ()。 (user)。 and PassWord = 39。 if(() == 1) { ::SetUserName(user)。用戶管理模塊的界面如圖 47所示。向?qū)υ捒蛑刑砑右粋€(gè)列表視圖控件和 4個(gè)按鈕控件。 for(int = 0。 (i,no)。 (0,用戶名 )。 return TRUE。 ()。 (no1)。 UpdateGrid()。 ()。 由于部門通常都是存在層次級(jí)別的,所以在設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)時(shí)應(yīng)至少創(chuàng)建 3 個(gè)字段,即“編號(hào)”、“父編號(hào)”和名稱。 (::GetConnection())。 int count = ()。i count。 (node,ID)。向?qū)υ捒蛑刑砑右粋€(gè)樹(shù)列表控件、 4 個(gè)按鈕控件,分別設(shè)置按鈕控件的 Caption 屬性為“添加”、“修改”、“刪除”和“退出”。 } void CDeptManage::GetNode(HTREEITEM pNode,int nPid) { HTREEITEM node。 (Select * From tab_Dept where pid = %d,nPid)。 38 _variant_t value。 value = (_variant_t)()Item[ID]Value。 ()。 if () 39 pID = 0。 (Select top 1 * From tab_Dept)。 (PID,(long)pID)。 = false。 CADODataSet dataset。 (str)。 (memo,(_variant_t))。 if (pNode == 0) 41 return。 CString str。 ()。 在人員信息管理界面中可以看到,左側(cè)是部門信息,右側(cè)是人員信息。 UpdatePerson()。分別設(shè)置按鈕的 Caption 屬性為“添加”、“修改”、“刪除”和“退出”。 (::GetConnection())。 (str)。 for(int i = 0。 value = ()Item[AutoID]Value。 (n,index++,(_bstr_t)()Item[Nationality]Value)。 (n,index++,(_bstr_t)()Item[Marital_Condition]Value)。 (n,index++,(_bstr_t)()Item[HireDate]Value)。 (n,index++,(_bstr_t)()Item[Hukou]Value)。 } } 添加 OnInitDialog 方法,用于初始化人員 信息管理界面中的數(shù)據(jù)。 int i = 0。 (i++,100)。 (i++,50)。 (i++,100)。 (i++,100)。 47 (i++,100)。 (i++,100)。 (i++,100)。 (i++,100)。 UpdatePerson()。 U