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

📄 hrdbsdlg.cpp

📁 设备管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	
}

void CHRDBSDlg::OnBtnHrAdd() 
{
	// TODO: Add your control notification handler code here
	if(!UpdateData())
		return;
	if (m_strName.IsEmpty())
	{
		AfxMessageBox(" 姓名不能够为空");
		return;
	}
	TRY 
	{
	    m_db.BeginTrans();
		CRecordset rs(&m_db);
		CString sql;
		rs.Open(CRecordset::dynaset,
			"select seq_human_id.NEXTVAL from human_info_tab");
		int newID=10000;
		if (!rs.IsEOF())
		{
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				newID =var.m_iVal+1;
		}
		sql.Format("call add_human_info_tab(%d,'%s','%s','%s','%s',"
			"'%s','%s','%s','%s','%s','%s','%s')",newID,m_strName,
			m_strSelectedArea,m_strSelectedProfession,m_strSelectedVocation,
			m_strCompany,m_strSelectedApproach,m_strEmail,m_strPhone,m_strMobile,
			m_strInterest,m_strMemo);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		InsertHRInfoItem(newID,m_strName,
			m_strSelectedArea,m_strSelectedProfession,m_strSelectedVocation,
			m_strCompany,m_strSelectedApproach,m_strEmail,m_strPhone,m_strMobile,
			m_strInterest,m_strMemo);
		m_db.CommitTrans();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnHrDel() 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listHR.GetNextItem(-1,LVNI_SELECTED);
	if(nItem==-1)
	{
		AfxMessageBox("没有选择要删除的人脉信息");
		return;
	}
	int id=atoi(m_listHR.GetItemText(nItem,0));
	TRY 
	{
		m_db.BeginTrans();
		CString deleteSql;
		deleteSql.Format("delete from human_info_tab where id=%d",id);
		m_db.ExecuteSQL(deleteSql);
		m_listHR.DeleteItem(nItem);
		m_db.CommitTrans();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnHrMod() 
{
	// TODO: Add your control notification handler code here
	if(! UpdateData())
		return;
	if (m_strName.IsEmpty())
	{
		AfxMessageBox("姓名不能为空");
		return;
	}
	int nItem=m_listHR.GetNextItem(-1,LVNI_SELECTED);
	if (nItem==-1)
	{
		AfxMessageBox("没有选择要修改的人脉信息");
		return;
	}

	int id =atoi(m_listHR.GetItemText(nItem,0));
	TRY 
	{
		m_db.BeginTrans();
		CRecordset rs(&m_db);
		CString sql;
		sql.Format("call add_human_info_tab(%d,'%s','%s','%s',"
			"'%s','%s','%s','%s','%s','%s','%s','%s')",id,m_strName,
			m_strSelectedArea,m_strSelectedProfession,m_strSelectedVocation,
			m_strCompany,m_strSelectedApproach,m_strEmail,m_strPhone,
			m_strMobile,m_strInterest,m_strMemo);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		m_listHR.SetItemText(nItem,1,m_strName);
		m_listHR.SetItemText(nItem,2,m_strSelectedArea);
		m_listHR.SetItemText(nItem,3,m_strSelectedProfession);
		m_listHR.SetItemText(nItem,4,m_strSelectedVocation);
		m_listHR.SetItemText(nItem,5,m_strCompany);
		m_listHR.SetItemText(nItem,6,m_strSelectedApproach);
		m_listHR.SetItemText(nItem,7,m_strEmail);
		m_listHR.SetItemText(nItem,8,m_strPhone);
		m_listHR.SetItemText(nItem,9,m_strMobile);
		m_listHR.SetItemText(nItem,10,m_strInterest);
		m_listHR.SetItemText(nItem,11,m_strMemo);
		m_db.CommitTrans();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnHrQuery() 
{
	// TODO: Add your control notification handler code here
	if(!UpdateData())
		return;
	if (m_strName.IsEmpty())
	{
		AfxMessageBox("姓名不能为空");
		return;
	}
	if (!m_db.IsOpen())
	{
		AfxMessageBox("数据库未打开");
		return;
	}
	m_listHR.DeleteAllItems();
	TRY 
	{
		CRecordset rs(&m_db);
		CString temp="%";
		CString sql;
		sql.Format("select * from human_info_tab where name like '%s%s%s' ",
			temp,m_strName,temp);
		rs.Open(CRecordset::dynaset,sql);
		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();
	}
	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::OnBtnProfessionAdd() 
{
	// TODO: Add your control notification handler code here
	if (!UpdateData())
		return;
	if(m_strConfigProfession.IsEmpty())
		return;
	TRY 
	{
		CRecordset rs(&m_db);
		CString sql;
		rs.Open(CRecordset::dynaset,
			"select max(profession_id) from profession_info_tab");
		int newID=1;
		if (!rs.IsEOF())
		{
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				newID=var.m_iVal+1;
		}
		
		sql.Format("Insert into profession_info_tab(profession_id, "
			"profession_name) "
			"values("
			"%d,'%s')",newID,m_strConfigProfession);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		InsertConfigItem(&m_listProfession,newID,m_strConfigProfession);
		RefreshAreaComboData();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnProfessionDel() 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listProfession.GetNextItem(-1,LVNI_SELECTED);
	if(nItem==-1)
	{
		AfxMessageBox("没有选择要删除的职业信息");
		return;
	}
	int id=atoi(m_listProfession.GetItemText(nItem,0));
	TRY 
	{
		CString deleteSql;
		deleteSql.Format("delete from profession_info_tab where profession_id=%d",id);
		m_db.ExecuteSQL(deleteSql);
		m_listProfession.DeleteItem(nItem);
		RefreshAreaComboData();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}

void CHRDBSDlg::OnBtnProfessionMod() 
{
	// TODO: Add your control notification handler code here
	if (!UpdateData())
		return;
	if(m_strConfigProfession.IsEmpty())
		return;
	int nItem=m_listProfession.GetNextItem(-1,LVNI_SELECTED);
	if (nItem==-1)
	{
		AfxMessageBox("没有选择要修改的职业信息");
		return;
	}
	int id=atoi(m_listProfession.GetItemText(nItem,0));
	TRY 
	{
		CRecordset rs(&m_db);
		CString sql;
		sql.Format("update profession_info_tab "
			"set profession_name='%s' "
			"where profession_id=%d",m_strConfigProfession,id);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		m_listProfession.SetItemText(nItem,1,m_strConfigProfession);
		RefreshAreaComboData();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnStatQuery() 
{
	// TODO: Add your control notification handler code here
	CStatQueryDlg dlg;
	dlg.m_pDB=&m_db;
	dlg.DoModal();
	
}

void CHRDBSDlg::OnBtnVocationAdd() 
{
	// TODO: Add your control notification handler code here
	if (!UpdateData())
		return;
	if(m_strConfigVocation.IsEmpty())
		return;
	TRY 
	{
		CRecordset rs(&m_db);
		CString sql;
		rs.Open(CRecordset::dynaset,
			"select max(vocation_id) from vocation_info_tab");
		int newID=1;
		if (!rs.IsEOF())
		{
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType !=DBVT_NULL)
				newID=var.m_iVal+1;
		}
		
		sql.Format("Insert into vocation_info_tab(vocation_id, "
			"vocation_name) "
			"values("
			"%d,'%s')",newID,m_strConfigVocation);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		InsertConfigItem(&m_listVocation,newID,m_strConfigVocation);
		RefreshAreaComboData();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnVocationDel() 
{
	// TODO: Add your control notification handler code here
	int nItem=m_listVocation.GetNextItem(-1,LVNI_SELECTED);
	if(nItem==-1)
	{
		AfxMessageBox("没有选择要删除的行业信息");
		return;
	}
	int id=atoi(m_listVocation.GetItemText(nItem,0));
	TRY 
	{
		CString deleteSql;
		deleteSql.Format("delete from vocation_info_tab where vocation_id=%d",id);
		m_db.ExecuteSQL(deleteSql);
		m_listVocation.DeleteItem(nItem);
		RefreshAreaComboData();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::OnBtnVocationMod() 
{
	// TODO: Add your control notification handler code here
	if (!UpdateData())
		return;
	if(m_strConfigVocation.IsEmpty())
		return;
	int nItem=m_listVocation.GetNextItem(-1,LVNI_SELECTED);
	if (nItem==-1)
	{
		AfxMessageBox("没有选择要修改的行业信息");
		return;
	}
	int id=atoi(m_listVocation.GetItemText(nItem,0));
	TRY 
	{
		CRecordset rs(&m_db);
		CString sql;
		sql.Format("update vocation_info_tab "
			"set vocation_name='%s' "
			"where vocation_id=%d",m_strConfigVocation,id);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		m_listVocation.SetItemText(nItem,1,m_strConfigVocation);
		RefreshAreaComboData();
	}
	CATCH (CDBException, ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	
	AND_CATCH(CException, e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CHRDBSDlg::InitControl()
{
	DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|
		LVS_EX_HEADERDRAGDROP|LVS_EX_UNDERLINEHOT|LVS_EX_ONECLICKACTIVATE;
	m_listArea.SetExtendedStyle(dwExStyle);
	m_listApproach.SetExtendedStyle(dwExStyle);
	m_listHR.SetExtendedStyle(dwExStyle);
	m_listProfession.SetExtendedStyle(dwExStyle);
	m_listVocation.SetExtendedStyle(dwExStyle);

	m_listArea.InsertColumn(0,"地区ID",LVCFMT_CENTER,50);
	m_listArea.InsertColumn(1,"地区名称",LVCFMT_CENTER,90);

	m_listApproach.InsertColumn(0,"认识途径ID",LVCFMT_CENTER,50);
	m_listApproach.InsertColumn(1,"认识途径名称",LVCFMT_CENTER,90);

	m_listProfession.InsertColumn(0,"职位ID",LVCFMT_CENTER,50);
	m_listProfession.InsertColumn(1,"职位",LVCFMT_CENTER,90);

	m_listVocation.InsertColumn(0,"行业ID",LVCFMT_CENTER,50);

⌨️ 快捷键说明

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