西科大數(shù)據(jù)庫課程設計VC考勤管理系統(tǒng)_第1頁
西科大數(shù)據(jù)庫課程設計VC考勤管理系統(tǒng)_第2頁
西科大數(shù)據(jù)庫課程設計VC考勤管理系統(tǒng)_第3頁
西科大數(shù)據(jù)庫課程設計VC考勤管理系統(tǒng)_第4頁
西科大數(shù)據(jù)庫課程設計VC考勤管理系統(tǒng)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第-1-頁共32頁考勤統(tǒng)計工作情況記錄上下班時間設置請假記錄手工補計出勤加班記錄考勤統(tǒng)計工作情況記錄上下班時間設置請假記錄手工補計出勤加班記錄山有路勤為徑,學海無涯苦作舟上班時間的設定。上下班時間相對固定,可保存在客戶端的設置文件中。請假、加班和出差情況的記錄。出差記錄第-2-頁共32頁考勤員考勤員山有路勤為徑,學海無涯苦作舟各種統(tǒng)計信息作時間、累計請假時間、累計加人員信息:員工號、密碼、權(quán)限、姓名、部門和當前狀態(tài)等。部門設置:部門編號、名稱等。第-3-頁共32頁山有路勤為徑,學海無涯苦作舟第-4-頁共32頁山有路勤為徑,學海無涯苦作舟2數(shù)據(jù)庫概念結(jié)構(gòu)設計環(huán)境第-5-頁共32頁山有路勤為徑,學海無涯苦作舟生成程序框架2登陸認證對話框Boxm_strDSNBoxmstrUserBoxmstrPasswdton無“登陸”按鈕ton無“取消”按鈕OnInitialDialog()函數(shù)中加入以下代碼:人事管理系統(tǒng)"字體大小ONTLogFontGetFontGetLogFontLogFont);LogFontlfHeightLogFontlfHeight2;LogFontlfWidthLogFontlfWidth2;mfontCreateFontIndirect&LogFont);GetDlgItemIDCSTATICLOGINTEXT->SetFont(&m_font);為打開狀態(tài),則關(guān)閉loseidCLoginDlgOnOK{BOOLbLoginFALSE第-6-頁共32頁山有路勤為徑,學海無涯苦作舟ringstrPasswdstrCountpdateDataNreturnswdCCryptEncryptmstrPasswdRecordsetrsdbOpenCRecordsetforwardOnly據(jù)變量據(jù)庫碼錄集selectCOUNTIDasCOUNTfromPERSONwhereID+m_strUserandPASSWDstrPasswd+"'andAUTHORITY='4'");//執(zhí)行查詢rsGetFieldValueCOUNTstrCountlose{DialogIDOK}據(jù)集是否通過{MessageBox請確認用戶名和密碼,注意大小寫!","認證失敗");dbClose//關(guān)閉數(shù)據(jù)庫}}2.3主對話框窗口的設計控件列表ext無“考勤管理系統(tǒng)”靜態(tài)文本ton無“設置”按鈕第-7-頁共32頁山有路勤為徑,學海無涯苦作舟ton無“出勤記錄”按鈕ton無“統(tǒng)計”按鈕ton無“重新登錄”按鈕ton無“退出”按鈕icshmbrushatDlgmpStatDlgtDlgmpAttDlgCFontm_font;}對話框初始化時需要改變標題字體大小,改變背景顏色等,因此在OnInitDialog()題字體大小ONTLogFontGetFontGetLogFontLogFont);LogFontlfHeightLogFontlfHeight2;LogFontlfWidthLogFontlfWidth2;mfontCreateFontIndirect&LogFont);GetDlgItemIDCSTATICHEAD->SetFont(&m_font);話框指針為空mpAttDlgNULLmpStatDlgNULL景畫刷mbrush.CreateSolidBrush(RGB(0,255,255));dCAttendanceDlgOnBtnExit{EndDialogIDCANCEL/退出主對話框,關(guān)閉程序}dCAttendanceDlgOnBtnRelogin{藏主對話框ndowSWHIDE錄對話框oginDlgdlg{ShowWindowSWSHOW顯示對話框第-8-頁共32頁山有路勤為徑,學海無涯苦作舟}elseEndDialogIDCANCEL序}dCAttendanceDlgOnBtnConfig{時間設置對話框orkplanDlgdlgl}dCAttendanceDlgOnBtnRecord{示出勤記錄對話框pAttDlg{mpAttDlgnewCAttDlg();mpAttDlg->Create(IDD_DLG_ATTENDANCE,this);mpAttDlg>ShowWindow(SW_SHOW);}em_pAttDlg->ShowWindow(SW_SHOW);//顯示窗口}dCAttendanceDlgOnBtnStatistics{示考勤統(tǒng)計對話框pStatDlg{mpStatDlgnewCStatDlg();mpStatDlg->Create(IDD_DLG_STAT,this);mpStatDlg>ShowWindow(SW_SHOW);}em_pStatDlg->ShowWindow(SW_SHOW);//顯示窗口}3.2.4上班時間設置對話框的創(chuàng)建第-9-頁共32頁山有路勤為徑,學海無涯苦作舟控件列表teTimePickerEPICKERTimeteTimePickerEPICKERTimeteTimePickerEPICKERTimeteTimePickerEPICKERTimeton無“修改”按鈕ton無“恢復默認設置”按鈕ED被OnInitDialog()函數(shù)引用,以實現(xiàn)初始化操作。dCWorkplanDlgOnWorkplanReset{CStringcstrrstrurnMinutenSecondGetPrivateProfileString("WorkPlan","Time1","08:00:00",str[0],9,GetPrivateProfileString("WorkPlan","Time2","12:00:00",str[1],9,GetPrivateProfileString("WorkPlan","Time3","14:00:00",str[2],9,GetPrivateProfileString("WorkPlan","Time4","18:00:00",str[3],9,foriii)cstr[i]=str[i];sscanfcstrLeftdnHoursscanfcstrMiddnMinute);時分第-10-頁共32頁山有路勤為徑,學海無涯苦作舟sscanfcstrMidd&nSecond);秒CTimet,1,1,nHour,nMinute,nSecond);/初始化t1sscanfcstrLeftdnHour;時sscanfcstrMidd&nMinute);分sscanfcstrMidd&nSecond);秒CTimet,1,1,nHour,nMinute,nSecond);/初始化t2sscanfcstrLeftdnHour;時sscanfcstrMidd&nMinute);分sscanfcstrMidd&nSecond);秒CTimet,1,1,nHour,nMinute,nSecond);/初始化t3sscanfcstrLeftdnHour;時sscanfcstrMidd&nMinute);分sscanfcstrMidd&nSecond);秒CTimet4(2002,1,1,nHour,nMinute,nSecond);/初始化t4員變量mTimet1;mTimet2;mTimet3;mTimet4;UpdateDataFALSE;//更新界面數(shù)據(jù)}.2.5考勤修改對話框的創(chuàng)建第-11-頁共32頁山有路勤為徑,學海無涯苦作舟考勤修改對話框控件列表BoxSeekbytimeBoxNSeekbypersonmstarTimendTimeBoxDmstrPersonIDBoxMEstrNamedCAttDlgOnChangeEdtSeekpersonid{UpdateData);//更新數(shù)據(jù)CPersonRSrsdb//構(gòu)造記錄集rsmstrFilterID'"+m_strPersonID+"'";//設置過濾條件rsOpen//打開記錄集第-12-頁共32頁山有路勤為徑,學海無涯苦作舟ifrsGetRecordCount{mstrNamers.m_NAME;//得到員工姓名}elsemstrNameEmpty工姓名的顯示rsClose//關(guān)閉記錄集UpdateDataFALSE;//更新界面數(shù)據(jù)}3.2.6修改出勤記錄屬性頁的創(chuàng)建修改出勤記錄屬性頁控件列表BoxmstrIOTimeBoxmstrDepartIDBoxstrDepartNAMEBoxmstrPersonIDBoxstrPersonNAMEButton無出入選項的“出”ButtonIN無出入選項的“入”ton無“全體員工”按鈕ton無“部門員工”按鈕ton無“單個員工”按鈕ton無“刪除所選記錄”按鈕ton無“按條件檢索”按鈕第-13-頁共32頁山有路勤為徑,學海無涯苦作舟ontrolmcListBOOLCPageOnInitDialog(){ropertyPageOnInitDialog情況缺省為出CheckTRUEmcListSetExtendedStyleLVS_EX_GRIDLINES);mcListInsertColumn(0,"記錄編號",LVCFMT_LEFT,nWidth);mcListInsertColumn(1,"員工號",LVCFMT_LEFT,nWidth);mcListInsertColumn(2,"出入情況",LVCFMT_LEFT,nWidth);mcListInsertColumn(3,"時間",LVCFMT_LEFT,nWidth);CAttendanceRSrsdb//構(gòu)造出勤記錄表returnTRUE/returnTRUEunlessyousetthefocustoacontrolEXCEPTIONOCXPropertyPagesshouldreturnFALSE}voidCPageUpdateListCAttendanceRSrs)//更新列表框內(nèi)容{ringstrIDstrTimersOpen//打開出勤記錄表mcListDeleteAllItems();//清除列表框內(nèi)容while!rs.IsEOF())//對數(shù)據(jù)表中所有記錄進行處理{strIDFormatdrsmID換為字符串mcList.SetItemText(i,0,strID);mcListSetItemTexti,1,rs.m_PERSON);mcListSetItemTexti,2,rs.m_IN_OUT);mcListSetItemTexti,3,rs.m_IO_TIME.Format("%Y-%m-%d%H:%M"));rsMoveNext/跳到下一條記錄}rsClose//關(guān)閉出勤記錄表}第-14-頁共32頁山有路勤為徑,學海無涯苦作舟idCPageOnChangeEdtDepartid{UpdateData);//更新數(shù)據(jù)CDepartRSrsdb//構(gòu)造記錄集rsmstrFilterID'"+m_strDepartID+"'";//設置過濾條件rsOpen//打開記錄集ifrsGetRecordCount正確{mstrDepartNamers.m_NAME;//提取部門名稱}elsemstrDepartNameEmpty部門名稱rsClose//關(guān)閉記錄集UpdateDataFALSE;//更新界面數(shù)據(jù)}避voidCPageIOAddCStringstrPersonID){CStringstrIO保存出入情況CCounterRSrscounterdb//構(gòu)造計數(shù)器記錄表號rscountermstrFilterID='A'";//設置過濾器,提取計數(shù)值rscounterOpen//打開計數(shù)器記錄表counterrscountermCOUNTERVALUE取計數(shù)值rscounterEdit//編輯計數(shù)器rscountermCOUNTERVALUEcounter//保存當前計數(shù)rscounterUpdate//提交修改rscounterClose//關(guān)閉計數(shù)器記錄表記錄出入情況tonGetDlgItemIDCRADIOOUTGetCheckIOI時間類型sscanfmstrIOTimeLeftdnYear;//得到年sscanfmstrIOTimeMidd&nMonth);//得到月sscanfmstrIOTimeMidd&nDay);//得到日sscanfmstrIOTimeMidd&nHour);//得到時第-15-頁共32頁山有路勤為徑,學海無涯苦作舟sscanfmstrIOTimeMidd&nMinute);//得到分入時間CTimeIOtimenYearnMonthnDaynHournMinute,0);CAttendanceRSrsattendancedb;//構(gòu)造考勤記錄表rsattendanceOpen//打開考勤記錄表rsattendanceAddNew//追加考勤記錄rsattendancemIDcounterattendancemPERSONstrPersonIDsattendancemINOUTstrIOrsattendancemIOTIME=IO_time;attendanceUpdatersattendanceClose//關(guān)閉考勤記錄表UpdateListrsattendance);//更新列表框}voidCPageOnBtnAddperson//追加單個員工考勤記錄{strPersonNameIsEmpty{AddmstrPersonID}}voidCPageOnBtnAdddepart//追加部門員工考勤記錄{CPersonRSrspersondb;//構(gòu)造員工信息表fmstrDepartNameIsEmptyreturn濾條件rspersonmstrFilterDEPARTMENT"+m_strDepartID+"'andSTATE='T'";rspersonOpen//打開員工信息表nrspersonGetRecordCount;//獲取員工人數(shù)度條mcProgress.SetRange(0,n);mcProgressSetPos(0);while!rs_person.IsEOF())//對數(shù)據(jù)表中所有記錄進行處理{IOAddrspersonmID記錄rspersonMoveNext//跳到下一個員工記錄m_cProgress.SetPos(++i);//顯示進度第-16-頁共32頁山有路勤為徑,學海無涯苦作舟}rspersonClose//關(guān)閉員工信息表}voidCPageOnBtnAddall//添加所有員工出勤記錄{CPersonRSrspersondb;//構(gòu)造員工信息表件,提取員工列表rspersonmstrFilter"STATE='T'";rspersonOpen//打開員工信息表nrspersonGetRecordCount;//獲取員工人數(shù)度條mcProgress.SetRange(0,n);mcProgressSetPos(0);while!rs_person.IsEOF())//對數(shù)據(jù)表中所有記錄進行處理{IOAddrspersonmID記錄rspersonMoveNext//跳到下一個員工記錄m_cProgress.SetPos(++i);//顯示進度}rspersonClose//關(guān)閉員工信息表}“刪除所選記錄”voidCPageOnBtnDeleteattend/刪除出勤記錄列表中所選記錄{ringstrSQLPOSITIONposmcList.GetFirstSelectedItemPosition();{AfxMessageBox沒有選擇記錄!");n}{LdeletefromATTENDANCEwhereID第-17-頁共32頁山有路勤為徑,學海無涯苦作舟mcListGetItemTextnItem0);dbExecuteSQLstrSQL行}CAttendanceRSrsdb//構(gòu)造出勤記錄表UpdateListrs;//更新列表框}.2.7加班記錄屬性頁的創(chuàng)建加班記錄屬性頁控件列表EPICKERateBoxRHourBoxSONIDmstrPersonIDBoxSONNAMEstrPersonNameton無“添加”按鈕tonETEATTED無“刪除所選記錄”按鈕tonEKIO無“按條件檢索”按鈕ontrlmcListBOOLCPageOnInitDialog(){ropertyPageOnInitDialog第-18-頁共32頁山有路勤為徑,學海無涯苦作舟mcListSetExtendedStyleLVS_EX_GRIDLINES);mcListInsertColumn(0,"記錄編號",LVCFMT_LEFT,nWidth);mcListInsertColumn(1,"員工號",LVCFMT_LEFT,nWidth);mcListInsertColumn(2,"加班時間",LVCFMT_LEFT,nWidth);mcListInsertColumn(3,"加班日期",LVCFMT_LEFT,nWidth);COvertimeRSrsdb//構(gòu)造加班記錄表returnTRUE/returnTRUEunlessyousetthefocustoacontrolEXCEPTIONOCXPropertyPagesshouldreturnFALSE}確。idCPageOnChangeEdtOvertimePersonid{UpdateData);//更新數(shù)據(jù)rsmstrFilterID'"+m_strPersonID+"'";//設置過濾條件rsOpen//打開記錄表frsGetRecordCount{mstrPersonNamers.m_NAME;//提取員工姓名}elsemstrPersonNameEmpty工姓名顯示rsClose//關(guān)閉記錄表UpdateDataFALSE;//更新界面數(shù)據(jù)}idCPageOnBtnOvertimeAdd{rCCounterRSrscounterdb//構(gòu)造計數(shù)器記錄表UpdateData);//更新數(shù)據(jù)fmstrPersonNameIsEmptyreturn號rscountermstrFilterID='O'";//設置過濾器,提取計數(shù)值rscounterOpen//打開計數(shù)器記錄表counterrscountermCOUNTERVALUE取計數(shù)值rscounterEdit//編輯計數(shù)器第-19-頁共32頁山有路勤為徑,學海無涯苦作舟rscountermCOUNTERVALUEcounter//保存當前計數(shù)rscounterUpdate//提交修改rscounterClose//關(guān)閉計數(shù)器記錄表記錄COvertimeRSrsovertimedb;//構(gòu)造加班記錄表rsovertimeOpen);//打開表rsovertimeAddNew//新增一項記錄段值rsovertimemIDcounterrsovertimemPERSONmstrPersonIDrsovertimemWORKHOURSmnHourrsovertimemWORKDATEmDatersovertimeUpdate//更新數(shù)據(jù)庫rsovertimeClose//關(guān)閉加班記錄表UpdateListrsovertime);//更新列表框}3.2.8請假記錄和出差記錄屬性頁的創(chuàng)建BoxTIMEmstrSTimeBoxEmstrETimeBoxIDmstrPersonIDBoxNAMEstrPersonName第-20-頁共32頁山有路勤為徑,學海無涯苦作舟BoxmstrReasonton無“添加”按鈕tonATTEND無“刪除所選記錄”按鈕tonO無“按條件檢索”按鈕ontrolmcList請假記錄屬性頁控件列表idCPageOnBtnLeaveAdd{CCounterRSrscounterdb//構(gòu)造計數(shù)器記錄表UpdateData);//更新數(shù)據(jù)號rscountermstrFilterID='L'";//設置過濾器,提取計數(shù)值rscounterOpen//打開計數(shù)器記錄表counterrscountermCOUNTERVALUE取計數(shù)值rscounterEdit//編輯計數(shù)器rscountermCOUNTERVALUEcounter//保存當前計數(shù)rscounterUpdate//提交修改rscounterClose//關(guān)閉計數(shù)器記錄表記錄時間類型sscanfmstrSTimeLeftdnYear;//得到年sscanfmstrSTimeMidd&nMonth);//得到月sscanfmstrSTimeMidd&nDay);//得到日sscanfmstrSTimeMidd&nHour);//得到時sscanfmstrSTimeMidd&nMinute);//得到分始時間CTimeStimenYearnMonthnDaynHournMinute,0);時間類型sscanfmstrETimeLeftdnYear;//得到年sscanfmstrETimeMidd&nMonth);//得到月sscanfmstrETimeMidd&nDay);//得到日sscanfmstrETimeMidd&nHour);//得到時sscanfmstrETimeMidd&nMinute);//得到分束時間CTimeEtimenYearnMonthnDaynHournMinute,0);第-21-頁共32頁山有路勤為徑,學海無涯苦作舟CLeaveRSrsleavedb;//構(gòu)造請假記錄表rsleaveOpen//打開請假記錄表rsleaveAddNew//追加請假記錄rsleavemIDcounterrsleavemPERSONmstrPersonIDrsleavemSTARTTIME=S_time;rsleavemENDTIME=E_time;rsleavemREASONmstrReason;leaveUpdatersleaveClose//關(guān)閉請假記錄表UpdateListrsleave);//更新列表框}.2.9考勤統(tǒng)計對話框的創(chuàng)建CStatDlgCStatDlgCWndpParent/*=NULL*/){CTimeEndt=CTime::GetCurrentTime();//當前時間AFXDATAINIT(CStatDlg)mstrTimeEnd_t.Format("%Y-%m");m_STime=End_t-tp;m_ETime=End_t;mbSeekbytime=FALSE;mbSeekbyperson=FALSE;第-22-頁共32頁山有路勤為徑,學海無涯苦作舟mstrSeektime_T("");mstrPersonID_T("");mstrPersonName_T("");}AFX_DATA_INIT}dCStatDlgOnStatBtnSeek{CStringstrFilter保存過濾字符串CStatRSrsdb//構(gòu)造統(tǒng)計數(shù)據(jù)表UpdateData);//更新數(shù)據(jù)員工號過濾ifmbSeekbypersonstrFilterPERSONmstrPersonID;年月過濾{strFilterIsEmpty間過濾條件strFilterYEARMONTHmstrSeektime+"#";}strFilterIsEmpty{rsmstrFilterstrFilter//設置過濾條件}UpdateListrs;//更新列表框}dCStatDlgOnStatBtnStat{CTimeSpanTimeSpan//保存上下班時間HoursCStringstrSTimestrETime保存始末時間CTimeTimeStampLateTimeEarlyTimeWorkStartWorkEnd;//保存中間判斷時間WorkHournOverHournLeaveHDaynErrandHDayBOOLbLatebEarly,bAbsent,bLeave,bErrand;//保存判斷結(jié)果第-23-頁共32頁山有路勤為徑,學海無涯苦作舟TimesnEarlyTimesnAbsentTimesCStringcstr//暫存起始時間charstr/暫存起始時間ncounterCStringstrTmpstrTmp1,strTmp2;//臨時變量condUpdateData);//更新數(shù)據(jù)GetPrivateProfileStringWorkPlanTime1","08:00:00",str[0],9,GetPrivateProfileStringWorkPlanTime2","12:00:00",str[1],9,GetPrivateProfileStringWorkPlanTime3","14:00:00",str[2],9,GetPrivateProfileStringWorkPlanTime4","18:00:00",str[3],9,foriii)cstr[i]=str[i];meSpanpTSforii;i++){sscanfcstriLeftdnHour);//得到時sscanfcstriMidd&nMinute);//得到分sscanfcstriMidd&nSecond);//得到秒時間間隔變量pTSnewCTimeSpannHournMinute,nSecond);TimeSpani]=*pTS;//賦值}nHoursTimeSpan]-TimeSpan[0]).GetTotalHours();//計算上午工作時間ifTimeSpanTimeSpan0]).GetMinutes()>30)nHours[0]++;//四舍五入nHoursTimeSpan]-TimeSpan[2]).GetTotalHours();//計算下午工作時間ifTimeSpanTimeSpan2]).GetMinutes()>30)nHours[1]++;//四舍五入計開始時間strSTimemSTimeFormatYmd#";strETimemETimetpFormatYm%d")+"#";工列表第-24-頁共32頁山有路勤為徑,學海無涯苦作舟CPersonRSrspersondb;//構(gòu)造員工表rspersonmstrFilterSTATE'T'";//設置過濾器,提取員工列表rspersonOpen//打開員工表nrspersonGetRecordCount//記錄員工人數(shù)mcProgress.SetRange(0,n);//設置進度條mcProgressSetPos(0);//初始化進度條while(!rs_person.IsEOF())//依次對每個員工進行統(tǒng)計{詢rsQattendOpenCRecordsetforwardOnlyNOUTIOTIMEfromATTENDANCEwherePERSON='"+rs_person.m_IDandIOTIME>"+strSTimeandIOTIME+strETimeorderbyIOTIME化rkHournOverHouraveHDaynErrandHDayateTimesnEarlyTimesnAbsentTimesTimeStampmSTime初始化時間戳為統(tǒng)計開始時間whileTimeStamp<m_ETime+tp_02)//判斷是否超出統(tǒng)計結(jié)束時間{GetDayOfWeekTimeStampGetDayOfWeek7)//判斷是否工作日{(diào)forjjj)//遍歷班次{LateTimeTimeStampTimeSpanj//設置遲到時間EarlyTimeTimeStampTimeSpanj1];//設置早退時間是否請假rsQleaveOpenCRecordsetforwardOnlyromLEAVEwherePERSON='"+rs_person.m_IDandSTARTTIMELateTimeFormatYm%d%H:%M:%S")andENDTIMEEarlyTimeFormatYm%d%H:%M:%S")bLeaversQleaveGetRecordCount()>0);//判斷是否有請假記錄第-25-頁共32頁山有路勤為徑,學海無涯苦作舟rsQleaveClose;//關(guān)閉記錄集否出差rsQerrandOpenCRecordsetforwardOnlyromERRANDwherePERSON='"+rs_person.m_IDandSTARTTIMELateTimeFormatYm%d%H:%M:%S")andENDTIMEEarlyTimeFormatYm%d%H:%M:%S")bErrandrsQerrandGetRecordCount()>0);//判斷是否有出差記錄rsQerrandClose;//關(guān)閉記錄集elseifbErrand記錄{nWorkHournHoursj/按正常班累加工作時間}e{WorkStartLateTime;//設置工作開始時間WorkEndEarlyTime;//設置工作結(jié)束時間bLateTRUE/初始化遲到判斷bAbsentFALSE/初始化曠工判斷否遲到QattendIsEOFwhile(!rs_Q_attend.IsEOF()StrToTime(strTmp1)<=LateTime)rsQattendGetFieldValueINOUT,strTmp2);bLatestrTmp"O");//判斷上班時間前是否報到rsQattendMoveNext;//跳到下一條出勤記錄sEOFrsQattendGetFieldValueIOTIME,strTmp1);}否曠工第-26-頁共32頁山有路勤為徑,學海無涯苦作舟{IsEOFoTimestrTmpEarlyTimeWorkStartStrToTimestrTmp1);//記錄遲到時間elsebAbsentTRUE未報到記為曠工}rlyFALSE否早退while(!rs_Q_attend.IsEOF()&&oTimestrTmpEarlyTime{rsQattendGetFieldValueINOUT,strTmp2);bEarlystrTmp"O");//判斷是否有早退Early{間記錄為工作結(jié)束時間WorkEndStrToTimestrTmp1);}elseWorkEndEarlyTime為工作結(jié)束時間rsQattendMoveNext//跳至下一條出勤記錄sEOFrsQattendGetFieldValueIOTIME,strTmp1);},增加曠工次數(shù)記錄Times{,增加遲到次數(shù)記錄s,增加早退次數(shù)記錄mes工作時間nWorkHourWorkEndWorkStartGetTotalHours);kStartGetMinutesnWorkHour++;//四舍五入}}ofdofTimeStamptp;//推進一天第-27-頁共32頁山有路勤為徑,學海無涯苦作舟EndofTimeStampmETime+tp_02班時間rsQovertimeOpenCRecordsetforwardOnlyctsumWORKHOURSasSUMfromOVERTIMEwherePERSON='"+rs_person.m_IDandWORKDATEmSTimeFormatYm-%d%H:%M:%S")andWORKDATEmETimeFormatYm-%d%H:%M:%S")QovertimeGetRecordCount{班時間rsQovertimeGetFieldValueSUMstrTmp);rTmpdnOverHour}elsenOverHour錄sQovertimeClose已有該月考勤記錄CStatRSrsstatdb;//構(gòu)造統(tǒng)計數(shù)據(jù)表濾串rs_stat

溫馨提示

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

評論

0/150

提交評論