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

📄 namequrydlg.cpp

📁 程序编写环境为Visual Studio.NET 2002
💻 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 + -