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

正文內(nèi)容

mfc程序設(shè)計(jì)考勤系統(tǒng)-閱讀頁

2025-07-22 11:54本頁面
  

【正文】 SITION pos = ()。 return。 // 得到Item Index // 構(gòu)造SQL語句 strSQL=delete from ATTENDANCE where ID= + (nItem, 0)。 // 執(zhí)行 } CAttendanceRS rs(amp。 // 構(gòu)造出勤記錄表 UpdateList(rs)。db)。 // 指向包含本對(duì)象的CAttDlg的指針 CString strFilter。 // 起始,結(jié)束時(shí)間 pDlg=(CAttDlg*)GetParent()GetParent()。 // 更新數(shù)據(jù) strSTime=pDlg(%Y%m%d)。 if(pDlgm_bSeekbyperson) // 判斷是否根據(jù)員工號(hào)檢索 strFilter=PERSON=39。 // 添加過濾條件 if(pDlgm_bSeekbytime) // 判斷是否有時(shí)間范圍 { if(()0) // 判斷是否已有過濾條件 strFilter += and 。 // 添加開始時(shí)間過濾 strFilter += and IO_TIME + strETime + 。 // 設(shè)置Filter UpdateList(rs)。 // 為L(zhǎng)ist添加網(wǎng)格 (LVS_EX_GRIDLINES)。 (0, 記錄編號(hào), LVCFMT_LEFT, nWidth)。 (2, 加班時(shí)間, LVCFMT_LEFT, nWidth)。 COvertimeRS rs(amp。 // 構(gòu)造加班記錄表 UpdateList(rs)。 // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE}【17】void CPage2::UpdateList(COvertimeRS amp。 CString strID,strWorkHours,strTime。 // 打開加班記錄表 ()。 // 添加新Item (%d, )。 (i, 1, )。 (i, 2, strWorkHours)。 ()。 } ()。 // 更新數(shù)據(jù) CPersonRS rs(amp。 // 構(gòu)造PERSON記錄表 = ID=39。 // 設(shè)置過濾條件 ()。 // 提取員工姓名 } else ()。 // 關(guān)閉記錄表 UpdateData(FALSE)。 // 用于保存計(jì)數(shù) CCounterRS rs_counter(amp。 // 構(gòu)造計(jì)數(shù)器記錄表 UpdateData()。 // 判斷員工號(hào)是否正確// 記錄編號(hào) = ID=39。 // 設(shè)置過濾器,提取計(jì)數(shù)值 ()。 // 提取計(jì)數(shù)值 counter++。 // 編輯計(jì)數(shù)器 =counter。 // 提交修改 ()。db)。 // 打開表 ()。 =m_strPersonID。 =m_Date。 // 更新數(shù)據(jù)庫 ()。 // 更新列表框}【20】void CPage3::OnBtnLeaveAdd() { int counter。db)。 // 更新數(shù)據(jù)// 記錄編號(hào) = ID=39。 // 設(shè)置過濾器,提取計(jì)數(shù)值 ()。 // 提取計(jì)數(shù)值 counter++。 // 編輯計(jì)數(shù)器 =counter。 // 提交修改 ()。 // 年,月,日,時(shí),分 // 轉(zhuǎn)換起始時(shí)間類型 sscanf((4), %d, amp。 // 得到年 sscanf((5,2), %d, amp。 // 得到月 sscanf((8,2), %d, amp。 // 得到日 sscanf((11,2), %d, amp。 // 得到時(shí) sscanf((14,2), %d, amp。 // 得到分 // 得到起始時(shí)間 CTime S_time(nYear,nMonth,nDay,nHour,nMinute,0)。nYear)。nMonth)。nDay)。nHour)。nMinute)。 CLeaveRS rs_leave(amp。 // 構(gòu)造請(qǐng)假記錄表 ()。 // 追加請(qǐng)假記錄 =counter。 =S_time。 =m_strReason。 ()。 // 更新列表框}【21】CStatDlg::CStatDlg(CWnd* pParent /*=NULL*/) : CDialog(CStatDlg::IDD, pParent){ CTime End_t=CTime::GetCurrentTime()。 // 時(shí)間間隔為30天 //{{AFX_DATA_INIT(CStatDlg) m_strTime = (%Y%m)。 m_ETime = End_t。 m_bSeekbyperson = FALSE。 m_strPersonID = _T()。 //}}AFX_DATA_INIT}【22】void CStatDlg::OnChangeStatEdtSeekpersonid() { UpdateData()。db)。 + m_strPersonID + 39。 // 打開記錄集 if(()==1) // 判斷員工記錄是否存在 { m_strPersonName=。 // 清除員工姓名的顯示 ()。 // 更新界面數(shù)據(jù)}【23】void CStatDlg::OnStatBtnSeek() { CString strFilter。db)。 // 更新數(shù)據(jù) // 判斷根據(jù)員工號(hào)過濾 if(m_bSeekbyperson) strFilter=PERSON=39。 // 判斷根據(jù)年月過濾 if(m_bSeekbytime) { if(!()) // 如果已有過濾條件 strFilter += and 。 } if(!()) // 判斷是否有過濾字符串 { =strFilter。 // 更新列表框}【24】void CStatDlg::OnStatBtnStat() { CRecordset rs_Q_attend(amp。 // 構(gòu)造Q_attend記錄集 CRecordset rs_Q_leave(amp。 // 構(gòu)造Q_leave記錄集 CRecordset rs_Q_errand(amp。 // 構(gòu)造Q_errand記錄集 CTimeSpan tp_1(1,0,0,0)。 // 構(gòu)造一個(gè)2小時(shí)的CTimeSpan CTimeSpan TimeSpan[4]。 // 保存上下午工作時(shí)間 CString strSTime,strETime。 // 保存中間判斷時(shí)間 int nWorkHour,nOverHour,nLeaveHDay,nErrandHDay。 // 保存判斷結(jié)果 int nLateTimes,nEarlyTimes,nAbsentTimes。 // 暫存起始時(shí)間 char str[4][9]。 // 用于循環(huán)和計(jì)數(shù) CString strTmp,strTmp1,strTmp2。 CString strFileName=.\\。 // 更新數(shù)據(jù) // 讀取INI文件 GetPrivateProfileString(WorkPlan, Time1, 08:00:00, str[0], 9, strFileName)。 GetPrivateProfileString(WorkPlan, Time3, 14:00:00, str[2], 9, strFileName)。 for(i=0。 i++) cstr[i]=str[i]。 for(i=0。 i++) { sscanf(cstr[i].Left(2), %d, amp。 // 得到時(shí) sscanf(cstr[i].Mid(3,2), %d, amp。 // 得到分 sscanf(cstr[i].Mid(6,2), %d, amp。 // 得到秒 // 構(gòu)造一個(gè)時(shí)間間隔變量 pTS=new CTimeSpan(0,nHour,nMinute,nSecond)。 // 賦值 delete pTS。 // 計(jì)算上午工作時(shí)間 if((TimeSpan[1]TimeSpan[0]).GetMinutes()30) nHours[0]++。 // 計(jì)算下午工作時(shí)間 if((TimeSpan[3]TimeSpan[2]).GetMinutes()30) nHours[1]++。 // 轉(zhuǎn)換統(tǒng)計(jì)結(jié)束時(shí)間,且天數(shù)加1 strETime=+(m_ETime+tp_1).Format(%Y%m%d)+。db)。T39。 // 打開員工表 n=()。 // 初始化已處理員工人數(shù) (0,n)。 // 初始化進(jìn)度條 while(!()) // 依次對(duì)每個(gè)員工進(jìn)行統(tǒng)計(jì) { //獲取出勤記錄 // 執(zhí)行查詢 (CRecordset::forwardOnly, select IN_OUT,IO_TIME from ATTENDANCE\ where PERSON=39。 and IO_TIME + strSTime + and IO_TIME +strETime + order by IO_TIME)。 // 清空strTmp1 // 初始化 nWorkHour=nOverHour=0。 nLateTimes=nEarlyTimes=nAbsentTimes=0。 // 初始化時(shí)間戳為統(tǒng)計(jì)開始時(shí)間 while(TimeStamp m_ETime+tp_02) // 判斷是否超出統(tǒng)計(jì)結(jié)束時(shí)間 { if(()!=1 amp。 ()!=7) // 判斷是否工作日 { for(j=0。j++) // 遍歷班次 { LateTime=TimeStamp+TimeSpan[2*j]。 // 設(shè)置早退時(shí)間 // 判斷是否請(qǐng)假 (CRecordset::forwardOnly, select ID from LEAVE where\ PERSON=39。 and START_TIME + (%Y%m%d %H:%M:%S) + and END_TIME + (%Y%m%d %H:%M:%S) + )。 // 判斷是否有請(qǐng)假記錄 ()。 + + 39。 bErrand=(()0)。 // 關(guān)閉記錄集 if(bLeave) // 如果有請(qǐng)假記錄 nLeaveHDay++。 // 出差計(jì)數(shù)加1 nWorkHour+=nHours[j]。 // 設(shè)置工作開始時(shí)間 WorkEnd=EarlyTime。 // 初始化遲到判斷 bAbsent=FALSE。amp。 // 得到IO_TIME while(!() amp。 StrToTime(strTmp1)=LateTime) {// 根據(jù)時(shí)間順序判斷是否遲到 // 得到IN_OUT (IN_OUT,strTmp2)。 // 判斷上班時(shí)間前是否報(bào)到 ()。 } // 判斷是否曠工 if(bLate) // 判斷是否遲到 { if(!() amp。 StrToTime(strTmp1)EarlyTime) WorkStart=StrToTime(strTmp1)。 // 如果下班前仍未報(bào)到記為曠工 } bEarly=FALSE。amp。 bEarly=(strTmp2==O)。 } else WorkEnd=EarlyTime。 // 跳至下一條出勤記錄 // 得到IO_TIME if(!()) (IO_TIME,strTmp1)。 else { // 如果遲到,增加遲到次數(shù)記錄 if(bLate) nLateTimes++。 // 計(jì)算實(shí)際工作時(shí)間 nWorkHour+=(WorkEndWorkStart).GetTotalHours()。 // 四舍五入 } } } // End of 遍歷班次 } // End of 是否工作日 TimeStamp+=tp_1。 // 關(guān)閉Q_attend記錄集 // 統(tǒng)計(jì)加班時(shí)間 CRecordset rs_Q_overtime(amp。 // 構(gòu)造Q_overtime記錄集 (CRecordset::forwardOnly, select sum(WORK_HOURS) as SUM from OVERTIME\ where PERSON=39。 and WORK_DATE + (%Y%m%d %H:%M:%S) + and WORK_DATE + (%Y%m%d %H:%M:%S) + )。 sscanf(strTmp,
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1