// WorkRenewDlg.cpp : implementation file // #include "stdafx.h" #include "hrm.h" #include "WorkRenewDlg.h" #include "modifyrenewdlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CWorkRenewDlg dialog CWorkRenewDlg::CWorkRenewDlg(CWnd* pParent /*=NULL*/) : CDialog(CWorkRenewDlg::IDD, pParent) { //{{AFX_DATA_INIT(CWorkRenewDlg) m_infoTime = 0; m_info = _T(""); //}}AFX_DATA_INIT m_listIndex = 0; } void CWorkRenewDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CWorkRenewDlg) DDX_Control(pDX, IDC_ADD, m_bAdd); DDX_Control(pDX, IDC_SELECT, m_bSelect); DDX_Control(pDX, IDC_DATETIMEPICKER1, m_controlTime); DDX_Control(pDX, IDC_INFO, m_eInfo); DDX_Control(pDX, IDC_VTIME, m_vTime); DDX_Control(pDX, IDC_VWEEK, m_vWeek); 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_CTYPE, m_combType); DDX_Control(pDX, IDC_SINDEX, m_sIndex); DDX_Control(pDX, IDC_SMESG, m_smesg); DDX_Control(pDX, IDC_LIST1, m_list); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_infoTime); DDX_Text(pDX, IDC_INFO, m_info); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CWorkRenewDlg, CDialog) //{{AFX_MSG_MAP(CWorkRenewDlg) ON_CBN_SELCHANGE(IDC_CTYPE, OnSelchangeCtype) ON_BN_CLICKED(IDC_SELECT, OnSelect) ON_BN_CLICKED(IDC_ADD, OnAdd) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CWorkRenewDlg message handlers BOOL CWorkRenewDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_combType.InsertString(0,"转正编号"); m_combType.InsertString(1,"员工编号"); m_combType.InsertString(2,"员工姓名"); m_combType.InsertString(3,"转正日期"); m_combType.InsertString(4,"原定转正日期"); m_combType.SetCurSel(1); InitControl(); InitInfoControl(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CWorkRenewDlg::InitControl() { InitListControl(); InitDateTime(); CRect rect,rect1; this->GetParent()->GetClientRect(&rect); rect1 = rect; rect1.top = rect.top + 10; m_smesg.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.top + 65; rect1.left = rect.right - 480; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 120; m_combType.MoveWindow(&rect1); 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_controlTime.MoveWindow(&rect1); 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.top + 65; rect1.left = rect.right - 100; rect1.bottom = rect1.top +20; rect1.right = rect1.left + 80; m_bAdd.MoveWindow(&rect1); m_infoTime = CTime::GetCurrentTime(); UpdateData(false); } void CWorkRenewDlg::InitListControl() { CRect rect,rect1; this->GetParent()->GetClientRect(&rect); rect1 = rect; rect1.top = rect.top + 100; rect1.bottom = rect.bottom -35; rect1.left += 5; rect1.right -= 10; 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,"转正编号",LVCFMT_LEFT,110,6); m_list.InsertColumn(1,"员工编号",LVCFMT_LEFT,110,5); m_list.InsertColumn(2,"员工姓名",LVCFMT_LEFT,110,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); } void CWorkRenewDlg::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 CWorkRenewDlg::numTostring(int num) { CString str; if(num <10) { str.Format("0%d",num); } else { str.Format("%d",num); } return str; } CString CWorkRenewDlg::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 CWorkRenewDlg::InitInfoControl() { int index = m_combType.GetCurSel(); if(index == 3 || index == 4) { m_eInfo.ShowWindow(SW_HIDE); m_controlTime.ShowWindow(SW_SHOW); } else { m_eInfo.ShowWindow(SW_SHOW); m_controlTime.ShowWindow(SW_HIDE); } } void CWorkRenewDlg::OnSelchangeCtype() { UpdateData(false); InitInfoControl(); } void CWorkRenewDlg::OnSelect() { // TODO: Add your control notification handler code here m_list.DeleteAllItems(); int index = m_combType.GetCurSel(); CString sql; UpdateData(true); switch(index) { case 0: sql.Format("select * from hrrenew where rID = '%s'",m_info); break; case 1: sql.Format("select * from hrrenew where wID = '%s'",m_info); break; case 2: sql.Format("select * from hrrenew where wName = '%s'",m_info); break; case 3: sql.Format("select * from hrrenew where rTime = '%s'",m_infoTime.Format("%Y-%m-%d")); break; case 4: sql.Format("select * from hrrenew where rScheduledTime = '%s'",m_infoTime.Format("%Y-%m-%d")); break; } m_dataBase.OpenEx("DSN=HRM",0); m_renewSet.m_pDatabase = &m_dataBase; m_renewSet.Open(AFX_DB_USE_DEFAULT_TYPE,sql); if(!m_renewSet.IsBOF()) m_renewSet.MoveFirst(); index = 0; while(!m_renewSet.IsEOF()) { m_list.InsertItem(index,""); m_list.SetItemText(index,0,m_renewSet.m_rID); m_list.SetItemText(index,1,m_renewSet.m_wID); m_list.SetItemText(index,2,m_renewSet.m_wName); m_list.SetItemText(index,3,m_renewSet.m_rTime.Format("%Y-%m-%d")); m_list.SetItemText(index,4,m_renewSet.m_rScheduledTime.Format("%Y-%m-%d")); m_list.SetItemText(index,5,m_renewSet.m_rProbationWages); m_list.SetItemText(index,6,m_renewSet.m_rRenewWages); m_renewSet.MoveNext(); } m_renewSet.Close(); m_dataBase.Close(); } void CWorkRenewDlg::OnAdd() { CModifyRenewDlg dlg; dlg.m_rid = GetRenewID(); dlg.m_op = "1500"; dlg.m_np = "2500"; dlg.m_otime = dlg.m_ntime = CTime::GetCurrentTime(); if(dlg.DoModal() == IDOK) { CString sql; sql.Format("Insert into hrrenew(rID,wID,wName,rTime,rScheduledTime,rProbationWages,rRenewWages) \ values('%s','%s','%s','%s','%s','%s','%s')",dlg.m_rid,dlg.m_wid,dlg.m_wname, dlg.m_ntime.Format("%Y-%m-%d"),dlg.m_otime.Format("%Y-%m-%d"),dlg.m_op,dlg.m_np); m_dataBase.OpenEx("DSN=HRM",0); m_dataBase.ExecuteSQL(sql); m_dataBase.Close(); } } void CWorkRenewDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here m_listIndex = m_list.GetSelectionMark(); *pResult = 0; } CString CWorkRenewDlg::GetRenewID() { CTime time = CTime::GetCurrentTime(); CString sql,temp,ID; sql.Format("select * from hrrenew where rScheduledTime = '%s'",time.Format("%Y-%m-%d")); m_dataBase.OpenEx("DSN=HRM",0); m_renewSet.m_pDatabase = &m_dataBase; m_renewSet.Open(AFX_DB_USE_DEFAULT_TYPE,sql); if(!m_renewSet.IsBOF()) m_renewSet.MoveFirst(); if(!m_renewSet.IsEOF()) { ID = temp = "0"; while(!m_renewSet.IsEOF()) { temp = m_renewSet.m_rID; m_renewSet.MoveNext(); if(temp.Compare(ID) > 0) { ID = temp; } } ID.TrimLeft(); ID.TrimRight(); ID.Format("%s%04d",time.Format("%y%m%d"),atoi(ID.Right(4))+1); } else { ID.Format("%s0001",time.Format("%y%m%d")); } m_renewSet.Close(); m_dataBase.Close(); return ID; }