⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hrdbsdlg.cpp

📁 设备管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	m_listVocation.InsertColumn(1,"行业名称",LVCFMT_CENTER,90);

	m_listHR.InsertColumn(0,"人脉ID",LVCFMT_CENTER,60);
	m_listHR.InsertColumn(1,"姓名",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(2,"所在地区",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(3,"职业",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(4,"行业",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(5,"所在单位",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(6,"认识途径",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(7,"e-mail",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(8,"固定电话",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(9,"移动电话",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(10,"爱好",LVCFMT_CENTER,80);
	m_listHR.InsertColumn(11,"说明",LVCFMT_CENTER,140);
	

}

void CHRDBSDlg::ConnectDB()
{
	char szPath[255];
	//获取应用程序完全路径
	::GetModuleFileName(NULL,szPath,255);
	CString strFileName=szPath;
	//获取所在的目录名称
	strFileName.Delete(strFileName.ReverseFind('\\')+1,
		strFileName.GetLength()-strFileName.ReverseFind('\\')-1);
	//构造配置文件的完全路径
	strFileName+="HRDBS.ini";
	TCHAR sz[101];
    memset(sz,0,sizeof(TCHAR)*101);

	GetPrivateProfileString(_T("General"),_T("  数  据  库  数  据  源  "),
		_T("oracle"),sz,100,strFileName);
	CString strSourse(sz);
	
	GetPrivateProfileString(_T("General"),_T("  数  据  库  用  户  "),
		_T("dbhr"),sz,100,strFileName);
	CString strUser(sz);
	
	GetPrivateProfileString(_T("General"),_T("  数  据  库  密  码  "),
		_T("000"),sz,100,strFileName);
	CString strPwd(sz);
	
	CString strConnect;
	strConnect.Format("DSN=%s;UID=%s;PWD=%s",strSourse,strUser,strPwd);
	TRY 
	{
		if(m_db.OpenEx(strConnect,CDatabase::noOdbcDialog)!=0)
		{
			MessageBox("恭喜您,数据库连接成功 !");
		}
		else 
			MessageBox("连接不成功!");
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException, pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
   END_CATCH

}

void CHRDBSDlg::RefreshAreaComboData()
{
	m_comboArea.ResetContent();
	TRY 
	{
		CRecordset rs(&m_db);
        rs.Open(CRecordset::dynaset,"select * from area_info_tab");
		while(! rs.IsEOF())
		{
			CString strName;
			rs.GetFieldValue(1,strName);
			m_comboArea.AddString(strName);
			rs.MoveNext();
		}
		m_comboArea.SetCurSel(0);
	}

	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException, pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
   END_CATCH

}

void CHRDBSDlg::RefreshApprComboData()
{

	m_comboApproach.ResetContent();
	TRY 
	{
		CRecordset rs(&m_db);
        rs.Open(CRecordset::dynaset,"select * from approach_info_tab");
		while(! rs.IsEOF())
		{
			CString strName;
			rs.GetFieldValue(1,strName);
			m_comboApproach.AddString(strName);
			rs.MoveNext();
		}
		m_comboApproach.SetCurSel(0);
	}
	
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException, pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
   END_CATCH
}

void CHRDBSDlg::RefreshProfComboData()
{
	m_comboProfession.ResetContent();
	TRY 
	{
		CRecordset rs(&m_db);
        rs.Open(CRecordset::dynaset,"select * from profession_info_tab");
		while(! rs.IsEOF())
		{
			CString strName;
			rs.GetFieldValue(1,strName);
			m_comboProfession.AddString(strName);
			rs.MoveNext();
		}
		m_comboProfession.SetCurSel(0);
	}
	
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException, pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
   END_CATCH

}

void CHRDBSDlg::RefreshVocComboData()
{
	m_comboVocation.ResetContent();
	TRY 
	{
		CRecordset rs(&m_db);
        rs.Open(CRecordset::dynaset,"select * from vocation_info_tab");
		while(! rs.IsEOF())
		{
			CString strName;
			rs.GetFieldValue(1,strName);
			m_comboVocation.AddString(strName);
			rs.MoveNext();
		}
		m_comboVocation.SetCurSel(0);
	}
	
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException, pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
   END_CATCH

}

void CHRDBSDlg::InsertConfigItem(CListCtrl *pList, int id, CString name)
{
	int nIndex=pList->GetItemCount();
	LV_ITEM lvItem;
	lvItem.mask=LVIF_TEXT;
	lvItem.iItem=nIndex;
	lvItem.iSubItem=0;
	CString temp;
	temp.Format("%d",id);
	lvItem.pszText=(char*)(LPCTSTR)temp;

	pList->InsertItem(&lvItem);
	pList->SetItemText(nIndex,1,name);

}
void CHRDBSDlg::InsertHRInfoItem(int id,CString name,CString area,CString prof,
					  CString voc,CString com,CString appr,CString email,CString phone,
		CString mobile,CString interest,CString memo)
{
	int nIndex=m_listHR.GetItemCount();
	LV_ITEM lvItem;
	lvItem.mask=LVIF_TEXT;
	lvItem.iItem=nIndex;
	lvItem.iSubItem=0;
	CString temp;
	temp.Format("%d",id);
	lvItem.pszText=(char*)(LPCTSTR)temp;
	
	m_listHR.InsertItem(&lvItem);

	m_listHR.SetItemText(nIndex,1,name);
	m_listHR.SetItemText(nIndex,2,area);
	m_listHR.SetItemText(nIndex,3,prof);
	m_listHR.SetItemText(nIndex,4,voc);
	m_listHR.SetItemText(nIndex,5,com);
	m_listHR.SetItemText(nIndex,6,appr);
	m_listHR.SetItemText(nIndex,7,email);
	m_listHR.SetItemText(nIndex,8,phone);
	m_listHR.SetItemText(nIndex,9,mobile);
	m_listHR.SetItemText(nIndex,10,interest);
	m_listHR.SetItemText(nIndex,11,memo);

}

void CHRDBSDlg::InitCtrlData()
{
	if (!m_db.IsOpen())
	{
		MessageBox("数据库未打开");
		return;
	}
	TRY 
	{
		CRecordset rs(&m_db);

		rs.Open(CRecordset::dynaset,"select * from area_info_tab order by area_id");
		while(!rs.IsEOF())
		{
			int id;
			CString area;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				id=var.m_iVal;
			var.Clear();
			
			rs.GetFieldValue(1,area);
			InsertConfigItem(&m_listArea,id,area);
			rs.MoveNext();
		}
		rs.Close();

		rs.Open(CRecordset::dynaset,"select * from approach_info_tab "
			"order by approach_id");
		while(!rs.IsEOF())
		{
			int id;
			CString approach;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				id=var.m_iVal;
			var.Clear();
			
			rs.GetFieldValue(1,approach);
			InsertConfigItem(&m_listApproach,id,approach);
			rs.MoveNext();
		}
		rs.Close();


		rs.Open(CRecordset::dynaset,"select * from profession_info_tab "
			"order by profession_id");
		while(!rs.IsEOF())
		{
			int id;
			CString profession;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				id=var.m_iVal;
			var.Clear();
			
			rs.GetFieldValue(1,profession);
			InsertConfigItem(&m_listProfession,id,profession);
			rs.MoveNext();
		}
		rs.Close();


		rs.Open(CRecordset::dynaset,"select * from vocation_info_tab "
			"order by vocation_id");
		while(!rs.IsEOF())
		{
			int id;
			CString vocation;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				id=var.m_iVal;
			var.Clear();
			
			rs.GetFieldValue(1,vocation);
			InsertConfigItem(&m_listVocation,id,vocation);
			rs.MoveNext();
		}
		rs.Close();


		rs.Open(CRecordset::dynaset,"select * from human_info_tab "
			"order by id");
		while(!rs.IsEOF())
		{
			int id;
			CString name,area,profession,vocation,company;
			CString approach,email,phone,mobile,interest,memo;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				id=var.m_iVal;
			var.Clear();
			
			rs.GetFieldValue(1,name);
			rs.GetFieldValue(2,area);
			rs.GetFieldValue(3,profession);
			rs.GetFieldValue(4,vocation);
			rs.GetFieldValue(5,company);
			rs.GetFieldValue(6,approach);
			rs.GetFieldValue(7,email);
			rs.GetFieldValue(8,phone);
			rs.GetFieldValue(9,mobile);
			rs.GetFieldValue(10,interest);
			rs.GetFieldValue(11,memo);

			InsertHRInfoItem(id,name,area,profession,vocation,company,
				approach,email,phone,mobile,interest,memo);
			rs.MoveNext();
		}
		rs.Close();

		RefreshAreaComboData();
		RefreshApprComboData();
		RefreshProfComboData();
		RefreshVocComboData();
	}

	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException, pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
   END_CATCH

}

void CHRDBSDlg::OnClickListArea(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listArea.GetNextItem(-1,LVNI_SELECTED);
	if (nItem !=-1)
	{
		CString name=m_listArea.GetItemText(nItem,1);
		GetDlgItem(IDC_EDIT_CONFIG_AREA)->SetWindowText(name);
	}

	
	*pResult = 0;
}

void CHRDBSDlg::OnClickListApproach(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listApproach.GetNextItem(-1,LVNI_SELECTED);
	if (nItem !=-1)
	{
		CString name=m_listApproach.GetItemText(nItem,1);
		GetDlgItem(IDC_EDIT_CONFIG_APPROACH)->SetWindowText(name);
	}
	
	*pResult = 0;
}

void CHRDBSDlg::OnClickListProfession(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listProfession.GetNextItem(-1,LVNI_SELECTED);
	if (nItem!=-1)
	{
		CString name=m_listProfession.GetItemText(nItem,1);
		GetDlgItem(IDC_EDIT_CONFIG_PROFESSION)->SetWindowText(name);
	}
	
	*pResult = 0;
}

void CHRDBSDlg::OnClickListVocation(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listVocation.GetNextItem(-1,LVNI_SELECTED);
	if (nItem !=-1)
	{
		CString name=m_listVocation.GetItemText(nItem,1);
		GetDlgItem(IDC_EDIT_CONFIG_VOCATION)->SetWindowText(name);
	}
	
	*pResult = 0;
}

void CHRDBSDlg::OnClickListHr(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listHR.GetNextItem(-1,LVNI_SELECTED);
	if (nItem !=-1)
	{
		m_strName=m_listHR.GetItemText(nItem,1);
        m_strSelectedArea=m_listHR.GetItemText(nItem,2);
		m_strSelectedProfession=m_listHR.GetItemText(nItem,3);
		m_strSelectedVocation=m_listHR.GetItemText(nItem,4);
		m_strCompany=m_listHR.GetItemText(nItem,5);
		m_strSelectedApproach=m_listHR.GetItemText(nItem,6);
		m_strEmail=m_listHR.GetItemText(nItem,7);
		m_strPhone=m_listHR.GetItemText(nItem,8);
		m_strMobile=m_listHR.GetItemText(nItem,9);
		m_strInterest=m_listHR.GetItemText(nItem,10);
		m_strMemo=m_listHR.GetItemText(nItem,11);

		GetDlgItem(IDC_EDIT_NAME)->SetWindowText(m_strName);
		GetDlgItem(IDC_COMBO_AREA)->SetWindowText(m_strSelectedArea);
		GetDlgItem(IDC_COMBO_PROFESSION)->SetWindowText(m_strSelectedProfession);
		GetDlgItem(IDC_COMBO_VOCATION)->SetWindowText(m_strSelectedVocation);
		GetDlgItem(IDC_EDIT_COMPANY)->SetWindowText(m_strCompany);
		GetDlgItem(IDC_COMBO_APPROACH)->SetWindowText(m_strSelectedApproach);
		GetDlgItem(IDC_EDIT_EMAIL)->SetWindowText(m_strEmail);
		GetDlgItem(IDC_EDIT_PHONE)->SetWindowText(m_strPhone);
		GetDlgItem(IDC_EDIT_MOBILE)->SetWindowText(m_strMobile);
		GetDlgItem(IDC_EDIT_MEMO)->SetWindowText(m_strInterest);
		GetDlgItem(IDC_EDIT_INTEREST)->SetWindowText(m_strMemo);
	}
	
	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -