freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

mfc程序設(shè)計(jì)考勤系統(tǒng)-資料下載頁(yè)

2025-07-07 11:54本頁(yè)面
  

【正文】 存過(guò)濾字符串 CStatRS rs(amp。db)。 // 構(gòu)造統(tǒng)計(jì)數(shù)據(jù)表 UpdateData()。 // 更新數(shù)據(jù) // 判斷根據(jù)員工號(hào)過(guò)濾 if(m_bSeekbyperson) strFilter=PERSON=39。 + m_strPersonID + 39。 // 判斷根據(jù)年月過(guò)濾 if(m_bSeekbytime) { if(!()) // 如果已有過(guò)濾條件 strFilter += and 。 // 需添加and連接符 // 設(shè)置時(shí)間過(guò)濾條件 strFilter += YEAR_MONTH= + m_strSeektime + 。 } if(!()) // 判斷是否有過(guò)濾字符串 { =strFilter。 // 設(shè)置過(guò)濾條件 } UpdateList(rs)。 // 更新列表框}【24】void CStatDlg::OnStatBtnStat() { CRecordset rs_Q_attend(amp。db)。 // 構(gòu)造Q_attend記錄集 CRecordset rs_Q_leave(amp。db)。 // 構(gòu)造Q_leave記錄集 CRecordset rs_Q_errand(amp。db)。 // 構(gòu)造Q_errand記錄集 CTimeSpan tp_1(1,0,0,0)。 // 構(gòu)造一個(gè)1天的CTimeSpan CTimeSpan tp_02(0,2,0,0)。 // 構(gòu)造一個(gè)2小時(shí)的CTimeSpan CTimeSpan TimeSpan[4]。 // 保存上下班時(shí)間 int nHours[2]。 // 保存上下午工作時(shí)間 CString strSTime,strETime。 // 保存始末時(shí)間 CTime TimeStamp, LateTime, EarlyTime,WorkStart,WorkEnd。 // 保存中間判斷時(shí)間 int nWorkHour,nOverHour,nLeaveHDay,nErrandHDay。 // 保存時(shí)間間隔長(zhǎng)度 BOOL bLate,bEarly,bAbsent,bLeave,bErrand。 // 保存判斷結(jié)果 int nLateTimes,nEarlyTimes,nAbsentTimes。 // 保存次數(shù) CString cstr[4]。 // 暫存起始時(shí)間 char str[4][9]。 // 暫存起始時(shí)間 int i,j,n,counter。 // 用于循環(huán)和計(jì)數(shù) CString strTmp,strTmp1,strTmp2。 // 臨時(shí)變量 // 臨時(shí)變量,年,月,日,時(shí),分,秒 int nHour,nMinute,nSecond。 CString strFileName=.\\。 // INI文件名 UpdateData()。 // 更新數(shù)據(jù) // 讀取INI文件 GetPrivateProfileString(WorkPlan, Time1, 08:00:00, str[0], 9, strFileName)。 GetPrivateProfileString(WorkPlan, Time2, 12:00:00, str[1], 9, strFileName)。 GetPrivateProfileString(WorkPlan, Time3, 14:00:00, str[2], 9, strFileName)。 GetPrivateProfileString(WorkPlan, Time4, 18:00:00, str[3], 9, strFileName)。 for(i=0。 i4。 i++) cstr[i]=str[i]。 // 定義四個(gè)時(shí)間間隔變量并初始化為INI文件中的值 CTimeSpan *pTS。 for(i=0。 i4。 i++) { sscanf(cstr[i].Left(2), %d, amp。nHour)。 // 得到時(shí) sscanf(cstr[i].Mid(3,2), %d, amp。nMinute)。 // 得到分 sscanf(cstr[i].Mid(6,2), %d, amp。nSecond)。 // 得到秒 // 構(gòu)造一個(gè)時(shí)間間隔變量 pTS=new CTimeSpan(0,nHour,nMinute,nSecond)。 TimeSpan[i]=*pTS。 // 賦值 delete pTS。 } nHours[0]=(TimeSpan[1]TimeSpan[0]).GetTotalHours()。 // 計(jì)算上午工作時(shí)間 if((TimeSpan[1]TimeSpan[0]).GetMinutes()30) nHours[0]++。 // 四舍五入 nHours[1]=(TimeSpan[3]TimeSpan[2]).GetTotalHours()。 // 計(jì)算下午工作時(shí)間 if((TimeSpan[3]TimeSpan[2]).GetMinutes()30) nHours[1]++。 // 四舍五入 // 轉(zhuǎn)換統(tǒng)計(jì)開(kāi)始時(shí)間 strSTime=+(%Y%m%d)+。 // 轉(zhuǎn)換統(tǒng)計(jì)結(jié)束時(shí)間,且天數(shù)加1 strETime=+(m_ETime+tp_1).Format(%Y%m%d)+。 // 提取員工列表 CPersonRS rs_person(amp。db)。 // 構(gòu)造員工表 =STATE=39。T39。 // 設(shè)置過(guò)濾器,提取員工列表 ()。 // 打開(kāi)員工表 n=()。 // 記錄員工人數(shù) i=0。 // 初始化已處理員工人數(shù) (0,n)。 // 設(shè)置進(jìn)度條 (0)。 // 初始化進(jìn)度條 while(!()) // 依次對(duì)每個(gè)員工進(jìn)行統(tǒng)計(jì) { //獲取出勤記錄 // 執(zhí)行查詢 (CRecordset::forwardOnly, select IN_OUT,IO_TIME from ATTENDANCE\ where PERSON=39。 + + 39。 and IO_TIME + strSTime + and IO_TIME +strETime + order by IO_TIME)。 ()。 // 清空strTmp1 // 初始化 nWorkHour=nOverHour=0。 nLeaveHDay=nErrandHDay=0。 nLateTimes=nEarlyTimes=nAbsentTimes=0。 TimeStamp=m_STime。 // 初始化時(shí)間戳為統(tǒng)計(jì)開(kāi)始時(shí)間 while(TimeStamp m_ETime+tp_02) // 判斷是否超出統(tǒng)計(jì)結(jié)束時(shí)間 { if(()!=1 amp。amp。 ()!=7) // 判斷是否工作日 { for(j=0。j=1。j++) // 遍歷班次 { LateTime=TimeStamp+TimeSpan[2*j]。 // 設(shè)置遲到時(shí)間 EarlyTime=TimeStamp+TimeSpan[2*j+1]。 // 設(shè)置早退時(shí)間 // 判斷是否請(qǐng)假 (CRecordset::forwardOnly, select ID from LEAVE where\ PERSON=39。 + + 39。 and START_TIME + (%Y%m%d %H:%M:%S) + and END_TIME + (%Y%m%d %H:%M:%S) + )。 bLeave=(()0)。 // 判斷是否有請(qǐng)假記錄 ()。 // 關(guān)閉記錄集 // 判斷是否出差 (CRecordset::forwardOnly, select ID from ERRAND where\ PERSON=39。 + + 39。 and START_TIME + (%Y%m%d %H:%M:%S) + and END_TIME + (%Y%m%d %H:%M:%S) + )。 bErrand=(()0)。 // 判斷是否有出差記錄 ()。 // 關(guān)閉記錄集 if(bLeave) // 如果有請(qǐng)假記錄 nLeaveHDay++。 // 請(qǐng)假記錄加1 else if(bErrand) // 如果有出差記錄 { nErrandHDay++。 // 出差計(jì)數(shù)加1 nWorkHour+=nHours[j]。 // 按正常班累加工作時(shí)間 } else // 正常上班 { WorkStart=LateTime。 // 設(shè)置工作開(kāi)始時(shí)間 WorkEnd=EarlyTime。 // 設(shè)置工作結(jié)束時(shí)間 bLate=TRUE。 // 初始化遲到判斷 bAbsent=FALSE。 // 初始化曠工判斷 // 判斷是否遲到 if(!() amp。amp。 // 記錄集不空 ()) // 空,第一次GetFieldValue (IO_TIME,strTmp1)。 // 得到IO_TIME while(!() amp。amp。 StrToTime(strTmp1)=LateTime) {// 根據(jù)時(shí)間順序判斷是否遲到 // 得到IN_OUT (IN_OUT,strTmp2)。 bLate=(strTmp2==O)。 // 判斷上班時(shí)間前是否報(bào)到 ()。 // 跳到下一條出勤記錄 // 得到IO_TIME if(!()) (IO_TIME,strTmp1)。 } // 判斷是否曠工 if(bLate) // 判斷是否遲到 { if(!() amp。amp。 StrToTime(strTmp1)EarlyTime) WorkStart=StrToTime(strTmp1)。 // 記錄遲到時(shí)間 else bAbsent=TRUE。 // 如果下班前仍未報(bào)到記為曠工 } bEarly=FALSE。 // 判斷是否早退 while(!() amp。amp。 StrToTime(strTmp1)EarlyTime) { // 得到IN_OUT (IN_OUT,strTmp2)。 bEarly=(strTmp2==O)。 // 判斷是否有早退 if(bEarly) { // 將早退時(shí)間記錄為工作結(jié)束時(shí)間 WorkEnd=StrToTime(strTmp1)。 } else WorkEnd=EarlyTime。 // 將下班時(shí)間記錄為工作結(jié)束時(shí)間 ()。 // 跳至下一條出勤記錄 // 得到IO_TIME if(!()) (IO_TIME,strTmp1)。 } // 如果曠工,增加曠工次數(shù)記錄 if(bAbsent) nAbsentTimes++。 else { // 如果遲到,增加遲到次數(shù)記錄 if(bLate) nLateTimes++。 // 如果早退,增加早退次數(shù)記錄 if(bEarly) nEarlyTimes++。 // 計(jì)算實(shí)際工作時(shí)間 nWorkHour+=(WorkEndWorkStart).GetTotalHours()。 if((WorkEndWorkStart).GetMinutes()30) nWorkHour++。 // 四舍五入 } } } // End of 遍歷班次 } // End of 是否工作日 TimeStamp+=tp_1。 // 推進(jìn)一天 } // End of TimeStamp m_ETime+tp_02 ()。 // 關(guān)閉Q_attend記錄集 // 統(tǒng)計(jì)加班時(shí)間 CRecordset rs_Q_overtime(amp。db)。 // 構(gòu)造Q_overtime記錄集 (CRecordset::forwardOnly, select sum(WORK_HOURS) as SUM from OVERTIME\ where PERSON=39。 + + 39。 and WORK_DATE + (%Y%m%d %H:%M:%S) + and WORK_DATE + (%Y%m%d %H:%M:%S) + )。 if(()0) // 有記錄 { // 提取加班時(shí)間 (SUM,strTmp)。 sscanf(strTm
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1