畢業(yè)設計---考勤管理系統(tǒng)的設計與實現(xiàn)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  考勤管理系統(tǒng)的設計與實現(xiàn)</p><p><b>  摘 要</b></p><p>  隨著現(xiàn)代科學技術(shù)的發(fā)展,越來越多的公司和企業(yè)對職工的考勤都實行了信息化管理,使用計算機系統(tǒng)代替復雜的手工方式來管理考勤事務??记诠芾硐到y(tǒng)可以有效地管理公司員工的出勤情況,規(guī)范人事制度管理,保證公司正常的工作,是人力資源管理的重要組成部分。</p>

2、;<p>  系統(tǒng)的開發(fā)主要包括后臺數(shù)據(jù)庫的建立,維護以及前端應用程序的開發(fā)兩個方面,主要模塊包括基本信息管理模塊,考勤信息管理模塊,統(tǒng)計查詢模塊和系統(tǒng)用戶管理模塊。系統(tǒng)是使用Visual C++開發(fā)語言,使用Microsoft Visual Studio 6.0作為工具軟件,數(shù)據(jù)庫為SQL Server 2000。系統(tǒng)采用目前比較流行的ADO數(shù)據(jù)訪問技術(shù),并將每個數(shù)據(jù)庫表的字段和操作封裝到類中,它使應用程序的各個窗口都能

3、夠共享對表的操作,不需要重復編碼,使程序更加易于維護,從而將面向?qū)ο蟮某绦蛟O計思想應用到數(shù)據(jù)庫應用程序中。</p><p>  關鍵詞:考勤管理;人力資源;數(shù)據(jù)庫;數(shù)據(jù)訪問技術(shù)</p><p>  Design and Realization of Attendance Management System</p><p><b>  Abstract<

4、;/b></p><p>  Along with the development of the modern science and technology, more and more companies and enterprises implemented the information management to the staff's checking attendance, and us

5、e computer system instead of the complex manual way to manage the checking attendance business. The checking attendance management system may effectively manage the staff's going out on duty situation, Standard perso

6、nnel system management, Guarantees the company normal work. It is the important part of human reso</p><p>  The development of this system mainly includes two aspects: the establishment of the backstage data

7、base and the development of the front-side application. This system contains following several modules: the basic information management module, the attendance information management module, the statistical inquiry modul

8、e and the system user administration module. Visual C++ and SQL Server2000 are used in the development of the system. The system uses the popular ADO technology, and encapsulates th</p><p><b>  .</b

9、></p><p>  Key words: Attendance management; Human resources; Database; Data access technology</p><p><b>  目 錄</b></p><p><b>  論文總頁數(shù):26頁</b></p>&

10、lt;p><b>  1引言1</b></p><p>  1.1課題背景1</p><p>  1.2本課題研究意義1</p><p>  1.3本課題研究方法1</p><p><b>  2開發(fā)工具2</b></p><p>  2.1Vis

11、ual C++6.02</p><p>  2.2SQL Server 20002</p><p>  3考勤管理系統(tǒng)的設計3</p><p>  3.1需求分析3</p><p>  3.2功能模塊構(gòu)成3</p><p>  3.3數(shù)據(jù)庫結(jié)構(gòu)設計4</p><p>  4

12、考勤管理系統(tǒng)的實現(xiàn)6</p><p>  4.1系統(tǒng)登陸功能的實現(xiàn)6</p><p>  4.2基本信息管理模塊7</p><p>  4.2.1節(jié)假日信息管理7</p><p>  4.2.2部門信息管理8</p><p>  4.2.3員工信息管理9</p><p>

13、  4.3考勤管理模塊11</p><p>  4.3.1出勤信息管理11</p><p>  4.3.2加班信息管理13</p><p>  4.3.3請假信息管理14</p><p>  4.3.4出差信息管理16</p><p>  4.4統(tǒng)計查詢模塊17</p><p

14、>  4.4.1日考勤統(tǒng)計表17</p><p>  4.4.2月考勤統(tǒng)計表18</p><p>  4.4.3當日考勤人員列表20</p><p>  4.5用戶管理模塊21</p><p><b>  結(jié) 論23</b></p><p><b>  參考

15、文獻24</b></p><p><b>  致 謝25</b></p><p><b>  聲 明26</b></p><p><b>  引言</b></p><p><b>  課題背景</b></p>&

16、lt;p>  無論公司還是企業(yè),都會涉及到對職工的考勤管理。考勤管理在生產(chǎn)管理過程中充當著一個十分重要角色,考勤管理的效率對生產(chǎn)的效果起著舉足輕重的作用。隨著現(xiàn)代科學技術(shù)的發(fā)展,越來越多的公司和企業(yè)對職工的考勤管理都實行了信息化管理,使用計算機系統(tǒng)代替繁瑣冗余的手工方式來管理考勤事務。傳統(tǒng)的手工方式不僅效率低下,而且容易出錯,采用計算機技術(shù)進行貨物管理可以克服手工管理的缺點,將人們從煩雜的勞動中解放出來。先進的考勤管理思想在商業(yè)中

17、實現(xiàn)就成為了一個時代的目標。公司集團非常急需一套既有先進考勤方法又適合國內(nèi)大商業(yè)的考勤管理系統(tǒng),作為實現(xiàn)目標和提高現(xiàn)有水平的一種重要手段??记诠芾硐到y(tǒng)是一個公司不可缺少的部分,它的執(zhí)行對于公司的決策者和管理者來說是很有幫助的,隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。基于此,開發(fā)了一套考勤管理系統(tǒng),其主要目的是為了統(tǒng)計員工的遲到、早退、曠工、事病假、加班

18、以及出差情況,這些信息將直接作為公司對員工的獎懲、提升以及培訓的依據(jù)。</p><p><b>  本課題研究意義</b></p><p>  隨著計算機技術(shù)和網(wǎng)絡技術(shù)的發(fā)展,計算機網(wǎng)絡給人們帶來了很多便利,同樣考勤管理系統(tǒng)也是如此,它主要是為了滿足單位日常的考勤管理的需求,擴大工作空間,使單位管理過程更加快速、安全、高。論文系統(tǒng)規(guī)劃設計過程是從單位的業(yè)務流程出發(fā)展開

19、分析,從而完成系統(tǒng)各個功能模塊的分析過程,以及完成部分功能模塊的設計,實現(xiàn)了數(shù)據(jù)庫信息的瀏覽、錄入、查詢、修改、刪除等各種操作,通過統(tǒng)一界面使得系統(tǒng)操作更為靈活、方便便捷。隨著計算機的普及和計算機科學技術(shù)的飛速發(fā)展,人們開始越來越多地利用計算機解決實際問題??记诠芾硎巧虡I(yè)信息管理的重要部分,面對大量的商品信息,采用人力處理將浪費大量的時間、人力和物力,而且統(tǒng)計數(shù)據(jù)麻煩。因此,開發(fā)一個界面友好,易于操作的考勤管理軟件進行自動化處理變得十分

20、重要,這正是本系統(tǒng)開發(fā)的目的和意義。通過此考勤管理系統(tǒng)的開發(fā)鍛煉了學生的實際動手能力對以后的學習和工作能力的培養(yǎng)也具有重要意義。</p><p><b>  本課題研究方法</b></p><p>  開發(fā)數(shù)據(jù)庫管理信息系統(tǒng)需要選擇兩種工具,即前臺開發(fā)語言和后臺數(shù)據(jù)庫。一般開發(fā)C/S結(jié)構(gòu)的應用程序時,前臺開發(fā)語言通常可以選擇Visual Basic、Visual C+

21、+、Delphi和Power Builder等,如果開發(fā)網(wǎng)絡應用程序,則需要選擇一個網(wǎng)絡數(shù)據(jù)庫系統(tǒng),如Access、Oracle和IBM DB2等。本設計是使用Visual C++ 6.0的開發(fā)工具,使用Microsoft SQL Server 2000作為后臺數(shù)據(jù)庫開發(fā),采用了最新的數(shù)據(jù)庫訪問技術(shù)ADO(ActiveX Data Objects),是提供對各種數(shù)據(jù)庫的標準接口。本次畢業(yè)設計應首先分析考勤管理系統(tǒng)的相關功能,結(jié)合本次畢業(yè)

22、設計的相關要求寫出需求分析;其次,綜合運用以前所學的相關知識,在設計中以需求分析為基礎,寫出系統(tǒng)開發(fā)計劃、實現(xiàn)流程及相關問題的實現(xiàn)方法;同時,在開發(fā)設計與實現(xiàn)中,要保存好相關的設計文檔。</p><p><b>  開發(fā)工具</b></p><p>  Visual C++6.0</p><p>  Visual C++6.0 是微軟公司199

23、8年推出的產(chǎn)品,是基于Windows操作系統(tǒng)的編程工具,是Microsoft Visual Studio 6.0的組件之一,是一種面向?qū)ο蟪绦蛟O計語言。它采用一種巧妙的方法將Windows的編程復雜性封裝起來,編程者可以比較輕松地進行Windows應用程序的設計。Visual C++ 6.0繼承了以前版本的優(yōu)點,為用戶提供了更為友好的可視化開發(fā)環(huán)境。它提供了強大的編譯能力以及良好的界面操作性,具有功能強大、通用性強和易于擴充等特點,越來

24、越多的被用來當作客戶/服務器應用程序的前臺卡法工具,而且能夠?qū)indows 9x、Windows NT 以及Windows 2000 下的C++程序設計提供完善的編程環(huán)境。同時Visual C++6.0 對網(wǎng)絡、數(shù)據(jù)庫等方面的編程也都提供相應的環(huán)境支持。</p><p>  幾乎所有世界級的軟件,從業(yè)界領先的Web瀏覽器到面向任務的企業(yè)應用,都是使用Microsoft Visual C++開發(fā)系統(tǒng)來開發(fā)的。要用

25、C++來開發(fā)Windows和Web上的高性能應用程序,Visual C++是效率最高的首選工具。Visual C++ 6.0在不犧牲靈活性、性能和控制力度的同時,給C++帶來了更高水平的生產(chǎn)效率。除了IntelliSense Technology(智能感應技術(shù))和Edit and Continue(即編即調(diào))等顯著縮短開發(fā)時間的新特性外,Visual C++ 6.0還為Web開發(fā)和企業(yè)開發(fā)提供更良好的支持。有了Microsoft Vis

26、ual C++ 6.0企業(yè)版,可以創(chuàng)建出面向Windows和Web的多層次可調(diào)節(jié)的應用程序。有了它為Internet、SQL和COM開發(fā)所提供的優(yōu)化了的支持,可以大大提高您的開發(fā)效率。</p><p>  SQL Server 2000</p><p>  Microsoft SQL Server 2000是一套完整的數(shù)據(jù)庫和分析產(chǎn)品,可迅速提供下一代可擴展電子商務、各種業(yè)務和數(shù)據(jù)倉庫解決

27、方案。Microsoft SQL Server 2000是一個分布式的關系型數(shù)據(jù)庫管理系統(tǒng),具有客戶機/服務器體系結(jié)構(gòu),采用了Transact-SQL的SQL語言在客戶機與服務器間傳遞客戶機的請求與服務器的處理結(jié)果。它一種應用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有許多顯著的優(yōu)點:易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與許多其他服務器軟件緊密關聯(lián)的集成性、良好的性價比等。性能、可伸縮性及可靠性是基本要求,而進入市場時間也非常關

28、鍵。除這些核心企業(yè)品質(zhì)外,SQL Server 2000 還為您的數(shù)據(jù)管理與分析帶來了靈活性,允許單位在快速變化的環(huán)境中從容響應,從而獲得競爭優(yōu)勢。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用 Web帶來的機會非常重要。</p><p>  Microsoft SQL Server 2000是眾多數(shù)據(jù)庫開發(fā)軟件的一種,它的版本包括企業(yè)版,標準版,個人版,Windows CE版,開發(fā)版和評估版。不同版

29、本的功能和用戶群不同。SQL是訪問數(shù)據(jù)庫的標準語言,無論后臺數(shù)據(jù)庫是SQL Server,Oracle,還是IBM DB2,甚至是小型數(shù)據(jù)庫ACCESS,都可以使用標準的SQL語句對它進行操作。在這里,是采用SQL Server 2000是作為后臺數(shù)據(jù)庫。</p><p><b>  考勤管理系統(tǒng)的設計</b></p><p><b>  需求分析</

30、b></p><p>  考勤管理系統(tǒng)的用戶是各單位負責考勤管理的員工和領導,它可以有效的管理公司單位員工的出勤情況,規(guī)范人事制度的管理。管理員可以創(chuàng)建用戶,修改用戶信息以及刪除用戶,和對公司一些員工信息的編輯等。該系統(tǒng)包括基本信息管理,考勤信息管理,統(tǒng)計查詢和用戶管理等主要模塊。每一個功能模塊都需要針對不同的表來完成相同的數(shù)據(jù)庫操作,即添加記錄,修改記錄,刪除記錄以及查詢顯示記錄信息。具體功能有以下幾個方

31、面。</p><p>  1、基本信息的添加,修改,刪除和查詢。節(jié)本信息管理包括節(jié)假日日期設置,部門信息管理和員工信息管理。</p><p>  2、考勤信息管理包括出勤管理,加班管理,請假管理和出差管理等功能。</p><p>  3、統(tǒng)計查詢功能包括日考勤統(tǒng)計表,月考勤統(tǒng)計表和當日缺勤人員列表。</p><p>  4、用戶管理包括Adm

32、in用戶管理和其他用戶管理。</p><p><b>  功能模塊構(gòu)成</b></p><p>  考勤管理系統(tǒng)由基本信息管理模塊、考勤信息模塊、統(tǒng)計查詢模塊和用戶管理模塊四個主要功能模塊構(gòu)成。</p><p>  基本信息管理模塊,包括節(jié)假日日期設置,部門信息管理緩和員工信息管理。節(jié)假日日期信息只包括具體的日期數(shù)據(jù),部門信息包括部門名稱和部門

33、功能的描述,員工信息包括員工姓名,性別,生日,身份證號等。</p><p>  考勤信息包括出勤,加班,請假,出差等信息。出勤信息包括全勤,休息,曠工,遲到和早退等信息;加班信息包括員工信息,加班時間,加班類型和加班描述;請假信息包括員工信息,請假類型和原因;出差信息包括員工信息和出差原因。</p><p>  統(tǒng)計查詢模塊包括日考勤統(tǒng)計表,月考勤統(tǒng)計表和當日缺勤人員列表。日考勤統(tǒng)計表包括

34、員工姓名,考勤日期,是否全勤,是否請假等信息,月考勤統(tǒng)計表包括員工姓名,考勤月份,全勤天數(shù),出差天數(shù)等信息,當日缺勤人員列表包括系統(tǒng)當前日期缺勤員工的姓名,所在部門和聯(lián)系電話等信息。</p><p>  用戶管理模塊用戶包括Admin用戶和普通用戶。Admin用戶可以修改自己的密碼,創(chuàng)建修改和刪除普通用戶信息。普通用戶只能修改自身的信息</p><p>  功能模塊構(gòu)成如圖1:</p

35、><p><b>  圖1 功能模塊</b></p><p><b>  數(shù)據(jù)庫結(jié)構(gòu)設計</b></p><p>  考勤管理系統(tǒng)數(shù)據(jù)庫采用Microsoft SQL SERVER 2000,在使用數(shù)據(jù)庫過程中,接觸最多的就是數(shù)據(jù)庫中的表,表是數(shù)據(jù)存儲的地方,是數(shù)據(jù)庫最重要的部分。這個系統(tǒng)數(shù)據(jù)庫表由6個表構(gòu)成,具體如下。<

36、;/p><p>  CheckInfo表是記錄考勤信息的,記錄員工遲到,早退,全勤,曠工,病假,事假,休息,出差等信息。</p><p>  表1 CheckInfo</p><p>  DepInfo表是記錄部門信息的。DepId為主鍵。</p><p>  表2 DepInfo</p><p>  EmpInfo表是記

37、錄員工的基本信息。管理員可以查看員工信息,添加員工信息需要用的表。EmpId是主鍵。</p><p>  表3 EmpInfo</p><p>  HolidaySet表是設置節(jié)假日信息的。Id為主鍵。</p><p>  表4 HolidaySet</p><p>  OverTime表是記錄加班信息的。</p><

38、p>  表5 OverTime</p><p>  UserInfo表是記錄用戶信息的,包括用戶名和密碼。</p><p>  表6 UserInfo</p><p><b>  考勤管理系統(tǒng)的實現(xiàn)</b></p><p><b>  系統(tǒng)登陸功能的實現(xiàn)</b></p><

39、;p>  用戶要使用本系統(tǒng),首先必須通過系統(tǒng)的身份認證。如果用戶名錯誤或者不存在,密碼錯誤3次后,對話框自動關閉。</p><p><b>  圖2 登陸對話框</b></p><p><b>  具體代碼如下:</b></p><p>  void CLoginDlg::OnOK() </p><

40、;p>  {UpdateData(TRUE); //將對話框中編輯框的數(shù)據(jù)讀取到成員變量中</p><p>  if(m_User == "")// 沒有輸入用戶名</p><p>  {MessageBox("請輸入用戶名", "信息提示");</p><p>  GetDlgItem(IDC_

41、USER_EDIT)->SetFocus();</p><p><b>  return;}</b></p><p>  CUserInfo User; // 定義用戶信息表變量</p><p>  if(!User.IsExistUser(m_User)) // 判斷用戶是否存在</p><p><b>

42、;  {count++;</b></p><p>  if(count < 3)</p><p>  {MessageBox("用戶名不存在,請重新輸入!", "用戶名錯誤", MB_ICONINFORMATION);</p><p>  UpdateData(FALSE);</p><p

43、>  GetDlgItem(IDC_USER_EDIT)->SetFocus();</p><p><b>  return;}</b></p><p><b>  else</b></p><p>  {MessageBox("重試次數(shù)已到,不能再輸入用戶名和密碼,即將退出系統(tǒng)!", &

44、quot;用戶名錯誤", MB_ICONEXCLAMATION);</p><p>  exit(0);}}</p><p>  User.GetInfo(m_User); // 判斷密碼是否正確</p><p>  if(User.Passwd != m_Passwd)</p><p>  {……//同用戶判斷}</p>

45、;<p>  CDialog::OnOK();// 關閉對話框}</p><p><b>  基本信息管理模塊</b></p><p>  基本信息管理模塊包括節(jié)假日信息管理,部門信息管理和員工信息管理。</p><p><b>  節(jié)假日信息管理</b></p><p>  節(jié)假日信

46、息管理,首先對節(jié)假日信息的編輯,判斷節(jié)假日記錄是否存在,存入數(shù)據(jù)。在從HolidaySet中讀取所有節(jié)假日記錄,在對記錄進行操作,即添加,修改和刪除。普通用戶是不能打開這一塊信息的,節(jié)假日管理對他們是不可見的。</p><p><b>  圖3 節(jié)假日信息框</b></p><p><b>  部分代碼如下:</b></p><

47、;p>  BOOL CHolidayManDlg::OnInitDialog()// 初始化</p><p>  {CDialog::OnInitDialog();</p><p>  RefreshData();}</p><p>  void CHolidayManDlg::RefreshData()// 更新數(shù)據(jù)</p><p>

48、;  {UpdateData(TRUE);</p><p>  CString cSource = "SELECT Id, HolidayDate AS 節(jié)假日, HolidayName AS 名稱" " FROM HolidaySet";// 設置Select語句</p><p>  m_Adodc.SetRecordSource(cSour

49、ce); //刷新ADO Data控件的記錄源</p><p>  m_Adodc.RefreshData()}</p><p>  void CHolidayManDlg::OnAddButton() //添加按鈕</p><p>  {UpdateData(TRUE);</p><p>  CHolidayEditDlg dlg; //

50、 初始化HolidayEditDlg對話框中的變量</p><p>  if (dlg.DoModal() == IDOK)</p><p>  RefreshData();}</p><p>  void CHolidayManDlg::OnModiButton()// 修改按鈕</p><p>  {CHolidayEditDlg dl

51、g; // 設置HolidayEditDlg對話框中的變量</p><p>  if (dlg.DoModal() == IDOK) // 打開HolidayEditDlg對話框</p><p>  RefreshData();}</p><p>  void CHolidayManDlg::OnDelButton()// 刪除按鈕</p><p

52、>  {cur.SqlDelete(m_Datagrid.GetItem(0));</p><p>  RefreshData();}</p><p><b>  部門信息管理</b></p><p>  部門信息管理模塊包括部門信息編輯對話框,部門信息管理對話框和部門信息選擇對話框。</p><p>  部門

53、編輯主要是用來添加和修改部門信息。部門信息管理對話框,是系統(tǒng)管理員進行的操作,如果當前用戶不是系統(tǒng)管理員,則添加,修改,和刪除等按鈕是不可以用,他們沒有相關的權(quán)限。在刪除部門的時候要對部門信息進行判斷,如果部門是根節(jié)點,包含下一級部門和員工時不能刪除。部門信息的選擇,是為了方便用戶選擇部門,以后的其他模塊程序可以通過此程序來獲取選擇的部門信息。</p><p><b>  圖4 部門圖</b>

54、;</p><p><b>  主要代碼如下:</b></p><p>  BOOL CDepManDlg::OnInitDialog() //初始化</p><p>  {CDialog::OnInitDialog();}</p><p>  void CDepManDlg::AddtoTree(HTREEITEM m

55、_node, int UpperId)</p><p>  {//使用遞歸方法將部門添加到TreeView控件中</p><p><b>  int i;</b></p><p>  HTREEITEM m_child;</p><p>  if(UpperId == atoi(dep.a_UID.GetAt(i)))&

56、lt;/p><p>  {m_child = m_tree.InsertItem(dep.a_DepName.GetAt(i), m_node);</p><p>  m_tree.SetItemData(m_child, atol(dep.a_DepId.GetAt(i)));</p><p>  AddtoTree(m_child, atoi(dep.a_DepI

57、d.GetAt(i)));</p><p><b>  }}</b></p><p>  void CDepManDlg::OnAddButton() //添加按鈕</p><p>  {HTREEITEM node; //用于保存當前選擇的節(jié)點</p><p>  node = m_tree.GetSelectedI

58、tem(); //取得當前選擇的節(jié)點}</p><p><b>  // 刪除按鈕</b></p><p>  void CDepManDlg::OnDelButton() </p><p>  {HTREEITEM node; //用于保存當前節(jié)點</p><p>  node = m_tree.GetSelect

59、edItem(); //取得當前節(jié)點</p><p>  //彈出對話框,要求用戶確認是否刪除。如果用戶單擊“是”按鈕,則刪除</p><p>  if (MessageBox("是否刪除當前部門?", "請確認", MB_YESNO) == IDYES)</p><p>  {dep.SqlDelete(cDepId);

60、 //刪除表Departments中的指定記錄</p><p>  m_tree.DeleteItem(node); //刪除Tree控件中的當前節(jié)點}}</p><p><b>  員工信息管理</b></p><p>  編輯員工基本信息對話框用來添加和修改員工信息,主要包括員工的姓名,性別,出生日期,身份證號,到崗日期,辦公電話,手機電

61、話,工作崗位,職務和描述信息。員工管理則是通過選擇部門信息,添加,修改和刪除員工信息 這里可以查看每個部門下的員工信息。同樣普通用戶只能查看員工信息,不能對其信息進行添加,修改和刪除等操作。</p><p><b>  圖5 員工信息圖</b></p><p><b>  主要代碼如下:</b></p><p>  voi

62、d CEmpManDlg::RefreshData()</p><p>  {UpdateData(TRUE);</p><p>  int iDepId; //從Tree控件中讀取部門編號信息</p><p>  HTREEITEM node;</p><p>  node = m_tree.GetSelectedItem();</p

63、><p>  iDepId = m_tree.GetItemData(node);</p><p>  CString cDepId; //根據(jù)部門編號設置SELECT語句</p><p>  cDepId.Format("%d", iDepId);</p><p>  // 設置SELECT語句</p><

64、;p>  CString cSource = "SELECT EmpId, Name AS 姓名, Sex AS 性別,"</p><p>  " Birthday AS 生日, IdCard AS 身份證號, OfficePhone AS 辦公電話,"</p><p>  " Mobile AS 手機號碼, HireDate AS

65、到崗日期, Mission AS 工作崗位,"</p><p>  " Duty AS 職務, Memo AS 備注 FROM EmpInfo e, DepInfo d"</p><p>  " WHERE e.DepId = d.DepId";…}</p><p>  void CEmpManDlg::OnAddB

66、utton()// 添加按鈕</p><p>  {UpdateData(TRUE);</p><p>  CTime CurrentTime = CTime::GetCurrentTime();// 添加員工時,將日期控件設置為當天</p><p>  if(dlg.DoModal()==IDOK)</p><p>  RefreshDa

67、ta();}</p><p>  void CEmpManDlg::OnModiButton()// 修改按鈕</p><p>  {UpdateData(TRUE);</p><p>  CEmpInfo emp; // 讀取選擇員工的記錄</p><p>  emp.GetInfo(m_Datagrid.GetItem(0));</

68、p><p>  CEmpEditDlg dlg; // 將員工數(shù)據(jù)讀取到編輯對話框中</p><p>  if(dlg.DoModal()==IDOK)</p><p>  RefreshData();}</p><p>  void CEmpManDlg::OnDelButton()// 刪除按鈕</p><p>  {

69、CEmpInfo emp;</p><p>  emp.SqlDelete(m_Datagrid.GetItem(0));</p><p>  RefreshData();}</p><p><b>  考勤管理模塊</b></p><p>  考勤管理模塊主要實現(xiàn)了出勤信息管理,加班信息管理,請假信息管理和出差信息管

70、理。</p><p><b>  出勤信息管理</b></p><p>  出勤信息編輯對話框中,首先單擊選擇部門按鈕,在左側(cè)的表格中將顯示選擇部門中的所有員工信息。選擇一個員工,會在右側(cè)下方顯示他的出勤狀態(tài)。選擇出勤狀態(tài),然后單擊確定按鈕,可以保存指定員工的出勤情況。</p><p>  出勤管理對話框中,根據(jù)左邊的部門,列出各個部門中的員工

71、及其員工的出勤信息,出勤時間,是否全勤,是否出差,是否遲到,是否早退,是否曠工等。用戶可以根據(jù)實際的情況進行具體的操作,添加,修改和刪除。</p><p><b>  圖6 出勤信息</b></p><p><b>  主要代碼如下:</b></p><p>  void COnDutyManDlg::RefreshDat

72、a()</p><p>  {UpdateData(TRUE);</p><p>  int iDepId; //從Tree控件中讀取部門編號信息</p><p>  HTREEITEM node;</p><p>  node = m_tree.GetSelectedItem();</p><p>  iDepId

73、 = m_tree.GetItemData(node);</p><p>  CString cDepId; //根據(jù)部門編號設置SELECT語句</p><p>  cDepId.Format("%d", iDepId);</p><p>  // 設置SELECT語句</p><p>  CString cSource

74、 = "SELECT c.EmpId AS 員工編號, e.Name AS 姓名, c.CheckDate AS 出勤日期," " c.QuanQin AS 是否全勤, c.XiuXi AS 是否休息, c.KuangGong AS 是否曠工,"" c.ChiDao AS 是否遲到, c.ZaoTui AS 是否早退 FROM CheckInfo c, EmpInfo e, DepIn

75、fo d"" WHERE c.EmpId = e.EmpId AND e.DepId = d.DepId";</p><p>  m_Adodc.SetRecordSource(cSource); //刷新ADO Data控件的記錄源</p><p>  m_Adodc.Refresh();}</p><p>  void COnDut

76、yManDlg::OnAddButton()// 添加按鈕{...}</p><p>  void COnDutyManDlg::OnModiButton()//修改按鈕{…}</p><p>  void COnDutyManDlg::OnDelButton()//刪除按鈕{…}</p><p>  程序調(diào)用m_tree.GetSelectedItem()函數(shù)獲取

77、當前選擇的部門接點數(shù)據(jù),并使用GetItemData(node)函數(shù)獲取部門編號。然后根據(jù)選擇的部門編號設置SELECT語句,從表CheckInfo,表EmpInfo和表DepInfo中獲取部門中所有員工的出勤記錄。</p><p><b>  加班信息管理</b></p><p>  加班信息編輯對話框主要是對員工的加班情況的添加和修改。首先點擊選擇部門,在左側(cè)則列

78、出所有部門及其員工信息,選擇一個員工,會在右側(cè)下方顯示他的加班狀態(tài)。選擇加班狀態(tài),包括加班時數(shù),加班原因和加班類型,然后單擊確定按鈕,可以保存指定員工的加班情況。</p><p>  加班信息管理對話框中,通過點擊左邊的部門,列出各個部門中的員工及其員工的加班信息,加班時間,加班時數(shù),加班原因和加班類型等。用戶可以根據(jù)實際的情況進行具體的操作,添加,修改和刪除。</p><p><b

79、>  圖7 加班信息框</b></p><p><b>  部分代碼如下:</b></p><p>  void COvertimeManDlg::OnAddButton() //添加按鈕</p><p>  {COvertimeEditDlg dlg;</p><p>  CurrentTime =

80、 CTime::GetCurrentTime();</p><p>  dlg.otDate = CurrentTime.Format("%Y-%m-%d");</p><p>  if (dlg.DoModal() == IDOK)</p><p>  RefreshData();}</p><p>  void COv

81、ertimeManDlg::OnModiButton()// 修改按鈕</p><p>  {if (m_Adodc.GetRecordset().GetEof())</p><p>  {MessageBox("請選擇要修改的記錄!");</p><p><b>  return;}</b></p>&

82、lt;p>  CEmpInfo emp; // 根據(jù)員工編號得到員工信息</p><p>  emp.GetInfo(m_Datagrid.GetItem(0));</p><p>  CString cDepId; // 根據(jù)部門編號得到部門信息</p><p>  cDepId.Format("%d", emp.DepId);</

83、p><p>  dep.GetInfo(cDepId);</p><p>  COvertimeEditDlg dlg;</p><p>  if(m_Datagrid.GetItem(4) == "法定節(jié)假日加班")</p><p>  dlg.m_overtime = 0;</p><p>  el

84、se if(m_Datagrid.GetItem(4) == "周六日加班")</p><p>  dlg.m_overtime = 1;</p><p>  else if(m_Datagrid.GetItem(4) == "日常加班")</p><p>  dlg.m_overtime = 2;</p>&l

85、t;p>  dlg.otDate = m_Datagrid.GetItem(2);// 日期</p><p>  dlg.m_describe = m_Datagrid.GetItem(5);</p><p>  if (dlg.DoModal() == IDOK)</p><p>  RefreshData();}</p><p>

86、  void COvertimeManDlg::OnDelButton()//刪除按鈕</p><p>  {cur.SqlDelete(m_Datagrid.GetItem(2), m_Datagrid.GetItem(0));}</p><p><b>  請假信息管理</b></p><p>  請假信息編輯對話框中,首先點擊選擇部門,在

87、左側(cè)則列出所有部門及其員工信息,選擇一個員工,會在右側(cè)下方顯示他的請假狀態(tài)。選擇出勤狀態(tài),請假分為病假和事假,并且需要輸入請假原因,然后單擊確定按鈕,可以保存指定員工的請假情況。</p><p>  請假信息管理對話框中,通過點擊左邊的部門,列出各個部門中的員工及其員工的信息,選中員工的姓名則可以進行員工的請假信息的編輯。用戶可以根據(jù)實際的情況進行具體的操作,添加,修改和刪除。</p><p&

88、gt;<b>  圖8 請假信息圖</b></p><p><b>  主要代碼如下:</b></p><p>  void CLeaveEditDlg::OnOK() </p><p>  {UpdateData(TRUE);</p><p>  if(m_Adodc.GetRecordset(

89、).GetEof())// 是否選擇人員</p><p>  {MessageBox("請選擇人員");</p><p><b>  return;}</b></p><p>  if(m_shijia == -1) // 是否進行添加考勤狀態(tài)</p><p>  {MessageBox(&qu

90、ot;請選擇出勤狀態(tài)");</p><p><b>  return;}</b></p><p>  CCheckInfo cur;</p><p>  cur.CheckDate = CheckDate; // 賦值到CCheckInfo對象中</p><p>  cur.EmpId = atol(m_Da

91、tagrid.GetItem(0));</p><p>  switch(m_shijia)</p><p>  {cur.Memo = m_memo;</p><p>  if(EmpId == "")</p><p>  {// 在添加時,若人員有出勤記錄,則不允許添加</p><p>  i

92、f(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)))</p><p>  {MessageBox("已經(jīng)有此員工的出勤信息,不能添加");</p><p>  return;}</p><p>  cur.SqlInsert();// 插入記錄}</p><p><b

93、>  else</b></p><p>  {cur.UpdateLeave(cur.CheckDate, EmpId); // 修改CheckInfo表記錄}</p><p>  CDialog::OnOK();}</p><p>  請假信息保存在表CheckInfo中,如果在出勤信息管理模塊中輸入了出勤信息,則不能再輸入請假信息。如果修改

94、記錄,則程序調(diào)用Update Leave()函數(shù),更新表CheckInfo中的Shijia ,Bingjia和Memo等字段的值。</p><p><b>  出差信息管理</b></p><p>  出差信息管理編輯對話框主要是對員工的出差情況的添加和修改。首先點擊選擇部門,在左側(cè)則列出所有部門及其員工信息,選擇一個員工,會在右側(cè)下方顯示他的出差狀態(tài)。選擇出差狀態(tài),

95、寫出出差原因,然后單擊確定按鈕,可以保存指定員工的出差情況。</p><p>  出差信息管理對話框中,通過點擊左邊的部門,列出各個部門中的員工及其員工的出差信息。用戶可以根據(jù)實際的情況進行具體的操作,添加,修改和刪除。</p><p><b>  圖9 出差信息</b></p><p><b>  主要代碼如下:</b>

96、</p><p>  void CErrandEditDlg::OnOK() </p><p>  {UpdateData(TRUE);</p><p>  if(m_Adodc.GetRecordset().GetEof())// 是否選擇人員</p><p>  {MessageBox("請選擇人員");</p

97、><p><b>  return; }</b></p><p>  CCheckInfo cur;</p><p>  cur.CheckDate = CheckDate; // 賦值到CCheckInfo對象中</p><p>  cur.EmpId = atol(m_Datagrid.GetItem(0));</

98、p><p>  cur.ChuChai = "是";</p><p>  cur.QuanQin = "否";</p><p>  cur.BingJia = "否";</p><p>  cur.ShiJia = "否";</p><p> 

99、 cur.KuangGong = "否";</p><p>  cur.XiuXi = "否";</p><p>  cur.ChiDao = "否";</p><p>  cur.ZaoTui = "否";</p><p>  cur.Memo = m_memo

100、;</p><p>  if(EmpId == "")</p><p>  {// 在添加時,若人員有出勤記錄,則不允許添加</p><p>  if(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)))</p><p>  {MessageBox("已經(jīng)有此員工的出勤

101、信息,不能添加");</p><p><b>  Return;}</b></p><p>  cur.SqlInsert();// 插入記錄}</p><p><b>  else</b></p><p>  {cur.UpdateErrand(cur.CheckDate, m_Dat

102、agrid.GetItem(0)); // 修改CheckInfo表記錄}</p><p>  CDialog::OnOK();……}</p><p><b>  統(tǒng)計查詢模塊</b></p><p>  統(tǒng)計查詢模塊主要是實現(xiàn)了日考勤統(tǒng)計表,月考勤統(tǒng)計表,當日缺勤人員列表3個功能。</p><p><b> 

103、 日考勤統(tǒng)計表</b></p><p>  日考勤統(tǒng)計表按日查詢所有員工的出勤,加班,請假和出差等信息。首先選擇要查詢的日期,在點擊查詢按鈕,即列出這日期的員工信息,包括員工編號,員工姓名,出勤日期,是否全勤,是否出差,是否請假,是否加班等等。</p><p>  圖10 日考勤統(tǒng)計圖</p><p><b>  主要代碼如下:</b&g

104、t;</p><p>  void CTimeSelDlg::RefreshData()</p><p>  {UpdateData(TRUE);</p><p>  CString cTime; //根據(jù)部門編號設置SELECT語句</p><p>  cTime = m_time.Format("%Y-%m-%d");

105、</p><p>  // 設置SELECT語句</p><p>  CString cSource = "SELECT c.EmpId AS 員工編號, e.Name AS 姓名, c.CheckDate AS 出勤日期," " c.QuanQin AS 是否全勤, c.ChuChai AS 是否出差, c.ShiJia AS 是否事假," &qu

106、ot; c.BingJia AS 是否病假, c.KuangGong AS 是否曠工, c.XiuXi AS 是否休息," " c.ChiDao AS 是否遲到, c.ZaoTui AS 是否早退, c.Memo AS 備注"" FROM CheckInfo c, EmpInfo e WHERE c.EmpId = e.EmpId AND c.CheckDate = '" + c

107、Time + "'";</p><p>  //刷新ADO Data控件的記錄源</p><p>  m_Adodc.SetRecordSource(cSource);</p><p>  m_Adodc.Refresh();}</p><p>  程序執(zhí)行SELECT語句,從表CheckInfo和EmpInfo中

108、讀取選擇日期中各員工的考勤信息。</p><p><b>  月考勤統(tǒng)計表</b></p><p>  月考勤統(tǒng)計表是按月統(tǒng)計所有員工的出勤天數(shù),請假天數(shù),出差天數(shù)等信息。為了對各種考勤天數(shù)進行統(tǒng)計,需要創(chuàng)建一組視圖,分別按月統(tǒng)計所有員工的全勤天數(shù),休息天數(shù),曠工天數(shù),遲到次數(shù),早退次數(shù),病假天數(shù),事假天數(shù)和出差天數(shù)。在表CheckInfo中,CheckDate字段保

109、存考勤日期,LEFT(CheckDate)返回考勤日期的年份和月份信息,使用COUNT()函數(shù)和GROUP BY子句統(tǒng)計考勤月份和員工分組的各種考勤天數(shù)。</p><p>  圖11 月考勤統(tǒng)計圖</p><p><b>  主要代碼如下:</b></p><p>  void CDepDlg::RefreshData()</p>

110、<p>  {UpdateData(TRUE);</p><p>  //根據(jù)部門編號設置SELECT語句</p><p>  CString cStrCnd,cDepId;</p><p>  cDepId.Format("%d", iDepId);</p><p>  if ( iDepId >0

111、)</p><p>  cStrCnd = " And d.DepId=" + cDepId;</p><p><b>  else</b></p><p>  cStrCnd = "";</p><p>  CString cTime; // 查詢?nèi)掌?lt;/p>&l

112、t;p>  // 得到年份和月份</p><p>  m_year.GetLBText(m_year.GetCurSel(), cYear);</p><p>  m_month.GetLBText(m_month.GetCurSel(), cMonth);</p><p>  cTime = cYear + "-" + cMonth; /

113、/ 得到日期</p><p>  // 設置SELECT語句</p><p>  CString cSource = "SELECT e.Name AS 姓名,"</p><p>  " ISNULL(v1.CountQuanQin,0) AS 全勤天數(shù), ISNULL(v2.CountChuChai,0) AS 出差天數(shù),"

114、</p><p>  " ISNULL(v3.CountShiJia,0) AS 事假天數(shù), ISNULL(v4.CountBingJia,0) AS 事假天數(shù),"</p><p>  " ISNULL(v5.CountKuangGong,0) AS 曠工天數(shù), ISNULL(v6.CountXiuXi,0) AS 休息天數(shù),"</p>

115、<p>  " ISNULL(v7.CountChiDao,0) AS 遲到次數(shù), ISNULL(v8.CountZaoTui,0) AS 早退次數(shù)"</p><p>  " FROM v_QuanQin v1, v_ChuChai v2, v_ShiJia v3, v_BingJia v4,DepInfo d, " </p><p> 

116、 " v_KuangGong v5, v_XiuXi v6, v_ChiDao v7, v_ZaoTui v8, EmpInfo e"</p><p>  " WHERE e.EmpId *= v1.EmpId AND e.EmpId *= v2.EmpId And e.DepId=d.DepId"</p><p>  " AND e.Em

117、pId *= v3.EmpId AND e.EmpId *= v4.EmpId AND e.EmpId *= v5.EmpId"</p><p>  " AND e.EmpId *= v6.EmpId AND e.EmpId *= v7.EmpId AND e.EmpId *= v8.EmpId"</p><p>  " AND v1.CheckMo

118、nth = '" + cTime + "' AND v2.CheckMonth = '" + cTime +</p><p>  "' AND v3.CheckMonth = '" + cTime + "' AND v4.CheckMonth = '" + cTime +</p>

119、;<p>  "' AND v5.CheckMonth = '" + cTime + "' AND v6.CheckMonth = '" + cTime +</p><p>  "' AND v7.CheckMonth = '" + cTime + "' AND v8.Che

120、ckMonth = '" + cTime + "'" + cStrCnd;</p><p>  //刷新ADO Data控件的記錄源</p><p>  m_Adodc.SetRecordSource(cSource);</p><p>  m_Adodc.Refresh();…}</p><p>

溫馨提示

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

評論

0/150

提交評論