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

📄 detailquerydlg.cpp

📁 设备管理系统
💻 CPP
字号:
// DetailQueryDlg.cpp : implementation file
//

#include "stdafx.h"
#include "HRDBS.h"
#include "DetailQueryDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDetailQueryDlg dialog


CDetailQueryDlg::CDetailQueryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDetailQueryDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDetailQueryDlg)
	m_strSelectedApproach = _T("");
	m_strSelectedArea = _T("");
	m_strSelectedProfession = _T("");
	m_strSelectedVocation = _T("");
	//}}AFX_DATA_INIT
}


void CDetailQueryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDetailQueryDlg)
	DDX_Control(pDX, IDC_LIST_HR, m_listHR);
	DDX_Control(pDX, IDC_COMBO_VOCATION, m_comboVocation);
	DDX_Control(pDX, IDC_COMBO_PROFESSION, m_comboProfession);
	DDX_Control(pDX, IDC_COMBO_AREA, m_comboArea);
	DDX_Control(pDX, IDC_COMBO_APPROACH, m_comboApproach);
	DDX_CBString(pDX, IDC_COMBO_APPROACH, m_strSelectedApproach);
	DDX_CBString(pDX, IDC_COMBO_AREA, m_strSelectedArea);
	DDX_CBString(pDX, IDC_COMBO_PROFESSION, m_strSelectedProfession);
	DDX_CBString(pDX, IDC_COMBO_VOCATION, m_strSelectedVocation);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDetailQueryDlg, CDialog)
	//{{AFX_MSG_MAP(CDetailQueryDlg)
	ON_CBN_CLOSEUP(IDC_COMBO_APPROACH, OnCloseupComboApproach)
	ON_CBN_CLOSEUP(IDC_COMBO_AREA, OnCloseupComboArea)
	ON_CBN_CLOSEUP(IDC_COMBO_PROFESSION, OnCloseupComboProfession)
	ON_CBN_CLOSEUP(IDC_COMBO_VOCATION, OnCloseupComboVocation)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDetailQueryDlg message handlers

BOOL CDetailQueryDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	InitComboData();
	InitControl();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDetailQueryDlg::InitComboData()
{
	TRY 
	{
		CRecordset rs(m_pDB);
		rs.Open(CRecordset::dynaset,"select * from area_info_tab");
		while (!rs.IsEOF())
		{
		     CString strName;
			 rs.GetFieldValue(1,strName);
			 m_comboArea.AddString(strName);
			 rs.MoveNext();
		}
		rs.Close();
		m_comboArea.SetCurSel(0);

		rs.Open(CRecordset::dynaset,"select * from approach_info_tab");
		while (!rs.IsEOF())
		{
			CString strName;
			rs.GetFieldValue(1,strName);
			m_comboApproach.AddString(strName);
			rs.MoveNext();
		}
		rs.Close();
		m_comboApproach.SetCurSel(0);


		rs.Open(CRecordset::dynaset,"select * from profession_info_tab");
		while (!rs.IsEOF())
		{
			CString strName;
			rs.GetFieldValue(1,strName);
			m_comboProfession.AddString(strName);
			rs.MoveNext();
		}
		rs.Close();
		m_comboProfession.SetCurSel(0);

		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);
		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 CDetailQueryDlg::OnCloseupComboApproach() 
{
	// TODO: Add your control notification handler code here
	CString sql;
	CString strSelected;
	
	int nIndex=m_comboApproach.GetCurSel();
	if(nIndex==-1)
		return;
	m_comboApproach.GetLBText(nIndex,strSelected);
	if(strSelected.IsEmpty())
		return;
	sql.Format("select * from human_info_tab where approach='%s' order by id",
		strSelected);
	RefreshCtrlData(sql);
	
}

void CDetailQueryDlg::OnCloseupComboArea() 
{
	// TODO: Add your control notification handler code here
	CString sql;
	CString strSelected;

	int nIndex=m_comboArea.GetCurSel();
	if(nIndex==-1)
		return;
	m_comboArea.GetLBText(nIndex,strSelected);
	if(strSelected.IsEmpty())
		return;
	sql.Format("select * from human_info_tab where area='%s' order by id",
		strSelected);
	RefreshCtrlData(sql);
	
}

void CDetailQueryDlg::OnCloseupComboProfession() 
{
	// TODO: Add your control notification handler code here
	CString sql;
	CString strSelected;
	
	int nIndex=m_comboProfession.GetCurSel();
	if(nIndex==-1)
		return;
	m_comboProfession.GetLBText(nIndex,strSelected);
	if(strSelected.IsEmpty())
		return;
	sql.Format("select * from human_info_tab where profession='%s' order by id",
		strSelected);
	RefreshCtrlData(sql);
	
}

void CDetailQueryDlg::OnCloseupComboVocation() 
{
	// TODO: Add your control notification handler code here
	CString sql;
	CString strSelected;
	
	int nIndex=m_comboVocation.GetCurSel();
	if(nIndex==-1)
		return;
	m_comboVocation.GetLBText(nIndex,strSelected);
	if(strSelected.IsEmpty())
		return;
	sql.Format("select * from human_info_tab where vocation='%s' order by id",
		strSelected);
	RefreshCtrlData(sql);
	
}

void CDetailQueryDlg::RefreshCtrlData(CString sql)
{
	if (!m_pDB->IsOpen())
	{
		MessageBox("数据库未打开");
		return;
	}
	m_listHR.DeleteAllItems();
	TRY 
	{
		CRecordset rs(m_pDB);
		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 CDetailQueryDlg::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 CDetailQueryDlg::InitControl()
{
	DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|
		LVS_EX_HEADERDRAGDROP|LVS_EX_UNDERLINEHOT|LVS_EX_ONECLICKACTIVATE;
	m_listHR.SetExtendedStyle(dwExStyle);
	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);
}

⌨️ 快捷键说明

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