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

📄 namequrydlg.cpp

📁 公交查询系统源代码 是武汉的 提供简单的查询和乘车方案 vc++
💻 CPP
字号:
// NameQuryDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Public_TGIS.h"
#include "NameQuryDlg.h"
#include "MainFrm.h"
#include "Public_TGISView.h"
#include "MapControlView.h"
#include "AppApi.h"
#include "Crack.h"

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

/////////////////////////////////////////////////////////////////////////////
// CNameQuryDlg dialog


CNameQuryDlg::CNameQuryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNameQuryDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNameQuryDlg)
	m_BothCondt = FALSE;
	m_NameCondt = FALSE;
	m_PhoneCondt = FALSE;
	//}}AFX_DATA_INIT

}

CNameQuryDlg::~CNameQuryDlg()
{
}
void CNameQuryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNameQuryDlg)
	DDX_Control(pDX, IDC_NAMEQUERY_CHILDCLASS, m_ChildFilter);
	DDX_Control(pDX, IDC_NAMEQUERY_MAINCLASS, m_MainFilter);
	DDX_Control(pDX, IDC_NAMEQUERY_PHONEEDIT, m_PhoneEdt);
	DDX_Control(pDX, IDC_NEMEQUERY_NEMEEDIT, m_NameEdt);
	DDX_Check(pDX, IDC_NAMEQUERY_BOTHCONDT, m_BothCondt);
	DDX_Check(pDX, IDC_NAMEQUERY_NAMECONDT, m_NameCondt);
	DDX_Check(pDX, IDC_NAMEQUERY_PHONECONDT, m_PhoneCondt);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNameQuryDlg, CDialog)
	//{{AFX_MSG_MAP(CNameQuryDlg)
	ON_CBN_SELCHANGE(IDC_NAMEQUERY_MAINCLASS, OnSelchangeNamequeryMainclass)
	ON_BN_CLICKED(IDC_NAMEQUERY_EXECUTEBTN, OnNamequeryExecutebtn)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNameQuryDlg message handlers

BOOL CNameQuryDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	CPublic_TGISView* pMapView = (CPublic_TGISView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
	//初始化大类过滤器	
	pMapView->LoadFilter(&m_MainFilter);
	//初始化中类过滤器
	pMapView->LoadFilter2(&m_ChildFilter, "(全部类型)", false);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CNameQuryDlg::OnSelchangeNamequeryMainclass() 
{
	// TODO: Add your control notification handler code here
	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	CPublic_TGISView* pMapView = (CPublic_TGISView*)(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::OnNamequeryExecutebtn() 
{
	// TODO: Add your control notification handler code here
	// 刷新对话框
	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 + -