📄 namequrydlg.cpp
字号:
// NameQuryDlg.cpp : implementation file
//
#include "stdafx.h"
#include "NameGis.h"
#include "NameQuryDlg.h"
#include "MainFrm.h"
#include "NameGisView.h"
#include "MapControlView.h"
#include "AppApi.h"
#include "Crack.h"
// CNameQuryDlg dialog
IMPLEMENT_DYNAMIC(CNameQuryDlg, CDialog)
CNameQuryDlg::CNameQuryDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNameQuryDlg::IDD, pParent)
, m_BothCondt(FALSE)
, m_NameCondt(FALSE)
, m_PhoneCondt(FALSE)
{
}
CNameQuryDlg::~CNameQuryDlg()
{
}
void CNameQuryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_NAMEQUERY_NAMEEDIT, m_NameEdt);
DDX_Control(pDX, IDC_NAMEQUERY_PHONEEDIT, m_PhoneEdt);
DDX_Control(pDX, IDC_NAMEQUERY_MAINCLASS, m_MainFilter);
DDX_Control(pDX, IDC_NAMEQUERY_CHILDCLASS, m_ChildFilter);
DDX_Check(pDX, IDC_NAMEQUERY_BOTHCONDT, m_BothCondt);
DDX_Check(pDX, IDC_NAMEQUERY_NAMECONDT, m_NameCondt);
DDX_Check(pDX, IDC_NAMEQUERY_PHONECONDT, m_PhoneCondt);
}
BEGIN_MESSAGE_MAP(CNameQuryDlg, CDialog)
ON_CBN_SELCHANGE(IDC_NAMEQUERY_MAINCLASS, OnCbnSelchangeNamequeryMainclass)
ON_BN_CLICKED(IDC_NAMEQUERY_EXECUTEBTN, OnBnClickedNamequeryExecutebtn)
END_MESSAGE_MAP()
// CNameQuryDlg message handlers
//----------------------------------------------------------------------------------------------
BOOL CNameQuryDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
//初始化大类过滤器
pMapView->LoadFilter(&m_MainFilter);
//初始化中类过滤器
pMapView->LoadFilter2(&m_ChildFilter, "(全部类型)", false);
return TRUE;
}
//----------------------------------------------------------------------------------------------
void CNameQuryDlg::OnCbnSelchangeNamequeryMainclass()
{
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
CString szType;
m_MainFilter.GetLBText(m_MainFilter.GetCurSel(), szType);
pMapView->LoadFilter2(&m_ChildFilter, szType, false);
m_ChildFilter.SetCurSel(0);
}
//----------------------------------------------------------------------------------------------
void CNameQuryDlg::OnBnClickedNamequeryExecutebtn()
{
// 刷新对话框
UpdateData(TRUE);
CString szSQL = "";
CString szSQL2 = "";
CString szFilter = "";
CString szType;
// 得到大类类型
m_MainFilter.GetLBText(m_MainFilter.GetCurSel(), szType);
CString szSubType;
// 得到中类类型
m_ChildFilter.GetLBText(m_ChildFilter.GetCurSel(), szSubType);
if ((szSubType == "(全部子类型)") || ("" == szSubType))
{
if((szType != "") && (szType != "(全部类型)"))
{
szFilter = "类型='" + szType + "' ";
}
}
else
{
szFilter = "中类型='" + szSubType + "' ";
}
CString strName;
// 得到用户输入的地名
m_NameEdt.GetWindowText(strName);
if ( strName != "")
{
if (m_NameCondt)
szSQL = "(名称 like '" + strName + "%')";
else
szSQL = "(名称 like '" + strName + "')";
}
CString strPhone;
// 得到用户输入的电话
m_PhoneEdt.GetWindowText(strPhone);
if (strPhone != "" )
{
if (m_PhoneCondt)
szSQL2 = "(电话 like '" + strPhone + "%')";
else
szSQL2 = "(电话 like '" + strPhone + "')";
}
// 设置查询语句
if (szSQL == "" )
{
szSQL = szSQL2;
}
else
{
if (szSQL2 != "")
if (m_BothCondt)
szSQL = szSQL + " And " + szSQL2;
else
szSQL = szSQL + " Or " + szSQL2;
}
if (szFilter != "")
{
if (szSQL == "")
szSQL = szFilter;
else
szSQL = szSQL + " AND (" + szFilter + ")";
}
Query(szSQL);
}
//----------------------------------------------------------------------------------------------
//功能:查询结果显示在“查询结果”面板上
BOOL CNameQuryDlg::Query(CString szFilter)
{
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CMapControlView* pCtrlView = (CMapControlView*)(pMainWnd->
m_wndSplitter2.GetPane(0,0));
CDaoDatabase* tmpDB = new CDaoDatabase;
try
{
tmpDB->Open(pMainWnd->m_environment.m_szDBName);
}
catch (CDaoException* e)
{
DisplayDaoException(e);
delete tmpDB;
e->Delete();
return FALSE;
}
CDaoRecordset rs(tmpDB);
try
{
CString szSQL;
if (szFilter == "")
szSQL = "Select * From 地名索引 Order By 名称";
else
szSQL = "Select * From 地名索引 Where " + szFilter +" Order By 名称";
rs.Open(dbOpenDynaset, szSQL);
int nCount = rs.GetRecordCount();
CListBox* pResultListBox = &(pCtrlView->m_ResultListBox);
pResultListBox->ResetContent();
COleVariant var;
while(!rs.IsEOF())
{
var = rs.GetFieldValue("名称");
pResultListBox->AddString(CCrack::strVARIANT(var));
rs.MoveNext();
}
pResultListBox->AddString("北师大出版社");
pResultListBox->AddString("北师大出版社读者服务部");
}
catch (CDaoException* e)
{
DisplayDaoException(e);
tmpDB->Close();
delete tmpDB;
e->Delete();
return FALSE;
}
if(tmpDB)
{
if(tmpDB->IsOpen())
{
tmpDB->Close();
}
delete tmpDB;
tmpDB = NULL;
}
pCtrlView->m_OperaTab.SetCurSel(2);
pCtrlView->m_MapIndexTreeView.ModifyStyle(WS_VISIBLE, 0, 0);
pCtrlView->m_LayerTreeView.ModifyStyle(WS_VISIBLE, 0, 0);
pCtrlView->m_ResultListBox.ModifyStyle(0, WS_VISIBLE, 0);
pCtrlView->m_ContentBtn.ModifyStyle(0, WS_VISIBLE, 0);
pCtrlView->m_PositingBtn.ModifyStyle(0, WS_VISIBLE, 0);
pCtrlView->Invalidate(TRUE);
return TRUE;
}
//----------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -