📄 statquerydlg.cpp
字号:
// StatQueryDlg.cpp : implementation file
//
#include "stdafx.h"
#include "HRDBS.h"
#include "StatQueryDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CStatQueryDlg dialog
CStatQueryDlg::CStatQueryDlg(CWnd* pParent /*=NULL*/)
: CDialog(CStatQueryDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CStatQueryDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CStatQueryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CStatQueryDlg)
DDX_Control(pDX, IDC_LIST_VOCATION, m_listVocation);
DDX_Control(pDX, IDC_LIST_PROFESSION, m_listProfession);
DDX_Control(pDX, IDC_LIST_AREA, m_listArea);
DDX_Control(pDX, IDC_LIST_APPROACH, m_listApproach);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CStatQueryDlg, CDialog)
//{{AFX_MSG_MAP(CStatQueryDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStatQueryDlg message handlers
void CStatQueryDlg::InitListData()
{
if (!m_pDB->IsOpen())
{
MessageBox("数据库未打开");
return;
}
TRY
{
CRecordset rs(m_pDB);
rs.Open(CRecordset::dynaset,"select area,count(area) from "
"human_info_tab group by area");
while(!rs.IsEOF())
{
int count;
CString area;
CDBVariant var;
rs.GetFieldValue((short)0,area);
rs.GetFieldValue(1,var,SQL_C_SLONG);
if(var.m_dwType !=DBVT_NULL)
count =var.m_iVal;
var.Clear();
InsertListItem(&m_listArea,area,count);
rs.MoveNext();
}
rs.Close();
rs.Open(CRecordset::dynaset,"select approach,count(approach) from "
"human_info_tab group by approach");
while(!rs.IsEOF())
{
int count;
CString approach;
CDBVariant var;
rs.GetFieldValue((short)0,approach);
rs.GetFieldValue(1,var,SQL_C_SLONG);
if(var.m_dwType !=DBVT_NULL)
count =var.m_iVal;
var.Clear();
InsertListItem(&m_listApproach,approach,count);
rs.MoveNext();
}
rs.Close();
rs.Open(CRecordset::dynaset,"select profession,count(profession) from "
"human_info_tab group by profession");
while(!rs.IsEOF())
{
int count;
CString profession;
CDBVariant var;
rs.GetFieldValue((short)0,profession);
rs.GetFieldValue(1,var,SQL_C_SLONG);
if(var.m_dwType !=DBVT_NULL)
count =var.m_iVal;
var.Clear();
InsertListItem(&m_listProfession,profession,count);
rs.MoveNext();
}
rs.Close();
rs.Open(CRecordset::dynaset,"select vocation,count(vocation) from "
"human_info_tab group by vocation");
while(!rs.IsEOF())
{
int count;
CString vocation;
CDBVariant var;
rs.GetFieldValue((short)0,vocation);
rs.GetFieldValue(1,var,SQL_C_SLONG);
if(var.m_dwType !=DBVT_NULL)
count =var.m_iVal;
var.Clear();
InsertListItem(&m_listVocation,vocation,count);
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 CStatQueryDlg::InsertListItem(CListCtrl* pList,CString name,int value)
{
int nIndex=pList->GetItemCount();
LV_ITEM lvItem;
lvItem.mask=LVIF_TEXT;
lvItem.iItem=nIndex;
lvItem.iSubItem=0;
lvItem.pszText=(char*)(LPCTSTR)name;
pList->InsertItem(&lvItem);
CString temp;
temp.Format("%d",value);
pList->SetItemText(nIndex,1,temp);
}
void CStatQueryDlg::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_listProfession.SetExtendedStyle(dwExStyle);
m_listVocation.SetExtendedStyle(dwExStyle);
m_listArea.InsertColumn(1,"数目",LVCFMT_CENTER,50);
m_listArea.InsertColumn(0,"地区名称",LVCFMT_CENTER,90);
m_listApproach.InsertColumn(1,"数目",LVCFMT_CENTER,50);
m_listApproach.InsertColumn(0,"认识途径名称",LVCFMT_CENTER,90);
m_listProfession.InsertColumn(1,"数目",LVCFMT_CENTER,50);
m_listProfession.InsertColumn(0,"职位名称",LVCFMT_CENTER,90);
m_listVocation.InsertColumn(1,"数目",LVCFMT_CENTER,50);
m_listVocation.InsertColumn(0,"行业名称",LVCFMT_CENTER,90);
}
BOOL CStatQueryDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitControl();
InitListData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -