📄 detailquerydlg.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 + -