// InsuranceDlg.cpp : implementation file // #include "stdafx.h" #include "hrm.h" #include "InsuranceDlg.h" #include "ModifyInsuanceDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CInsuranceDlg dialog CInsuranceDlg::CInsuranceDlg(CWnd* pParent /*=NULL*/) : CDialog(CInsuranceDlg::IDD, pParent) { //{{AFX_DATA_INIT(CInsuranceDlg) m_info = _T(""); //}}AFX_DATA_INIT m_listIndex = 0; m_time = CTime::GetCurrentTime(); } void CInsuranceDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CInsuranceDlg) DDX_Control(pDX, IDC_INFO, m_cinfo); DDX_Control(pDX, IDC_DATETIMEPICKER1, m_cTime); DDX_Control(pDX, IDC_INFOTYPE, m_infoType); DDX_Control(pDX, IDC_LIST1, m_list); DDX_Text(pDX, IDC_INFO, m_info); DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_time); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CInsuranceDlg, CDialog) //{{AFX_MSG_MAP(CInsuranceDlg) ON_BN_CLICKED(IDC_RETURN, OnReturn) ON_WM_CLOSE() ON_CBN_SELCHANGE(IDC_INFOTYPE, OnSelchangeInfotype) ON_BN_CLICKED(IDC_SELECT, OnSelect) ON_BN_CLICKED(IDC_ADD, OnAdd) ON_BN_CLICKED(IDC_MODIFY, OnModify) ON_BN_CLICKED(IDC_DELETE, OnDelete) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CInsuranceDlg message handlers void CInsuranceDlg::OnReturn() { // TODO: Add your control notification handler code here OnOK(); this->GetParent()->ShowWindow(SW_SHOW); } void CInsuranceDlg::OnClose() { // TODO: Add your message handler code here and/or call default this->GetParent()->PostMessage(WM_QUIT); CDialog::OnClose(); } BOOL CInsuranceDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_list.SetExtendedStyle(LVS_EX_FLATSB| // 扁平风格滚动条 LVS_EX_FULLROWSELECT| // 允许正行选中 LVS_EX_HEADERDRAGDROP| // 允许标题拖拽 LVS_EX_ONECLICKACTIVATE| // 高亮显示 LVS_EX_GRIDLINES // 画出网格线 ); m_list.InsertColumn(0,"保险编号",LVCFMT_LEFT,100,100); m_list.InsertColumn(1,"员工编号",LVCFMT_LEFT,100,100); m_list.InsertColumn(2,"员工姓名",LVCFMT_LEFT,100,100); m_list.InsertColumn(3,"保险类型",LVCFMT_LEFT,100,100); m_list.InsertColumn(4,"入保时间",LVCFMT_LEFT,100,100); m_list.InsertColumn(5,"公积金账号",LVCFMT_LEFT,170,100); m_list.InsertColumn(6,"入公积金时间",LVCFMT_LEFT,100,100); m_infoType.InsertString(0,"保险编号"); m_infoType.InsertString(1,"员工编号"); m_infoType.InsertString(2,"员工姓名"); m_infoType.InsertString(3,"保险类型"); m_infoType.InsertString(4,"入保时间"); m_infoType.InsertString(5,"公积金账号"); m_infoType.InsertString(6,"入公积金时间"); m_infoType.SetCurSel(0); m_cTime.ShowWindow(SW_HIDE); m_cinfo.ShowWindow(SW_SHOW); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CInsuranceDlg::OnSelchangeInfotype() { // TODO: Add your control notification handler code here SelectInfo(); } void CInsuranceDlg::SelectInfo() { UpdateData(true); int index = m_infoType.GetCurSel(); if(index == 4 || index == 6) { m_cTime.ShowWindow(SW_SHOW); m_cinfo.ShowWindow(SW_HIDE); } else { m_cTime.ShowWindow(SW_HIDE); m_cinfo.ShowWindow(SW_SHOW); } } void CInsuranceDlg::OnSelect() { m_list.DeleteAllItems(); int index = m_infoType.GetCurSel(); CString str,sql; UpdateData(true); m_info.TrimLeft(); m_info.TrimRight(); switch(index) { case 0: str.Format("iID = '%s'",m_info); break; case 1: str.Format("wID = '%s'",m_info); break; case 2: str.Format("wName = '%s'",m_info); break; case 3: str.Format("iType = '%s'",m_info); break; case 4: str.Format("iStartTime = '%s'",m_time.Format("%Y-%m-%d")); break; case 5: str.Format("accuFundCount = '%s'",m_info); break; case 6: str.Format("accuFundSTime = '%s'",m_time.Format("%Y-%m-%d")); break; } sql.Format("select * from hrinsurance where %s",str); m_dataBase.OpenEx("DSN=HRM",0); m_insuranceSet.m_pDatabase = &m_dataBase; m_insuranceSet.Open(AFX_DB_USE_DEFAULT_TYPE,sql); if(!m_insuranceSet.IsBOF()) m_insuranceSet.MoveFirst(); int i = 0; while(!m_insuranceSet.IsEOF()) { m_list.InsertItem(i,""); m_list.SetItemText(i,0,m_insuranceSet.m_iID); m_list.SetItemText(i,1,m_insuranceSet.m_wID); m_list.SetItemText(i,2,m_insuranceSet.m_wName); m_list.SetItemText(i,3,m_insuranceSet.m_iType); m_list.SetItemText(i,4,m_insuranceSet.m_iStartTime.Format("%Y-%m-%d")); m_list.SetItemText(i,5,m_insuranceSet.m_accuFundCount); m_list.SetItemText(i,6,m_insuranceSet.m_accuFundSTime.Format("%Y-%m-%d")); i++; m_insuranceSet.MoveNext(); } m_insuranceSet.Close(); m_dataBase.Close(); } void CInsuranceDlg::OnAdd() { CTime time =CTime::GetCurrentTime(); CModifyInsuanceDlg dlg; dlg.m_itime = dlg.m_ftime = time; if(dlg.DoModal()==IDOK) { m_dataBase.OpenEx("DSN=HRM",0); CString sql; sql.Format("insert into hrinsurance(iID,wID,wName,iType,iStartTime,accuFundCount,accuFundSTime)\ Values('%s','%s','%s','%s','%s','%s','%s')",dlg.m_id,dlg.m_wid,dlg.m_name,dlg.m_type, dlg.m_itime.Format("%Y-%m-%d"),dlg.m_count,dlg.m_ftime.Format("%Y-%m-%d")); m_dataBase.ExecuteSQL(sql); m_dataBase.Close(); } OnSelect(); } void CInsuranceDlg::OnModify() { CModifyInsuanceDlg dlg; dlg.m_id = m_list.GetItemText(m_listIndex,0); dlg.m_wid = m_list.GetItemText(m_listIndex,1); dlg.m_name = m_list.GetItemText(m_listIndex,2); dlg.m_type = m_list.GetItemText(m_listIndex,3); dlg.m_count = m_list.GetItemText(m_listIndex,5); CString str = m_list.GetItemText(m_listIndex,4); int h,m,d; sscanf(str,"%d-%d-%d",&h,&m,&d); dlg.m_itime = CTime::CTime(h,m,d,0,0,0); str = m_list.GetItemText(m_listIndex,6); sscanf(str,"%d-%d-%d",&h,&m,&d); dlg.m_ftime = CTime::CTime(h,m,d,0,0,0); if(dlg.DoModal()==IDOK) { m_dataBase.OpenEx("DSN=HRM",0); CString sql; sql.Format("update hrinsurance set wID = '%s',wName= '%s',iType = '%s', iStartTime= '%s',accuFundCount = '%s',\ accuFundSTime = '%s'",dlg.m_wid,dlg.m_name,dlg.m_type,dlg.m_itime.Format("%Y-%m-%d"),dlg.m_count, dlg.m_ftime.Format("%Y-%m-%d"),dlg.m_id); m_dataBase.ExecuteSQL(sql); m_dataBase.Close(); } OnSelect(); } void CInsuranceDlg::OnDelete() { CString str,temp; temp = m_list.GetItemText(m_listIndex,2); temp.TrimRight(); str.Format("你真的要删除 %s 的保险吗",temp); if(MessageBox(str,"信息确认",MB_YESNO) == IDNO) return; CoInitialize(NULL); CString sql; sql.Format("delete from hrinsurance where iID ='%s'",m_list.GetItemText(m_listIndex,0)); m_dataBase.OpenEx("DSN=HRM",0); m_dataBase.ExecuteSQL(sql); m_dataBase.Close(); OnSelect(); } void CInsuranceDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here m_listIndex = m_list.GetSelectionMark(); *pResult = 0; }