// WorkLeaveDlg.cpp : implementation file // #include "stdafx.h" #include "hrm.h" #include "WorkLeaveDlg.h" #include "modifyleavedlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CWorkLeaveDlg dialog CWorkLeaveDlg::CWorkLeaveDlg(CWnd* pParent /*=NULL*/) : CDialog(CWorkLeaveDlg::IDD, pParent) { //{{AFX_DATA_INIT(CWorkLeaveDlg) m_check = FALSE; m_estatus = _T(""); m_radio = 0; m_infoTime = 0; m_info = _T(""); m_infol = _T(""); m_infoTimel = 0; m_radiol = 0; //}}AFX_DATA_INIT for(int i = 0; i < 18; i++) { m_selectIndex[i].bUse = false; } m_listIndex = 0; } void CWorkLeaveDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CWorkLeaveDlg) DDX_Control(pDX, IDC_INFITYPEL, m_infoTypel); DDX_Control(pDX, IDC_XLL, m_XLl); DDX_Control(pDX, IDC_R2L, m_r2l); DDX_Control(pDX, IDC_R1L, m_r1l); DDX_Control(pDX, IDC_DATETIMEPICKERL, m_controlTimel); DDX_Control(pDX, IDC_INFOL, m_eInfol); DDX_Control(pDX, IDC_SELECTL, m_bSelectl); DDX_Control(pDX, IDC_SINDEX2, m_sIndexl); DDX_Control(pDX, IDC_LISTL2, m_listl2); DDX_Control(pDX, IDC_LISTL, m_listl); DDX_Control(pDX, IDC_SMESGL, m_SMesgl); DDX_Control(pDX, IDC_LEAVE, m_leave); DDX_Control(pDX, IDC_DATETIMEPICKER1, m_controlTime); DDX_Control(pDX, IDC_R1, m_r1); DDX_Control(pDX, IDC_R2, m_r2); DDX_Control(pDX, IDC_XL, m_XL); DDX_Control(pDX, IDC_CHECK, m_cCheck); DDX_Control(pDX, IDC_STATUS1, m_status1); DDX_Control(pDX, IDC_STATUS, m_status); DDX_Control(pDX, IDC_VWEEK, m_vWeek); DDX_Control(pDX, IDC_VTIME, m_vTime); DDX_Control(pDX, IDC_VDATE, m_vDate); DDX_Control(pDX, IDC_STIME, m_sTime); DDX_Control(pDX, IDC_SDATE, m_sDate); DDX_Control(pDX, IDC_SMESG, m_SMesg); DDX_Control(pDX, IDC_SINDEX, m_sIndex); DDX_Control(pDX, IDC_SELECT, m_bSelect); DDX_Control(pDX, IDC_INFO, m_eInfo); DDX_Control(pDX, IDC_CTYPE, m_combType); DDX_Control(pDX, IDC_LIST2, m_list2); DDX_Control(pDX, IDC_LIST1, m_list); DDX_Check(pDX, IDC_CHECK, m_check); DDX_Text(pDX, IDC_STATUS, m_estatus); DDX_Radio(pDX, IDC_R1, m_radio); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_infoTime); DDX_Text(pDX, IDC_INFO, m_info); DDX_Text(pDX, IDC_INFOL, m_infol); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERL, m_infoTimel); DDX_Radio(pDX, IDC_R1L, m_radiol); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CWorkLeaveDlg, CDialog) //{{AFX_MSG_MAP(CWorkLeaveDlg) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2) ON_CBN_SELCHANGE(IDC_CTYPE, OnSelchangeCtype) ON_BN_CLICKED(IDC_SELECT, OnSelect) ON_BN_CLICKED(IDC_LEAVE, OnLeave) ON_BN_CLICKED(IDC_SELECTL, OnSelectl) ON_CBN_SELCHANGE(IDC_INFITYPEL, OnSelchangeInfitypel) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CWorkLeaveDlg message handlers BOOL CWorkLeaveDlg::OnInitDialog() { CDialog::OnInitDialog(); m_dataBase.OpenEx("DSN=HRM",0); m_XL.DeleteTempMap(); m_XL.InsertString(0,"高中以下学历"); m_XL.InsertString(1,"高中"); m_XL.InsertString(2,"专科"); m_XL.InsertString(3,"本科"); m_XL.InsertString(4,"本科 + 学士学位"); m_XL.InsertString(5,"研究生"); m_XL.InsertString(6,"博士"); m_XL.SetCurSel(2); m_combType.InsertString(0,"员工编号"); m_combType.InsertString(1,"员工姓名"); m_combType.InsertString(2,"员工性别"); m_combType.InsertString(3,"员工职位"); m_combType.InsertString(4,"1级部门"); m_combType.InsertString(5,"2级部门"); m_combType.InsertString(6,"电子邮件"); m_combType.InsertString(7,"身份证号"); m_combType.InsertString(8,"出生日期"); m_combType.InsertString(9,"民族"); m_combType.InsertString(10,"户籍所在地"); m_combType.InsertString(11,"婚姻情况"); m_combType.InsertString(12,"毕业院校"); m_combType.InsertString(13,"专业"); m_combType.InsertString(14,"学历"); m_combType.InsertString(15,"毕业时间"); m_combType.InsertString(16,"入职时间"); m_combType.InsertString(17,"联系电话"); m_combType.SetCurSel(0); m_infoTypel.DeleteTempMap(); m_infoTypel.InsertString(0,"员工编号"); m_infoTypel.InsertString(1,"员工姓名"); m_infoTypel.InsertString(2,"员工性别"); m_infoTypel.InsertString(3,"员工职位"); m_infoTypel.InsertString(4,"1级部门"); m_infoTypel.InsertString(5,"2级部门"); m_infoTypel.InsertString(6,"电子邮件"); m_infoTypel.InsertString(7,"身份证号"); m_infoTypel.InsertString(8,"出生日期"); m_infoTypel.InsertString(9,"离职时间"); m_infoTypel.InsertString(10,"离职类型"); m_infoTypel.InsertString(11,"离职成本"); m_infoTypel.InsertString(12,"民族"); m_infoTypel.InsertString(13,"户籍所在地"); m_infoTypel.InsertString(14,"婚姻情况"); m_infoTypel.InsertString(15,"毕业院校"); m_infoTypel.InsertString(16,"专业"); m_infoTypel.InsertString(17,"学历"); m_infoTypel.InsertString(18,"毕业时间"); m_infoTypel.InsertString(19,"入职时间"); m_infoTypel.InsertString(20,"联系电话"); m_infoTypel.SetCurSel(0); m_XLl.DeleteTempMap(); m_XLl.InsertString(0,"高中以下学历"); m_XLl.InsertString(1,"高中"); m_XLl.InsertString(2,"专科"); m_XLl.InsertString(3,"本科"); m_XLl.InsertString(4,"本科 + 学士学位"); m_XLl.InsertString(5,"研究生"); m_XLl.InsertString(6,"博士"); m_XLl.SetCurSel(2); InitControl(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CWorkLeaveDlg::InitControl() { InitListControl(); InitDateTime(); CRect rect,rect1; this->GetParent()->GetClientRect(&rect); rect1 = rect; rect1.top = rect.top + 10; rect1.bottom = rect.bottom - 460; m_SMesg.MoveWindow(&rect1); rect1.top = rect.bottom - 450; rect1.bottom = rect.bottom; m_SMesgl.MoveWindow(&rect1); rect1.top = rect.top + 67; rect1.left = rect.right - 640; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 80; m_cCheck.MoveWindow(&rect1); rect1.top = rect.top + 70; rect1.left = rect.right - 540; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 60; m_sIndex.MoveWindow(&rect1); rect1.top = rect.bottom - 417; rect1.left = rect.right - 540; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 60; m_sIndexl.MoveWindow(&rect1); rect1.top = rect.top + 65; rect1.left = rect.right - 480; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 120; m_combType.MoveWindow(&rect1); rect1.top = rect.bottom - 422; rect1.left = rect.right - 480; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 120; m_infoTypel.MoveWindow(&rect1); InitInfoControl(); rect1.top = rect.top + 65; rect1.left = rect.right - 200; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 80; m_bSelect.MoveWindow(&rect1); rect1.top = rect.bottom - 422; rect1.left = rect.right - 200; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 80; m_bSelectl.MoveWindow(&rect1); rect1.top = rect.top + 65; rect1.left = rect.right - 100; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 80; m_leave.MoveWindow(&rect1); rect1.top = rect.bottom - 55; rect1.left = rect.left + 1; rect1.bottom = rect.bottom -30 ; rect1.right = rect.left + 100; m_status1.MoveWindow(&rect1); rect1.top = rect.bottom - 55; rect1.left = rect.left + 100; rect1.bottom = rect.bottom -30 ; rect1.right = rect.right - 5; m_status.MoveWindow(&rect1); } void CWorkLeaveDlg::InitListControl() { CRect rect,rect1,rect2; this->GetParent()->GetClientRect(&rect); rect1 = rect2 = rect; rect1.top = rect.top + 100; rect1.bottom = rect.bottom -460; rect1.left += 240; m_list.MoveWindow(&rect1); m_list.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_list.InsertColumn(0,"1级部门",LVCFMT_LEFT,107,6); m_list.InsertColumn(1,"2级部门",LVCFMT_LEFT,110,5); m_list.InsertColumn(2,"性别",LVCFMT_LEFT,40,5); m_list.InsertColumn(3,"职位",LVCFMT_LEFT,110,5); m_list.InsertColumn(4,"电子邮件",LVCFMT_LEFT,150,5); m_list.InsertColumn(5,"身份证号",LVCFMT_LEFT,134,5); m_list.InsertColumn(6,"出生日期",LVCFMT_LEFT,110,5); m_list.InsertColumn(7,"民族",LVCFMT_LEFT,110,5); m_list.InsertColumn(8,"户籍所在地",LVCFMT_LEFT,110,5); m_list.InsertColumn(9,"婚姻情况",LVCFMT_LEFT,80,5); m_list.InsertColumn(10,"毕业院校",LVCFMT_LEFT,110,5); m_list.InsertColumn(11,"专业",LVCFMT_LEFT,110,5); m_list.InsertColumn(12,"学历",LVCFMT_LEFT,110,5); m_list.InsertColumn(13,"毕业时间",LVCFMT_LEFT,110,5); m_list.InsertColumn(14,"入职时间",LVCFMT_LEFT,110,5); m_list.InsertColumn(15,"联系电话",LVCFMT_LEFT,110,5); m_list.InsertColumn(16,"紧急联系人",LVCFMT_LEFT,110,5); m_list.InsertColumn(17,"紧急联系电话",LVCFMT_LEFT,110,5); m_list.InsertColumn(18,"家庭住址",LVCFMT_LEFT,260,5); rect2.right = 241; rect2.top = rect.top + 100; rect2.bottom = rect.bottom -460; m_list2.MoveWindow(&rect2); m_list2.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_list2.InsertColumn(0,"员工编号",LVCFMT_LEFT,120,1); m_list2.InsertColumn(1,"员工姓名",LVCFMT_LEFT,120,4); rect1 = rect2 = rect; rect1.top = rect.bottom -390; rect1.bottom = rect.bottom -60; rect1.left += 240; m_listl.MoveWindow(&rect1); m_listl.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_listl.InsertColumn(0,"1级部门",LVCFMT_LEFT,107,6); m_listl.InsertColumn(1,"2级部门",LVCFMT_LEFT,110,5); m_listl.InsertColumn(2,"性别",LVCFMT_LEFT,40,5); m_listl.InsertColumn(3,"职位",LVCFMT_LEFT,110,5); m_listl.InsertColumn(4,"电子邮件",LVCFMT_LEFT,150,5); m_listl.InsertColumn(5,"身份证号",LVCFMT_LEFT,134,5); m_listl.InsertColumn(6,"出生日期",LVCFMT_LEFT,110,5); m_listl.InsertColumn(7,"离职时间",LVCFMT_LEFT,134,5); m_listl.InsertColumn(8,"离职类型",LVCFMT_LEFT,110,5); m_listl.InsertColumn(9,"离职成本",LVCFMT_LEFT,134,5); m_listl.InsertColumn(10,"民族",LVCFMT_LEFT,110,5); m_listl.InsertColumn(11,"户籍所在地",LVCFMT_LEFT,110,5); m_listl.InsertColumn(12,"婚姻情况",LVCFMT_LEFT,80,5); m_listl.InsertColumn(13,"毕业院校",LVCFMT_LEFT,110,5); m_listl.InsertColumn(14,"专业",LVCFMT_LEFT,110,5); m_listl.InsertColumn(15,"学历",LVCFMT_LEFT,110,5); m_listl.InsertColumn(16,"毕业时间",LVCFMT_LEFT,110,5); m_listl.InsertColumn(17,"入职时间",LVCFMT_LEFT,110,5); m_listl.InsertColumn(18,"联系电话",LVCFMT_LEFT,110,5); m_listl.InsertColumn(19,"紧急联系人",LVCFMT_LEFT,110,5); m_listl.InsertColumn(20,"紧急联系电话",LVCFMT_LEFT,110,5); m_listl.InsertColumn(21,"家庭住址",LVCFMT_LEFT,260,5); rect2.right = 241; rect2.top = rect.bottom -390; rect2.bottom = rect.bottom -60; m_listl2.MoveWindow(&rect2); m_listl2.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_listl2.InsertColumn(0,"员工编号",LVCFMT_LEFT,120,1); m_listl2.InsertColumn(1,"员工姓名",LVCFMT_LEFT,120,4); } void CWorkLeaveDlg::InitInfoControl() { CRect rect,rect1; this->GetParent()->GetClientRect(&rect); rect1 = rect; rect1.top = rect.top + 65; rect1.left = rect.right - 340; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 120; m_eInfo.MoveWindow(&rect1); m_XL.MoveWindow(&rect1); m_infoTime = CTime::GetCurrentTime(); UpdateData(false); m_controlTime.MoveWindow(&rect1); rect1.right = rect1.left + 60; m_r1.MoveWindow(&rect1); rect1.left = rect.right - 280; rect1.right = rect1.left + 60; m_r2.MoveWindow(&rect1); int type = m_combType.GetCurSel(); switch( type) { case 2: m_eInfo.ShowWindow(SW_HIDE); m_XL.ShowWindow(SW_HIDE); m_controlTime.ShowWindow(SW_HIDE); m_r1.ShowWindow(SW_SHOW); m_r2.ShowWindow(SW_SHOW); GetDlgItem(IDC_R1)->SetWindowText("男"); GetDlgItem(IDC_R2)->SetWindowText("女"); break; case 11: m_eInfo.ShowWindow(SW_HIDE); m_XL.ShowWindow(SW_HIDE); m_controlTime.ShowWindow(SW_HIDE); m_r1.ShowWindow(SW_SHOW); m_r2.ShowWindow(SW_SHOW); GetDlgItem(IDC_R1)->SetWindowText("已婚"); GetDlgItem(IDC_R2)->SetWindowText("未婚"); break; case 14: m_eInfo.ShowWindow(SW_HIDE); m_XL.ShowWindow(SW_SHOW); m_controlTime.ShowWindow(SW_HIDE); m_r1.ShowWindow(SW_HIDE); m_r2.ShowWindow(SW_HIDE); break; case 8: case 15: case 16: m_eInfo.ShowWindow(SW_HIDE); m_XL.ShowWindow(SW_HIDE); m_controlTime.ShowWindow(SW_SHOW); m_r1.ShowWindow(SW_HIDE); m_r2.ShowWindow(SW_HIDE); break; default: m_eInfo.ShowWindow(SW_SHOW); m_XL.ShowWindow(SW_HIDE); m_controlTime.ShowWindow(SW_HIDE); m_r1.ShowWindow(SW_HIDE); m_r2.ShowWindow(SW_HIDE); break; } rect1.top = rect.bottom - 422; rect1.left = rect.right - 340; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 120; m_eInfol.MoveWindow(&rect1); m_XLl.MoveWindow(&rect1); m_infoTimel = CTime::GetCurrentTime(); UpdateData(false); m_controlTimel.MoveWindow(&rect1); rect1.right = rect1.left + 60; m_r1l.MoveWindow(&rect1); rect1.left = rect.right - 280; rect1.right = rect1.left + 60; m_r2l.MoveWindow(&rect1); int typel = m_infoTypel.GetCurSel(); switch( typel) { case 2: m_eInfol.ShowWindow(SW_HIDE); m_XLl.ShowWindow(SW_HIDE); m_controlTimel.ShowWindow(SW_HIDE); m_r1l.ShowWindow(SW_SHOW); m_r2l.ShowWindow(SW_SHOW); GetDlgItem(IDC_R1L)->SetWindowText("男"); GetDlgItem(IDC_R2L)->SetWindowText("女"); break; case 14: m_eInfol.ShowWindow(SW_HIDE); m_XLl.ShowWindow(SW_HIDE); m_controlTimel.ShowWindow(SW_HIDE); m_r1l.ShowWindow(SW_SHOW); m_r2l.ShowWindow(SW_SHOW); GetDlgItem(IDC_R1L)->SetWindowText("已婚"); GetDlgItem(IDC_R2L)->SetWindowText("未婚"); break; case 17: m_eInfol.ShowWindow(SW_HIDE); m_XLl.ShowWindow(SW_SHOW); m_controlTimel.ShowWindow(SW_HIDE); m_r1l.ShowWindow(SW_HIDE); m_r2l.ShowWindow(SW_HIDE); break; case 8: case 9: case 18: case 19: m_eInfol.ShowWindow(SW_HIDE); m_XLl.ShowWindow(SW_HIDE); m_controlTimel.ShowWindow(SW_SHOW); m_r1l.ShowWindow(SW_HIDE); m_r2l.ShowWindow(SW_HIDE); break; default: m_eInfol.ShowWindow(SW_SHOW); m_XLl.ShowWindow(SW_HIDE); m_controlTimel.ShowWindow(SW_HIDE); m_r1l.ShowWindow(SW_HIDE); m_r2l.ShowWindow(SW_HIDE); break; } } void CWorkLeaveDlg::InitDateTime() { CRect rect,rect1; this->GetParent()->GetClientRect(&rect); rect1 = rect; rect1.top = rect.top + 40; rect1.left = rect.left + 20 ; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 60; m_sDate.MoveWindow(&rect1); rect1.top = rect.top + 40; rect1.left = rect.left + 80 ; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 100; m_vDate.MoveWindow(&rect1); rect1.top = rect.top + 40; rect1.left = rect.left + 180 ; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 60; m_vWeek.MoveWindow(&rect1); rect1.top = rect.top + 40; rect1.left = rect.left + 240; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 60; m_sTime.MoveWindow(&rect1); rect1.top = rect.top + 40; rect1.left = rect.left + 300 ; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 60; m_vTime.MoveWindow(&rect1); SYSTEMTIME time; GetLocalTime(&time); int num[7]; num[0] = time.wYear; num[1] = time.wMonth; num[2] = time.wDay; num[3] = time.wHour; num[4] = time.wMinute; num[5] = time.wSecond; num[6] = time.wDayOfWeek; CString string[7]; for(int i = 0; i < 6; i++) { string[i] = numTostring(num[i]); } string[6] = numToH(num[6]); CString sdate,stime; sdate.Format("%s年%s月%s日",string[0],string[1],string[2]); GetDlgItem(IDC_VDATE)->SetWindowText(sdate); stime.Format("%s:%s:%s",string[3],string[4],string[5]); GetDlgItem(IDC_VTIME)->SetWindowText(stime); GetDlgItem(IDC_VWEEK)->SetWindowText(string[6]); } CString CWorkLeaveDlg::numTostring(int num) { CString str; if(num <10) { str.Format("0%d",num); } else { str.Format("%d",num); } return str; } CString CWorkLeaveDlg::numToH(int num) { switch(num) { case 1: return "星期一"; break; case 2: return "星期二"; break; case 3: return "星期三"; break; case 4: return "星期四"; break; case 5: return "星期五"; break; case 6: return "星期六"; break; case 0: return "星期日"; break; } return "星期日"; } void CWorkLeaveDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here m_listIndex = m_list.GetSelectionMark(); *pResult = 0; } void CWorkLeaveDlg::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here m_listIndex = m_list2.GetSelectionMark(); *pResult = 0; } void CWorkLeaveDlg::OnSelchangeCtype() { // TODO: Add your control notification handler code here UpdateData(true); int type = m_combType.GetCurSel(); InitInfoControl(); } void CWorkLeaveDlg::OnSelect() { // TODO: Add your control notification handler code here m_list.DeleteAllItems(); m_list2.DeleteAllItems(); CString sql = GetSql(); if(sql == "") return; m_workerSet.m_pDatabase = &m_dataBase; m_workerSet.Open(AFX_DB_USE_DEFAULT_TYPE,sql); if(!m_workerSet.IsBOF()) m_workerSet.MoveFirst(); int i = 0; while(!m_workerSet.IsEOF()) { m_list2.InsertItem(i,""); m_list2.SetItemText(i,0,m_workerSet.m_wCID); m_list2.SetItemText(i,1,m_workerSet.m_wName); m_list.InsertItem(i,""); m_list.SetItemText(i,0,m_workerSet.m_w1Department); m_list.SetItemText(i,1,m_workerSet.m_w2Department); m_list.SetItemText(i,2,m_workerSet.m_wSex); m_list.SetItemText(i,3,m_workerSet.m_wPosition); m_list.SetItemText(i,4,m_workerSet.m_wMail); m_list.SetItemText(i,5,m_workerSet.m_wID); m_list.SetItemText(i,6,m_workerSet.m_wBorn.Left(10)); m_list.SetItemText(i,7,m_workerSet.m_wNational); m_list.SetItemText(i,8,m_workerSet.m_wHouseholdAdd); m_list.SetItemText(i,9,m_workerSet.m_wBMarriaged); m_list.SetItemText(i,10,m_workerSet.m_wGraduate); m_list.SetItemText(i,11,m_workerSet.m_wMajor); m_list.SetItemText(i,12,m_workerSet.m_wDegree); m_list.SetItemText(i,13,m_workerSet.m_wGraduateTime.Format("%Y-%m-%d")); m_list.SetItemText(i,14,m_workerSet.m_wEntrantTime.Format("%Y-%m-%d")); m_list.SetItemText(i,15,m_workerSet.m_wPhone); m_list.SetItemText(i,16,m_workerSet.m_wEmergencyMan); m_list.SetItemText(i,17,m_workerSet.m_wEmergencyCall); m_list.SetItemText(i,18,m_workerSet.m_wAddress); i ++; m_workerSet.MoveNext(); } m_workerSet.Close(); m_dataBase.Close(); } CString CWorkLeaveDlg::GetSql() { int type = m_combType.GetCurSel(); CString str,sql,status; UpdateData(true); switch(type) { case 0: str.Format("wCID = '%s'",m_info); status.Format("编号:%s,",m_info); break; case 1: str.Format("wName = '%s'",m_info); status.Format("姓名:%s,",m_info); break; case 2: if(!m_radio) { str = "wSex = '男'"; status.Format("性别:%s,","男"); } else { str = "wSex = '女'"; status.Format("性别:%s,","女"); } break; case 3: str.Format("wPosition = '%s'",m_info); status.Format("职位:%s,",m_info); break; case 4: str.Format("w1Department = '%s'",m_info); status.Format("1级部门:%s,",m_info); break; case 5: str.Format("w2Department = '%s'",m_info); status.Format("2级部门:%s,",m_info); break; case 6: str.Format("wMail = '%s'",m_info); status.Format("电子邮件:%s,",m_info); break; case 7: str.Format("wID = '%s'",m_info); status.Format("身份证号:%s,",m_info); break; case 8: str.Format("wBorn = '%s'",m_infoTime.Format("%Y-%m-%d")); status.Format("出生日期:%s,",m_infoTime.Format("%Y-%m-%d")); break; case 9: str.Format("wNational = '%s'",m_info); status.Format("民族:%s,",m_info); break; case 10: str.Format("wHouseholdAdd = '%s'",m_info); status.Format("户籍所在地:%s,",m_info); break; case 11: if(!m_radio) { str = "wBMarriaged = '已婚'"; status.Format("婚姻情况:%s,","已婚"); } else { str = "wBMarriaged = '未婚'"; status.Format("婚姻情况:%s,","未婚"); } break; case 12: str.Format("wGraduate = '%s'",m_info); status.Format("毕业院校:%s,",m_info); break; case 13: str.Format("wMajor = '%s'",m_info); status.Format("专业:%s,",m_info); break; case 14: switch(m_XL.GetCurSel()) { case 0: str="wDeGree = '高中以下'"; status="学历:高中以下,"; break; case 1: str="wDeGree = '高中'"; status="学历:高中,"; break; case 2: str="wDeGree = '专科'"; status="学历:专科,"; break; case 3: str="wDeGree = '本科'"; status="学历:本科,"; break; case 4: str="wDeGree = '本科+学士学位'"; status="学历:本科+学士学位,"; break; case 5: str="wDeGree = '研究生'"; status="学历:研究生,"; break; case 6: str="wDeGree = '博士'"; status="学历:博士,"; break; } break; case 15: str.Format("wGraduateTime = '%s'",m_infoTime.Format("%Y-%m-%d")); status.Format("毕业日期:%s,",m_infoTime.Format("%Y-%m-%d")); break; case 16: str.Format("wEntrantTime = '%s'",m_infoTime.Format("%Y-%m-%d")); status.Format("入职日期:%s,",m_infoTime.Format("%Y-%m-%d")); break; case 17: str.Format("wPhone = '%s'",m_info); status.Format("联系电话:%s,",m_info); break; } if(m_check) { m_selectIndex[type].str = str; if(m_selectIndex[type].bUse) { MessageBox("重复的查询条件,请参照状态栏信息!"); return ""; } m_selectIndex[type].bUse = true; bool first = true; for(int i = 0; i <18; i++) { if(m_selectIndex[i].bUse) { if(first) { str = m_selectIndex[i].str; first = false; } else str += " and " + m_selectIndex[i].str; } } m_estatus += status; } else { for(int i = 0; i <18; i++) { m_selectIndex[i].bUse = false; } m_estatus = status; } sql.Format("select * from hrworker where %s",str); UpdateData(false); return sql; } void CWorkLeaveDlg::OnLeave() { CModifyLeaveDlg dlg; dlg.m_id = m_list2.GetItemText(m_listIndex,0); dlg.m_name = m_list2.GetItemText(m_listIndex,1); dlg.m_1DP = m_list.GetItemText(m_listIndex,0); dlg.m_2dp = m_list.GetItemText(m_listIndex,0); dlg.m_time = CTime::GetCurrentTime(); dlg.m_value = "1000"; dlg.m_type = "协议离职"; if(dlg.DoModal() != IDOK) { return; } CString info[21],sql; for(int i = 0; i < 2; i++) { info[i] = m_list2.GetItemText(m_listIndex,i); } for(i = 2; i < 21; i++) { info[i] = m_list.GetItemText(m_listIndex,i - 2); } sql.Format("delete from hrworker where wCID = '%s'",info[0]); m_dataBase.OpenEx("DSN=HRM",0); m_dataBase.ExecuteSQL(sql); // m_dataBase.Close(); CString index[24] ={"wCID","wName","w1Department","w2Department","wSex","wPosition",\ "wMail","wID", "wBorn", "wNational", "wHouseholdAdd", "wBMarriaged", "wGraduate",\ "wMajor", "wDegree", "wGraduateTime", "wEntrantTime","wPhone", "wEmergencyMan", \ "wEmergencyCall", "wAddress","wLeaveTime","wLeaveValue","wLeaveType"}; CString temp1 = ""; for(i = 0; i< 23; i++) { temp1 += index[i] + ","; } temp1 += index[23]; sql.Format("insert into hrlworker(%s) Values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',\ '%s','%s','%s','%s','%s','%s','%s','%s','%s')",temp1, info[0],info[1],info[2],info[3],info[4],info[5],info[6],info[7],info[8],info[9],info[10],info[11],info[12],info[13],info[14], info[15],info[16],info[17],info[18],info[19],info[20],dlg.m_time.Format("%Y-%m-%d"),dlg.m_value,dlg.m_type); m_dataBase.ExecuteSQL(sql); m_dataBase.Close(); OnSelect(); m_infoTypel.SetCurSel(0); m_infol = info[0]; UpdateData(false); OnSelectl(); } void CWorkLeaveDlg::OnSelectl() { CString temp; m_listl.DeleteAllItems(); m_listl2.DeleteAllItems(); CString sql = GetSqll(); if(sql == "") return; m_lworkerSet.m_pDatabase = &m_dataBase; m_lworkerSet.Open(AFX_DB_USE_DEFAULT_TYPE,sql); if(!m_lworkerSet.IsBOF()) m_lworkerSet.MoveFirst(); int i = 0; while(!m_lworkerSet.IsEOF()) { m_listl2.InsertItem(i,""); m_listl2.SetItemText(i,0,m_lworkerSet.m_wCID); m_listl2.SetItemText(i,1,m_lworkerSet.m_wName); m_listl.InsertItem(i,""); m_listl.SetItemText(i,0,m_lworkerSet.m_w1Department); m_listl.SetItemText(i,1,m_lworkerSet.m_w2Department); m_listl.SetItemText(i,2,m_lworkerSet.m_wSex); m_listl.SetItemText(i,3,m_lworkerSet.m_wPosition); m_listl.SetItemText(i,4,m_lworkerSet.m_wMail); m_listl.SetItemText(i,5,m_lworkerSet.m_wID); m_listl.SetItemText(i,6,m_lworkerSet.m_wBorn.Format("%Y-%m-%d")); m_listl.SetItemText(i,7,m_lworkerSet.m_wLeaveTime.Format("%Y-%m-%d")); m_listl.SetItemText(i,8,m_lworkerSet.m_wLeaveType); temp.Format("%d",m_lworkerSet.m_wLeaveValue); m_listl.SetItemText(i,9,temp); m_listl.SetItemText(i,10,m_lworkerSet.m_wNational); m_listl.SetItemText(i,11,m_lworkerSet.m_wHouseholdAdd); m_listl.SetItemText(i,12,m_lworkerSet.m_wBMarriaged); m_listl.SetItemText(i,13,m_lworkerSet.m_wGraduate); m_listl.SetItemText(i,14,m_lworkerSet.m_wMajor); m_listl.SetItemText(i,15,m_lworkerSet.m_wDegree); m_listl.SetItemText(i,16,m_lworkerSet.m_wGraduateTime.Format("%Y-%m-%d")); m_listl.SetItemText(i,17,m_lworkerSet.m_wEntrantTime.Format("%Y-%m-%d")); m_listl.SetItemText(i,18,m_lworkerSet.m_wPhone); m_listl.SetItemText(i,19,m_lworkerSet.m_wEmergencyMan); m_listl.SetItemText(i,20,m_lworkerSet.m_wEmergencyCall); m_listl.SetItemText(i,21,m_lworkerSet.m_wAddress); i ++; m_lworkerSet.MoveNext(); } m_lworkerSet.Close(); m_dataBase.Close(); } void CWorkLeaveDlg::OnSelchangeInfitypel() { UpdateData(true); int type = m_combType.GetCurSel(); InitInfoControl(); } CString CWorkLeaveDlg::GetSqll() { int type = m_infoTypel.GetCurSel(); CString str,sql,status; UpdateData(true); switch(type) { case 0: str.Format("wCID = '%s'",m_infol); status.Format("编号:%s,",m_infol); break; case 1: str.Format("wName = '%s'",m_infol); status.Format("姓名:%s,",m_infol); break; case 2: if(!m_radiol) { str = "wSex = '男'"; status.Format("性别:%s,","男"); } else { str = "wSex = '女'"; status.Format("性别:%s,","女"); } break; case 3: str.Format("wPosition = '%s'",m_infol); status.Format("职位:%s,",m_infol); break; case 4: str.Format("w1Department = '%s'",m_infol); status.Format("1级部门:%s,",m_infol); break; case 5: str.Format("w2Department = '%s'",m_infol); status.Format("2级部门:%s,",m_infol); break; case 6: str.Format("wMail = '%s'",m_infol); status.Format("电子邮件:%s,",m_infol); break; case 7: str.Format("wID = '%s'",m_infol); status.Format("身份证号:%s,",m_infol); break; case 8: str.Format("wBorn = '%s'",m_infoTimel.Format("%Y-%m-%d")); status.Format("出生日期:%s,",m_infoTimel.Format("%Y-%m-%d")); break; case 9: str.Format("wLeaveTime = '%s'",m_infoTimel.Format("%Y-%m-%d")); status.Format("离职时间:%s,",m_infoTimel.Format("%Y-%m-%d")); break; case 10: str.Format("wLeaveType = '%s'",m_infol); status.Format("离职类型:%s,",m_infol); break; case 11: str.Format("wLeaveValue = '%s'",m_infol); status.Format("离职成本:%s,",m_infol); break; case 12: str.Format("wNational = '%s'",m_infol); status.Format("民族:%s,",m_infol); break; case 13: str.Format("wHouseholdAdd = '%s'",m_infol); status.Format("户籍所在地:%s,",m_infol); break; case 14: if(!m_radiol) { str = "wBMarriaged = '已婚'"; status.Format("婚姻情况:%s,","已婚"); } else { str = "wBMarriaged = '未婚'"; status.Format("婚姻情况:%s,","未婚"); } break; case 15: str.Format("wGraduate = '%s'",m_infol); status.Format("毕业院校:%s,",m_infol); break; case 16: str.Format("wMajor = '%s'",m_infol); status.Format("专业:%s,",m_infol); break; case 17: switch(m_XLl.GetCurSel()) { case 0: str="wDeGree = '高中以下'"; status="学历:高中以下,"; break; case 1: str="wDeGree = '高中'"; status="学历:高中,"; break; case 2: str="wDeGree = '专科'"; status="学历:专科,"; break; case 3: str="wDeGree = '本科'"; status="学历:本科,"; break; case 4: str="wDeGree = '本科+学士学位'"; status="学历:本科+学士学位,"; break; case 5: str="wDeGree = '研究生'"; status="学历:研究生,"; break; case 6: str="wDeGree = '博士'"; status="学历:博士,"; break; } break; case 18: str.Format("wGraduateTime = '%s'",m_infoTimel.Format("%Y-%m-%d")); status.Format("毕业日期:%s,",m_infoTimel.Format("%Y-%m-%d")); break; case 19: str.Format("wEntrantTime = '%s'",m_infoTimel.Format("%Y-%m-%d")); status.Format("入职日期:%s,",m_infoTimel.Format("%Y-%m-%d")); break; case 20: str.Format("wPhone = '%s'",m_infol); status.Format("联系电话:%s,",m_infol); break; } sql.Format("select * from hrlworker where %s",str); return sql; }