版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
考勤管理系統(tǒng)的設(shè)計與實現(xiàn)介紹:隨著當(dāng)代科學(xué)技術(shù)的發(fā)展,越來越多的公司和公司對職工的考勤都實施了信息化管理,使用計算機(jī)系統(tǒng)替代復(fù)雜的手工方式來管理考勤事務(wù)??记诠芾硐到y(tǒng)能夠有效地管理公司員工的出勤狀況,規(guī)范人事制度管理,確保公司正常的工作,是人力資源管理的重要構(gòu)成部分。系統(tǒng)的開發(fā)重要涉及后臺數(shù)據(jù)庫的建立,維護(hù)以及前端應(yīng)用程序的開發(fā)兩個方面,重要模塊涉及基本信息管理模塊,考勤信息管理模塊,統(tǒng)計查詢模塊和系統(tǒng)顧客管理模塊。系統(tǒng)是使用VisualC++開發(fā)語言,使用MicrosoftVisualStudio6.0作為工具軟件,數(shù)據(jù)庫為SQLServer。系統(tǒng)采用現(xiàn)在比較流行的ADO數(shù)據(jù)訪問技術(shù),并將每個數(shù)據(jù)庫表的字段和操作封裝到類中,它使應(yīng)用程序的各個窗口都能夠共享對表的操作,不需要重復(fù)編碼,使程序更加易于維護(hù),從而將面對對象的程序設(shè)計思想應(yīng)用到數(shù)據(jù)庫應(yīng)用程序中。目錄論文總頁數(shù):26頁1 引言 11.1 課題背景 11.2 本課題研究意義 11.3 本課題研究辦法 12 開發(fā)工具 22.1 VisualC++6.0 22.2 SQLServer 23 考勤管理系統(tǒng)的設(shè)計 33.1 需求分析 33.2 功效模塊構(gòu)成 33.3 數(shù)據(jù)庫構(gòu)造設(shè)計 44 考勤管理系統(tǒng)的實現(xiàn) 64.1 系統(tǒng)登陸功效的實現(xiàn) 64.2 基本信息管理模塊 74.2.1 節(jié)假日信息管理 74.2.2 部門信息管理 84.2.3 員工信息管理 94.3 考勤管理模塊 114.3.1 出勤信息管理 114.3.2 加班信息管理 134.3.3 請假信息管理 144.3.4 出差信息管理 164.4 統(tǒng)計查詢模塊 174.4.1 日考勤統(tǒng)計表 174.4.2 月考勤統(tǒng)計表 184.4.3 當(dāng)天考勤人員列表 204.5 顧客管理模塊 21結(jié)論 23參考文獻(xiàn) 24致謝 25聲明 26引言課題背景無論公司還是公司,都會涉及到對職工的考勤管理??记诠芾碓谏a(chǎn)管理過程中充當(dāng)著一種十分重要角色,考勤管理的效率對生產(chǎn)的效果起著舉足輕重的作用。隨著當(dāng)代科學(xué)技術(shù)的發(fā)展,越來越多的公司和公司對職工的考勤管理都實施了信息化管理,使用計算機(jī)系統(tǒng)替代繁瑣冗余的手工方式來管理考勤事務(wù)。傳統(tǒng)的手工方式不僅效率低下,并且容易出錯,采用計算機(jī)技術(shù)進(jìn)行貨品管理能夠克服手工管理的缺點,將人們從煩雜的勞動中解放出來。先進(jìn)的考勤管理思想在商業(yè)中實現(xiàn)就成為了一種時代的目的。公司集團(tuán)非常急需一套現(xiàn)有先進(jìn)考勤辦法又適合國內(nèi)大商業(yè)的考勤管理系統(tǒng),作為實現(xiàn)目的和提高現(xiàn)有水平的一種重要手段??记诠芾硐到y(tǒng)是一種公司不可缺少的部分,它的執(zhí)行對于公司的決策者和管理者來說是很有協(xié)助的,隨著科學(xué)技術(shù)的不停提高,計算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功效已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用?;诖?,開發(fā)了一套考勤管理系統(tǒng),其重要目的是為了統(tǒng)計員工的遲到、早退、曠工、事病假、加班以及出差狀況,這些信息將直接作為公司對員工的獎懲、提高以及培訓(xùn)的根據(jù)。本課題研究意義隨著計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,計算機(jī)網(wǎng)絡(luò)給人們帶來了諸多便利,同樣考勤管理系統(tǒng)也是如此,它重要是為了滿足單位日常的考勤管理的需求,擴(kuò)大工作空間,使單位管理過程更快速、安全、高。論文系統(tǒng)規(guī)劃設(shè)計過程是從單位的業(yè)務(wù)流程出發(fā)展開分析,從而完畢系統(tǒng)各個功效模塊的分析過程,以及完畢部分功效模塊的設(shè)計,實現(xiàn)了數(shù)據(jù)庫信息的瀏覽、錄入、查詢、修改、刪除等多個操作,通過統(tǒng)一界面使得系統(tǒng)操作更為靈活、方便便捷。隨著計算機(jī)的普及和計算機(jī)科學(xué)技術(shù)的飛速發(fā)展,人們開始越來越多地運用計算機(jī)解決實際問題。考勤管理是商業(yè)信息管理的重要部分,面對大量的商品信息,采用人力解決將浪費大量的時間、人力和物力,并且統(tǒng)計數(shù)據(jù)麻煩。因此,開發(fā)一種界面和諧,易于操作的考勤管理軟件進(jìn)行自動化解決變得十分重要,這正是本系統(tǒng)開發(fā)的目的和意義。通過此考勤管理系統(tǒng)的開發(fā)鍛煉了學(xué)生的實際動手能力對后來的學(xué)習(xí)和工作能力的培養(yǎng)也含有重要意義。本課題研究辦法開發(fā)數(shù)據(jù)庫管理信息系統(tǒng)需要選擇兩種工具,即前臺開發(fā)語言和后臺數(shù)據(jù)庫。普通開發(fā)C/S構(gòu)造的應(yīng)用程序時,前臺開發(fā)語言普通能夠選擇VisualBasic、VisualC++、Delphi和PowerBuilder等,如果開發(fā)網(wǎng)絡(luò)應(yīng)用程序,則需要選擇一種網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),如Access、Oracle和IBMDB2等。本設(shè)計是使用VisualC++6.0的開發(fā)工具,使用MicrosoftSQLServer作為后臺數(shù)據(jù)庫開發(fā),采用了最新的數(shù)據(jù)庫訪問技術(shù)ADO(ActiveXDataObjects),是提供對多個數(shù)據(jù)庫的原則接口。本次畢業(yè)設(shè)計應(yīng)首先分析考勤管理系統(tǒng)的有關(guān)功效,結(jié)合本次畢業(yè)設(shè)計的有關(guān)規(guī)定寫出需求分析;另首先,綜合運用以前所學(xué)的有關(guān)知識,在設(shè)計中以需求分析為基礎(chǔ),寫出系統(tǒng)開發(fā)計劃、實現(xiàn)流程及有關(guān)問題的實現(xiàn)辦法;同時,在開發(fā)設(shè)計與實現(xiàn)中,要保存好有關(guān)的設(shè)計文檔。開發(fā)工具VisualC++6.0VisualC++6.0是微軟公司1998年推出的產(chǎn)品,是基于Windows操作系統(tǒng)的編程工具,是MicrosoftVisualStudio6.0的組件之一,是一種面對對象程序設(shè)計語言。它采用一種巧妙的辦法將Windows的編程復(fù)雜性封裝起來,編程者能夠比較輕松地進(jìn)行Windows應(yīng)用程序的設(shè)計。VisualC++6.0繼承了以前版本的優(yōu)點,為顧客提供了更為和諧的可視化開發(fā)環(huán)境。它提供了強(qiáng)大的編譯能力以及良好的界面操作性,含有功效強(qiáng)大、通用性強(qiáng)和易于擴(kuò)充等特點,越來越多的被用來當(dāng)作客戶/服務(wù)器應(yīng)用程序的前臺卡法工具,并且能夠?qū)indows9x、WindowsNT以及Windows下的C++程序設(shè)計提供完善的編程環(huán)境。同時VisualC++6.0對網(wǎng)絡(luò)、數(shù)據(jù)庫等方面的編程也都提供對應(yīng)的環(huán)境支持。幾乎全部世界級的軟件,從業(yè)界領(lǐng)先的Web瀏覽器到面對任務(wù)的公司應(yīng)用,都是使用MicrosoftVisualC++開發(fā)系統(tǒng)來開發(fā)的。要用C++來開發(fā)Windows和Web上的高性能應(yīng)用程序,VisualC++是效率最高的首選工具。VisualC++6.0在不犧牲靈活性、性能和控制力度的同時,給C++帶來了更高水平的生產(chǎn)效率。除了IntelliSenseTechnology(智能感應(yīng)技術(shù))和EditandContinue(即編即調(diào))等明顯縮短開發(fā)時間的新特性外,VisualC++6.0還為Web開發(fā)和公司開發(fā)提供更良好的支持。有了MicrosoftVisualC++6.0公司版,能夠創(chuàng)立出面對Windows和Web的多層次可調(diào)節(jié)的應(yīng)用程序。有了它為Internet、SQL和COM開發(fā)所提供的優(yōu)化了的支持,能夠大大提高您的開發(fā)效率。SQLServerMicrosoftSQLServer是一套完整的數(shù)據(jù)庫和分析產(chǎn)品,可快速提供下一代可擴(kuò)展電子商務(wù)、多個業(yè)務(wù)和數(shù)據(jù)倉庫解決方案。MicrosoftSQLServer是一種分布式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),含有客戶機(jī)/服務(wù)器體系構(gòu)造,采用了Transact-SQL的SQL語言在客戶機(jī)與服務(wù)器間傳遞客戶機(jī)的請求與服務(wù)器的解決成果。它一種應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),含有許多明顯的優(yōu)點:易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功效、與許多其它服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性價比等。性能、可伸縮性及可靠性是基本規(guī)定,而進(jìn)入市場時間也非常核心。除這些核心公司品質(zhì)外,SQLServer還為您的數(shù)據(jù)管理與分析帶來了靈活性,允許單位在快速變化的環(huán)境中從容響應(yīng),從而獲得競爭優(yōu)勢。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充足運用Web帶來的機(jī)會非常重要。MicrosoftSQLServer是眾多數(shù)據(jù)庫開發(fā)軟件的一種,它的版本涉及公司版,原則版,個人版,WindowsCE版,開發(fā)版和評定版。不同版本的功效和顧客群不同。SQL是訪問數(shù)據(jù)庫的原則語言,無論后臺數(shù)據(jù)庫是SQLServer,Oracle,還是IBMDB2,甚至是小型數(shù)據(jù)庫ACCESS,都能夠使用原則的SQL語句對它進(jìn)行操作。在這里,是采用SQLServer是作為后臺數(shù)據(jù)庫??记诠芾硐到y(tǒng)的設(shè)計需求分析考勤管理系統(tǒng)的顧客是各單位負(fù)責(zé)考勤管理的員工和領(lǐng)導(dǎo),它能夠有效的管理公司單位員工的出勤狀況,規(guī)范人事制度的管理。管理員能夠創(chuàng)立顧客,修改顧客信息以及刪除顧客,和對公司某些員工信息的編輯等。該系統(tǒng)涉及基本信息管理,考勤信息管理,統(tǒng)計查詢和顧客管理等重要模塊。每一種功效模塊都需要針對不同的表來完畢相似的數(shù)據(jù)庫操作,即添加統(tǒng)計,修改統(tǒng)計,刪除統(tǒng)計以及查詢顯示統(tǒng)計信息。具體功效有下列幾個方面。1、基本信息的添加,修改,刪除和查詢。節(jié)本信息管理涉及節(jié)假日日期設(shè)立,部門信息管理和員工信息管理。2、考勤信息管理涉及出勤管理,加班管理,請假管理和出差管理等功效。3、統(tǒng)計查詢功效涉及日考勤統(tǒng)計表,月考勤統(tǒng)計表和當(dāng)天缺勤人員列表。4、顧客管理涉及Admin顧客管理和其它顧客管理。功效模塊構(gòu)成考勤管理系統(tǒng)由基本信息管理模塊、考勤信息模塊、統(tǒng)計查詢模塊和顧客管理模塊四個重要功效模塊構(gòu)成?;拘畔⒐芾砟K,涉及節(jié)假日日期設(shè)立,部門信息管理緩和員工信息管理。節(jié)假日日期信息只涉及具體的日期數(shù)據(jù),部門信息涉及部門名稱和部門功效的描述,員工信息涉及員工姓名,性別,生日,身份證號等??记谛畔⑸婕俺銮?,加班,請假,出差等信息。出勤信息涉及全勤,休息,曠工,遲到和早退等信息;加班信息涉及員工信息,加班時間,加班類型和加班描述;請假信息涉及員工信息,請假類型和因素;出差信息涉及員工信息和出差因素。統(tǒng)計查詢模塊涉及日考勤統(tǒng)計表,月考勤統(tǒng)計表和當(dāng)天缺勤人員列表。日考勤統(tǒng)計表涉及員工姓名,考勤日期,與否全勤,與否請假等信息,月考勤統(tǒng)計表涉及員工姓名,考勤月份,全勤天數(shù),出差天數(shù)等信息,當(dāng)天缺勤人員列表涉及系統(tǒng)現(xiàn)在日期缺勤員工的姓名,所在部門和聯(lián)系電話等信息。顧客管理模塊顧客涉及Admin顧客和普通顧客。Admin顧客能夠修改自己的密碼,創(chuàng)立修改和刪除普通顧客信息。普通顧客只能修改本身的信息功效模塊構(gòu)成如圖1:圖1功效模塊數(shù)據(jù)庫構(gòu)造設(shè)計考勤管理系統(tǒng)數(shù)據(jù)庫采用MicrosoftSQLSERVER,在使用數(shù)據(jù)庫過程中,接觸最多的就是數(shù)據(jù)庫中的表,表是數(shù)據(jù)存儲的地方,是數(shù)據(jù)庫最重要的部分。這個系統(tǒng)數(shù)據(jù)庫表由6個表構(gòu)成,具體以下。CheckInfo表是統(tǒng)計考勤信息的,統(tǒng)計員工遲到,早退,全勤,曠工,病假,事假,休息,出差等信息。表1CheckInfo字段數(shù)據(jù)類型長度與否允許為空字段描述CheckDatechar10否考勤日期EmpIdint4否員工編號QuanQinchar2是全勤ChuChaichar2是出差BingJiachar2是病假ShiJiachar2是事假KuangGongchar2是曠工XiuXichar50是休息ChiDaochar50是遲到Zaotuichar50是早退Memovarchar200是備注DepInfo表是統(tǒng)計部門信息的。DepId為主鍵。表2DepInfo字段數(shù)據(jù)類型長度與否允許為空字段描述DepIdint4否部門編號DepNamevarchar50否部門名稱Describesvarchar250是描述UIDint4否總的編號EmpInfo表是統(tǒng)計員工的基本信息。管理員能夠查看員工信息,添加員工信息需要用的表。EmpId是主鍵。表3EmpInfo字段數(shù)據(jù)類型長度與否允許為空字段描述EmpIdint4否編號Namevarchar50否姓名Sexchar2是性別Birthdayvarchar20是生日IdCardvarchar20是身份證號OfficePhonevarchar30是辦公電話Mobilevarchar30是手機(jī)電話HireDateInt4是到崗日期DepIdvarchar40是部門編號Missionvarchar50是工作崗位Dutyvarchar20是職務(wù)Memovarchar200是備注信息HolidaySet表是設(shè)立節(jié)假日信息的。Id為主鍵。表4HolidaySet字段數(shù)據(jù)類型長度與否允許為空字段描述Idint4否編號HolidayDatechar10否節(jié)假日期HolidayNamevarchar50是節(jié)假名稱OverTime表是統(tǒng)計加班信息的。表5OverTime字段數(shù)據(jù)類型長度與否允許為空字段描述otDateChar10否加班日期EmpIdint4否員工編號otHoursmallint2否加班時間otTypevarchar50否加班類型Describesvarchar200是描述UserInfo表是統(tǒng)計顧客信息的,涉及顧客名和密碼。表6UserInfo字段數(shù)據(jù)類型長度與否允許為空字段描述UserNamevarchar40否顧客名Passwdvarchar40是密碼UserTypeint4否顧客類型考勤管理系統(tǒng)的實現(xiàn)系統(tǒng)登陸功效的實現(xiàn)顧客要使用本系統(tǒng),首先必須通過系統(tǒng)的身份認(rèn)證。如果顧客名錯誤或者不存在,密碼錯誤3次后,對話框自動關(guān)閉。圖2登陸對話框具體代碼以下:voidCLoginDlg::OnOK(){ UpdateData(TRUE);//將對話框中編輯框的數(shù)據(jù)讀取到組員變量中 if(m_User=="")//沒有輸入顧客名 { MessageBox("請輸入顧客名","信息提示"); GetDlgItem(IDC_USER_EDIT)->SetFocus(); return;} CUserInfoUser;//定義顧客信息表變量 if(!User.IsExistUser(m_User))//判斷顧客與否存在 {count++; if(count<3) {MessageBox("顧客名不存在,請重新輸入!","顧客名錯誤",MB_ICONINFORMATION); UpdateData(FALSE); GetDlgItem(IDC_USER_EDIT)->SetFocus(); return;} else { MessageBox("重試次數(shù)已到,不能再輸入顧客名和密碼,即將退出系統(tǒng)!","顧客名錯誤",MB_ICONEXCLAMATION); exit(0);}} User.GetInfo(m_User);//判斷密碼與否對的 if(User.Passwd!=m_Passwd) {……//同顧客判斷} CDialog::OnOK();//關(guān)閉對話框}基本信息管理模塊基本信息管理模塊涉及節(jié)假日信息管理,部門信息管理和員工信息管理。節(jié)假日信息管理節(jié)假日信息管理,首先對節(jié)假日信息的編輯,判斷節(jié)假日統(tǒng)計與否存在,存入數(shù)據(jù)。在從HolidaySet中讀取全部節(jié)假日統(tǒng)計,在對統(tǒng)計進(jìn)行操作,即添加,修改和刪除。普通顧客是不能打開這一塊信息的,節(jié)假日管理對他們是不可見的。圖3節(jié)假日信息框部分代碼以下:BOOLCHolidayManDlg::OnInitDialog()//初始化{ CDialog::OnInitDialog(); RefreshData();}voidCHolidayManDlg::RefreshData()//更新數(shù)據(jù){ UpdateData(TRUE); CStringcSource="SELECTId,HolidayDateAS節(jié)假日,HolidayNameAS名稱""FROMHolidaySet"; //設(shè)立Select語句 m_Adodc.SetRecordSource(cSource);//刷新ADOData控件的統(tǒng)計源 m_Adodc.RefreshData()}voidCHolidayManDlg::OnAddButton()//添加按鈕{ UpdateData(TRUE); CHolidayEditDlgdlg;//初始化HolidayEditDlg對話框中的變量 if(dlg.DoModal()==IDOK) RefreshData();}voidCHolidayManDlg::OnModiButton()//修改按鈕{ CHolidayEditDlgdlg;//設(shè)立HolidayEditDlg對話框中的變量 if(dlg.DoModal()==IDOK)//打開HolidayEditDlg對話框 RefreshData();}voidCHolidayManDlg::OnDelButton()//刪除按鈕{ cur.SqlDelete(m_Datagrid.GetItem(0)); RefreshData(); }部門信息管理部門信息管理模塊涉及部門信息編輯對話框,部門信息管理對話框和部門信息選擇對話框。部門編輯重要是用來添加和修改部門信息。部門信息管理對話框,是系統(tǒng)管理員進(jìn)行的操作,如果現(xiàn)在顧客不是系統(tǒng)管理員,則添加,修改,和刪除等按鈕是不能夠用,他們沒有有關(guān)的權(quán)限。在刪除部門的時候要對部門信息進(jìn)行判斷,如果部門是根節(jié)點,包含下一級部門和員工時不能刪除。部門信息的選擇,是為了方便顧客選擇部門,后來的其它模塊程序能夠通過此程序來獲取選擇的部門信息。圖4部門圖重要代碼以下:BOOLCDepManDlg::OnInitDialog()//初始化{CDialog::OnInitDialog();}voidCDepManDlg::AddtoTree(HTREEITEMm_node,intUpperId){//使用遞歸辦法將部門添加到TreeView控件中 inti; HTREEITEMm_child; if(UpperId==atoi(dep.a_UID.GetAt(i))) { m_child=m_tree.InsertItem(dep.a_DepName.GetAt(i),m_node); m_tree.SetItemData(m_child,atol(dep.a_DepId.GetAt(i))); AddtoTree(m_child,atoi(dep.a_DepId.GetAt(i))); }}voidCDepManDlg::OnAddButton()//添加按鈕{HTREEITEMnode;//用于保存現(xiàn)在選擇的節(jié)點 node=m_tree.GetSelectedItem();//獲得現(xiàn)在選擇的節(jié)點}//刪除按鈕voidCDepManDlg::OnDelButton(){HTREEITEMnode;//用于保存現(xiàn)在節(jié)點 node=m_tree.GetSelectedItem();//獲得現(xiàn)在節(jié)點 //彈出對話框,規(guī)定顧客確認(rèn)與否刪除。如果顧客單擊“是”按鈕,則刪除 if(MessageBox("與否刪除現(xiàn)在部門?","請確認(rèn)",MB_YESNO)==IDYES) {dep.SqlDelete(cDepId);//刪除表Departments中的指定統(tǒng)計 m_tree.DeleteItem(node);//刪除Tree控件中的現(xiàn)在節(jié)點}}員工信息管理編輯員工基本信息對話框用來添加和修改員工信息,重要涉及員工的姓名,性別,出生日期,身份證號,到崗日期,辦公電話,手機(jī)電話,工作崗位,職務(wù)和描述信息。員工管理則是通過選擇部門信息,添加,修改和刪除員工信息這里能夠查看每個部門下的員工信息。同樣普通顧客只能查看員工信息,不能對其信息進(jìn)行添加,修改和刪除等操作。圖5員工信息圖重要代碼以下:voidCEmpManDlg::RefreshData(){UpdateData(TRUE);intiDepId;//從Tree控件中讀取部門編號信息 HTREEITEMnode; node=m_tree.GetSelectedItem(); iDepId=m_tree.GetItemData(node); CStringcDepId;//根據(jù)部門編號設(shè)立SELECT語句 cDepId.Format("%d",iDepId); //設(shè)立SELECT語句 CStringcSource="SELECTEmpId,NameAS姓名,SexAS性別," "BirthdayAS生日,IdCardAS身份證號,OfficePhoneAS辦公電話," "MobileAS手機(jī)號碼,HireDateAS到崗日期,MissionAS工作崗位," "DutyAS職務(wù),MemoAS備注FROMEmpInfoe,DepInfod" "WHEREe.DepId=d.DepId";…}voidCEmpManDlg::OnAddButton()//添加按鈕{ UpdateData(TRUE); CTimeCurrentTime=CTime::GetCurrentTime();//添加員工時,將日期控件設(shè)立為當(dāng)天 if(dlg.DoModal()==IDOK) RefreshData();}voidCEmpManDlg::OnModiButton()//修改按鈕{UpdateData(TRUE); CEmpInfoemp;//讀取選擇員工的統(tǒng)計 emp.GetInfo(m_Datagrid.GetItem(0)); CEmpEditDlgdlg;//將員工數(shù)據(jù)讀取到編輯對話框中 if(dlg.DoModal()==IDOK) RefreshData();}voidCEmpManDlg::OnDelButton()//刪除按鈕{ CEmpInfoemp; emp.SqlDelete(m_Datagrid.GetItem(0)); RefreshData();}考勤管理模塊考勤管理模塊重要實現(xiàn)了出勤信息管理,加班信息管理,請假信息管理和出差信息管理。出勤信息管理出勤信息編輯對話框中,首先單擊選擇部門按鈕,在左側(cè)的表格中將顯示選擇部門中的全部員工信息。選擇一種員工,會在右側(cè)下方顯示他的出勤狀態(tài)。選擇出勤狀態(tài),然后單擊擬定按鈕,能夠保存指定員工的出勤狀況。出勤管理對話框中,根據(jù)左邊的部門,列出各個部門中的員工及其員工的出勤信息,出勤時間,與否全勤,與否出差,與否遲到,與否早退,與否曠工等。顧客能夠根據(jù)實際的狀況進(jìn)行具體的操作,添加,修改和刪除。圖6出勤信息重要代碼以下:voidCOnDutyManDlg::RefreshData(){ UpdateData(TRUE); intiDepId;//從Tree控件中讀取部門編號信息 HTREEITEMnode; node=m_tree.GetSelectedItem(); iDepId=m_tree.GetItemData(node); CStringcDepId;//根據(jù)部門編號設(shè)立SELECT語句 cDepId.Format("%d",iDepId); //設(shè)立SELECT語句 CStringcSource="SELECTc.EmpIdAS員工編號,e.NameAS姓名,c.CheckDateAS出勤日期,""c.QuanQinAS與否全勤,c.XiuXiAS與否休息,c.KuangGongAS與否曠工," "c.ChiDaoAS與否遲到,c.ZaoTuiAS與否早退FROMCheckInfoc,EmpInfoe,DepInfod""WHEREc.EmpId=e.EmpIdANDe.DepId=d.DepId"; m_Adodc.SetRecordSource(cSource);//刷新ADOData控件的統(tǒng)計源 m_Adodc.Refresh();}voidCOnDutyManDlg::OnAddButton()//添加按鈕{...}voidCOnDutyManDlg::OnModiButton()//修改按鈕{…}voidCOnDutyManDlg::OnDelButton()//刪除按鈕{…}程序調(diào)用m_tree.GetSelectedItem()函數(shù)獲取現(xiàn)在選擇的部門接點數(shù)據(jù),并使用GetItemData(node)函數(shù)獲取部門編號。然后根據(jù)選擇的部門編號設(shè)立SELECT語句,從表CheckInfo,表EmpInfo和表DepInfo中獲取部門中全部員工的出勤統(tǒng)計。加班信息管理加班信息編輯對話框重要是對員工的加班狀況的添加和修改。首先點擊選擇部門,在左側(cè)則列出全部部門及其員工信息,選擇一種員工,會在右側(cè)下方顯示他的加班狀態(tài)。選擇加班狀態(tài),涉及加班時數(shù),加班因素和加班類型,然后單擊擬定按鈕,能夠保存指定員工的加班狀況。加班信息管理對話框中,通過點擊左邊的部門,列出各個部門中的員工及其員工的加班信息,加班時間,加班時數(shù),加班因素和加班類型等。顧客能夠根據(jù)實際的狀況進(jìn)行具體的操作,添加,修改和刪除。圖7加班信息框部分代碼以下:voidCOvertimeManDlg::OnAddButton()//添加按鈕{ COvertimeEditDlgdlg; CurrentTime=CTime::GetCurrentTime(); dlg.otDate=CurrentTime.Format("%Y-%m-%d"); if(dlg.DoModal()==IDOK) RefreshData();}voidCOvertimeManDlg::OnModiButton()//修改按鈕{ if(m_Adodc.GetRecordset().GetEof()) { MessageBox("請選擇要修改的統(tǒng)計!"); return; } CEmpInfoemp;//根據(jù)員工編號得到員工信息 emp.GetInfo(m_Datagrid.GetItem(0)); CStringcDepId;//根據(jù)部門編號得到部門信息 cDepId.Format("%d",emp.DepId); dep.GetInfo(cDepId); COvertimeEditDlgdlg; if(m_Datagrid.GetItem(4)=="法定節(jié)假日加班") dlg.m_overtime=0; elseif(m_Datagrid.GetItem(4)=="周六日加班") dlg.m_overtime=1; elseif(m_Datagrid.GetItem(4)=="日常加班") dlg.m_overtime=2; dlg.otDate=m_Datagrid.GetItem(2); //日期 dlg.m_describe=m_Datagrid.GetItem(5); if(dlg.DoModal()==IDOK) RefreshData();}voidCOvertimeManDlg::OnDelButton()//刪除按鈕{cur.SqlDelete(m_Datagrid.GetItem(2),m_Datagrid.GetItem(0));}請假信息管理請假信息編輯對話框中,首先點擊選擇部門,在左側(cè)則列出全部部門及其員工信息,選擇一種員工,會在右側(cè)下方顯示他的請假狀態(tài)。選擇出勤狀態(tài),請假分為病假和事假,并且需要輸入請假因素,然后單擊擬定按鈕,能夠保存指定員工的請假狀況。請假信息管理對話框中,通過點擊左邊的部門,列出各個部門中的員工及其員工的信息,選中員工的姓名則能夠進(jìn)行員工的請假信息的編輯。顧客能夠根據(jù)實際的狀況進(jìn)行具體的操作,添加,修改和刪除。圖8請假信息圖重要代碼以下:voidCLeaveEditDlg::OnOK(){ UpdateData(TRUE); if(m_Adodc.GetRecordset().GetEof())//與否選擇人員 { MessageBox("請選擇人員"); return; } if(m_shijia==-1)//與否進(jìn)行添加考勤狀態(tài) { MessageBox("請選擇出勤狀態(tài)"); return; } CCheckInfocur; cur.CheckDate=CheckDate;//賦值到CCheckInfo對象中 cur.EmpId=atol(m_Datagrid.GetItem(0)); switch(m_shijia) {cur.Memo=m_memo; if(EmpId=="") { //在添加時,若人員有出勤統(tǒng)計,則不允許添加 if(cur.HaveEmp(CheckDate,m_Datagrid.GetItem(0))) { MessageBox("已有此員工的出勤信息,不能添加"); return; } cur.SqlInsert();//插入統(tǒng)計} else { cur.UpdateLeave(cur.CheckDate,EmpId);//修改CheckInfo表統(tǒng)計} CDialog::OnOK();}請假信息保存在表CheckInfo中,如果在出勤信息管理模塊中輸入了出勤信息,則不能再輸入請假信息。如果修改統(tǒng)計,則程序調(diào)用UpdateLeave()函數(shù),更新表CheckInfo中的Shijia,Bingjia和Memo等字段的值。出差信息管理出差信息管理編輯對話框重要是對員工的出差狀況的添加和修改。首先點擊選擇部門,在左側(cè)則列出全部部門及其員工信息,選擇一種員工,會在右側(cè)下方顯示他的出差狀態(tài)。選擇出差狀態(tài),寫出出差因素,然后單擊擬定按鈕,能夠保存指定員工的出差狀況。出差信息管理對話框中,通過點擊左邊的部門,列出各個部門中的員工及其員工的出差信息。顧客能夠根據(jù)實際的狀況進(jìn)行具體的操作,添加,修改和刪除。圖9出差信息重要代碼以下:voidCErrandEditDlg::OnOK(){UpdateData(TRUE); if(m_Adodc.GetRecordset().GetEof())//與否選擇人員 { MessageBox("請選擇人員"); return;} CCheckInfocur; cur.CheckDate=CheckDate;//賦值到CCheckInfo對象中 cur.EmpId=atol(m_Datagrid.GetItem(0)); cur.ChuChai="是"; cur.QuanQin="否"; cur.BingJia="否"; cur.ShiJia="否"; cur.KuangGong="否"; cur.XiuXi="否"; cur.ChiDao="否"; cur.ZaoTui="否"; cur.Memo=m_memo; if(EmpId=="") {//在添加時,若人員有出勤統(tǒng)計,則不允許添加 if(cur.HaveEmp(CheckDate,m_Datagrid.GetItem(0))) { MessageBox("已有此員工的出勤信息,不能添加"); Return;} cur.SqlInsert();//插入統(tǒng)計} else { cur.UpdateErrand(cur.CheckDate,m_Datagrid.GetItem(0));//修改CheckInfo表統(tǒng)計} CDialog::OnOK();……}統(tǒng)計查詢模塊統(tǒng)計查詢模塊重要是實現(xiàn)了日考勤統(tǒng)計表,月考勤統(tǒng)計表,當(dāng)天缺勤人員列表3個功效。日考勤統(tǒng)計表日考勤統(tǒng)計表按日查詢?nèi)繂T工的出勤,加班,請假和出差等信息。首先選擇要查詢的日期,在點擊查詢按鈕,即列出這日期的員工信息,涉及員工編號,員工姓名,出勤日期,與否全勤,與否出差,與否請假,與否加班等等。圖10日考勤統(tǒng)計圖重要代碼以下:voidCTimeSelDlg::RefreshData(){UpdateData(TRUE); CStringcTime;//根據(jù)部門編號設(shè)立SELECT語句 cTime=m_time.Format("%Y-%m-%d"); //設(shè)立SELECT語句 CStringcSource="SELECTc.EmpIdAS員工編號,e.NameAS姓名,c.CheckDateAS出勤日期,""c.QuanQinAS與否全勤,c.ChuChaiAS與否出差,c.ShiJiaAS與否事假,""c.BingJiaAS與否病假,c.KuangGongAS與否曠工,c.XiuXiAS與否休息,""c.ChiDaoAS與否遲到,c.ZaoTuiAS與否早退,c.MemoAS備注""FROMCheckInfoc,EmpInfoeWHEREc.EmpId=e.EmpIdANDc.CheckDate='"+cTime+"'"; //刷新ADOData控件的統(tǒng)計源 m_Adodc.SetRecordSource(cSource); m_Adodc.Refresh();}程序執(zhí)行SELECT語句,從表CheckInfo和EmpInfo中讀取選擇日期中各員工的考勤信息。月考勤統(tǒng)計表月考勤統(tǒng)計表是按月統(tǒng)計全部員工的出勤天數(shù),請假天數(shù),出差天數(shù)等信息。為了對多個考勤天數(shù)進(jìn)行統(tǒng)計,需要創(chuàng)立一組視圖,分別按月統(tǒng)計全部員工的全勤天數(shù),休息天數(shù),曠工天數(shù),遲到次數(shù),早退次數(shù),病假天數(shù),事假天數(shù)和出差天數(shù)。在表CheckInfo中,CheckDate字段保存考勤日期,LEFT(CheckDate)返回考勤日期的年份和月份信息,使用COUNT()函數(shù)和GROUPBY子句統(tǒng)計考勤月份和員工分組的多個考勤天數(shù)。圖11月考勤統(tǒng)計圖重要代碼以下:voidCDepDlg::RefreshData(){ UpdateData(TRUE); //根據(jù)部門編號設(shè)立SELECT語句 CStringcStrCnd,cDepId; cDepId.Format("%d",iDepId); if(iDepId>0) cStrCnd="Andd.DepId="+cDepId; else cStrCnd=""; CStringcTime;//查詢?nèi)掌?//得到年份和月份 m_year.GetLBText(m_year.GetCurSel(),cYear); m_month.GetLBText(m_month.GetCurSel(),cMonth); cTime=cYear+"-"+cMonth;//得到日期 //設(shè)立SELECT語句 CStringcSource="SELECTe.NameAS姓名," "ISNULL(v1.CountQuanQin,0)AS全勤天數(shù),ISNULL(v2.CountChuChai,0)AS出差天數(shù)," "ISNULL(v3.CountShiJia,0)AS事假天數(shù),ISNULL(v4.CountBingJia,0)AS事假天數(shù)," "ISNULL(v5.CountKuangGong,0)AS曠工天數(shù),ISNULL(v6.CountXiuXi,0)AS休息天數(shù)," "ISNULL(v7.CountChiDao,0)AS遲到次數(shù),ISNULL(v8.CountZaoTui,0)AS早退次數(shù)" "FROMv_QuanQinv1,v_ChuChaiv2,v_ShiJiav3,v_BingJiav4,DepInfod," "v_KuangGongv5,v_XiuXiv6,v_ChiDaov7,v_ZaoTuiv8,EmpInfoe" "WHEREe.EmpId*=v1.EmpIdANDe.EmpId*=v2.EmpIdAnde.DepId=d.DepId" "ANDe.EmpId*=v3.EmpIdANDe.EmpId*=v4.EmpIdANDe.EmpId*=v5.EmpId" "ANDe.EmpId*=v6.EmpIdANDe.EmpId*=v7.EmpIdANDe.EmpId*=v8.EmpId" "ANDv1.CheckMonth='"+cTime+"'ANDv2.CheckMonth='"+cTime+ "'ANDv3.CheckMonth='"+cTime+"'ANDv4.CheckMonth='"+cTime+ "'ANDv5.CheckMonth='"+cTime+"'ANDv6.CheckMonth='"+cTime+ "'ANDv7.CheckMonth='"+cTime+"'ANDv8.CheckMonth='"+cTime+"'"+cStrCnd; //刷新ADOData控件的統(tǒng)計源 m_Adodc.SetRecordSource(cSource); m_Adodc.Refresh();…}程序執(zhí)行SELECT語句,從表EmpInfo和其它視圖中讀取選擇月份中各員工的考勤信息,ISNULL()函數(shù)是SQLServer的內(nèi)部函數(shù),它的功效是當(dāng)?shù)谝环N參數(shù)為NULL時,將第二個參數(shù)作為成果返回。當(dāng)天考勤人員列表當(dāng)天考勤人員列表查詢現(xiàn)在系統(tǒng)日期中全部缺勤的員工信息,缺勤指病假,事假和曠工等狀況。圖12當(dāng)天缺勤人員圖重要代碼以下:voidCAbsenceDlg::RefreshData(){ UpdateData(TRUE); CStringcTime;//根據(jù)部門編號設(shè)立SELECT語句 cTime=CurrentTime.Format("%Y-%m-%d"); //設(shè)立SELECT語句 CStringcSource="SELECTe.EmpIdAS員工編號,e.NameAS姓名,d.DepNameAS部門名稱," "e.MobileAS聯(lián)系電話FROMDepInfod,EmpInfoe" "WHEREe.DepId=d.DepIdANDe.EmpIdIN" "(SELECTEmpIdFROMCheckInfoWHERE(ShiJia='是'ORBingJia='是'ORKuangGong='是')" "ANDCheckDate='"+cTime+"')"; m_Adodc.SetRecordSource(cSource);//刷新ADOData控件的統(tǒng)計源 m_Adodc.Refresh();…}程序中使用了嵌套查詢語句,即在一種SELECT語句中嵌套使用了另外一種SELECT語句。主SELECT語句顯
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度戶外廣告牌施工及品牌推廣服務(wù)合同
- 亮化工程管理服務(wù)合同
- 瑜伽館合作合同協(xié)議書
- 地產(chǎn)項目居間協(xié)議書房產(chǎn)轉(zhuǎn)讓全文
- 第三方公司擔(dān)保合同
- 采購商品代理合同
- 2025年博爾塔拉貨車上崗證理論模擬考試題庫
- 2025年南通下載貨運從業(yè)資格證模擬考試
- 2025年青海運輸從業(yè)資格證考試試題庫
- 2025年合肥道路運輸從業(yè)資格證考試題和答案
- 婦產(chǎn)科國家臨床重點??乞炇諈R報
- 繪本故事PPT課件之我不敢說我怕被罵
- 社區(qū)干部培訓(xùn)班交流發(fā)言(通用6篇)
- 行政處罰-行政處罰種類和設(shè)定(行政法課件)
- 柔性機(jī)械臂的振動控制
- 小學(xué)語文-5 對韻歌教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- DB34T 4510-2023 靜脈用藥調(diào)配中心潔凈區(qū)管理規(guī)范
- 【課件】免疫系統(tǒng)組成和功能(人教版2019選擇性必修1)
- 土力學(xué)與地基基礎(chǔ)(課件)
- IT系統(tǒng)災(zāi)備和容災(zāi)解決方案項目設(shè)計方案
- 青島版二年級數(shù)學(xué)下冊(六三制)全冊課件【完整版】
評論
0/150
提交評論