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

📄 busquerydlg.cpp

📁 程序编写环境为Visual Studio.NET 2002
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// BusQueryDlg.cpp : implementation file
//

#include "stdafx.h"
#include "NameGis.h"
#include "BusQueryDlg.h"
#include "MainFrm.h"
#include "MapControlView.h"
#include "AppApi.h"
#include "Crack.h"
#include "NameGisView.h"
#include "HawkView.h"
#include "MoPoint.h"
#include "MoLine.h"
#include "MoFields.h"
#include "MoField.h"
#include "MoParts.h"
#include "MapObjects2.h"
#include "StationDlg.h"
#include "LineDlg.h"
#include "BusDlg.h"
// CBusQueryDlg dialog

IMPLEMENT_DYNAMIC(CBusQueryDlg, CDialog)
CBusQueryDlg::CBusQueryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBusQueryDlg::IDD, pParent)
{
}

CBusQueryDlg::~CBusQueryDlg()
{
}

void CBusQueryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_BUSQUERY_NAMELIST, m_NameList);
}


BEGIN_MESSAGE_MAP(CBusQueryDlg, CDialog)
	ON_EN_CHANGE(IDC_BUSQUERY_NAMEEDT, OnEnChangeBusqueryNameedt)
	ON_BN_CLICKED(IDC_BUSQUERY_STATIONCONDT, OnBnClickedBusqueryStationcondt)
	ON_BN_CLICKED(IDC_BUSQUERY_LINECONDT, OnBnClickedBusqueryLinecondt)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK1, OnBnClickedBusqueryCheck1)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK2, OnBnClickedBusqueryCheck2)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK3, OnBnClickedBusqueryCheck3)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK4, OnBnClickedBusqueryCheck4)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK5, OnBnClickedBusqueryCheck5)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK6, OnBnClickedBusqueryCheck6)
	ON_BN_CLICKED(IDC_BUSQUERY_CHECK7, OnBnClickedCheck7)
	ON_LBN_SELCHANGE(IDC_BUSQUERY_NAMELIST, OnLbnSelchangeBusqueryNamelist)
	ON_LBN_DBLCLK(IDC_BUSQUERY_NAMELIST, OnLbnDblclkBusqueryNamelist)
	ON_BN_CLICKED(IDC_BUSQUERY_QUERY, OnBnClickedBusqueryQuery)
END_MESSAGE_MAP()


// CBusQueryDlg message handlers
//-----------------------------------------------------------------------------------------
BOOL CBusQueryDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 设置Checked状态
	((CButton*)GetDlgItem(IDC_BUSQUERY_STATIONCONDT))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK1))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK2))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK3))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK4))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK5))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK6))->SetCheck(BST_CHECKED);
	((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK7))->SetCheck(BST_CHECKED);
	// 设置公交查询类型过滤字符串
	SetBusFilter();
	// 在列表框中加入公交站点或公交路线名称
	LoadBusData();	

	return TRUE;  
}
//-----------------------------------------------------------------------------------------
// 设置公交查询类型过滤字符串
void CBusQueryDlg::SetBusFilter()
{
	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	pMainWnd->m_environment.m_bPathInit = false;
	CString szFilter = "";
    
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK1))->GetCheck())
		szFilter = "'市区路线'";
	
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK2))->GetCheck())
	{
		if (szFilter != "")
			szFilter += ",'郊区路线'";
		else
			szFilter = "'郊区路线'";
	}
    
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK3))->GetCheck())
	{
		if (szFilter != "")
			szFilter += ",'运通专线'";
		else
			szFilter = "'运通专线'";
	}
    
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK4))->GetCheck())
	{
		if (szFilter != "")
			szFilter += ",'巴士专线'";
		else
			szFilter = "'巴士专线'";
	}
    
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK5))->GetCheck())
	{
		if (szFilter != "")
			szFilter += ",'专线长途公共汽车'";
		else
			szFilter = "'专线长途公共汽车'";
	}
    
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK6))->GetCheck())
	{
		if (szFilter != "")
			szFilter += ",'夜班车路线'";
		else
			szFilter = "'夜班车路线'";
	}
    
	if (((CButton*)GetDlgItem(IDC_BUSQUERY_CHECK7))->GetCheck())
	{
		if (szFilter != "")
			szFilter += ",'地铁车'";
		else
			szFilter = "'地铁车'";
	}
    
	if (szFilter != "")
		pMainWnd->m_environment.m_szBusFilter = "类型 In (" + szFilter + ")";
	else
		pMainWnd->m_environment.m_szBusFilter = "";
}
//-----------------------------------------------------------------------------------------
// 在列表框中加入公交站点或公交路线名称
BOOL CBusQueryDlg::LoadBusData()
{
	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;
	}

	m_NameList.ResetContent();
	CDaoRecordset rs(tmpDB);
	try
	{
		CString szSQL;
        
		if (((CButton*)GetDlgItem(IDC_BUSQUERY_STATIONCONDT))->GetCheck())
		{
			if (pMainWnd->m_environment.m_szBusFilter  == "")
				szSQL = "Select distinct 站名 From 公交车站路线 Order By 站名";
			else
				szSQL = "Select distinct 站名 From 公交车站路线 Where "
				  + pMainWnd->m_environment.m_szBusFilter +" Order By 站名";

			rs.Open(dbOpenDynaset, szSQL);
			while(!rs.IsEOF())
			{
				COleVariant var;
				var = rs.GetFieldValue("站名");
				CString str = CCrack::strVARIANT(var);
				m_NameList.AddString(str);

				rs.MoveNext();
			}
		}
		else
		{
			if (pMainWnd->m_environment.m_szBusFilter  == "")
				szSQL = "Select distinct 线路名 From 公交车站路线 Order By 线路名";
			else
				szSQL = "Select distinct 线路名 From 公交车站路线 Where "
				  + pMainWnd->m_environment.m_szBusFilter + " Order By 线路名";
            
			rs.Open(dbOpenDynaset, szSQL);
			while(!rs.IsEOF())
			{
				COleVariant var;
				var = rs.GetFieldValue("线路名");
				CString str = CCrack::strVARIANT(var);
				m_NameList.AddString(str);

				rs.MoveNext();
			}
		}
	}
	catch (CDaoException* e)
	{
		DisplayDaoException(e);
		tmpDB->Close();
		delete tmpDB;
		e->Delete();
		return FALSE;
	}

	if(tmpDB)
	{
		if(tmpDB->IsOpen())
		{
			tmpDB->Close();
		}

		delete tmpDB;
		tmpDB = NULL;
	}

	GetDlgItem(IDC_BUSQUERY_NAMEEDT)->SetWindowText("");
}
//-----------------------------------------------------------------------------------------
void CBusQueryDlg::OnEnChangeBusqueryNameedt()
{
	CString strName;	
	// 得到当前文本框中的字符串
	GetDlgItem(IDC_BUSQUERY_NAMEEDT)->GetWindowText(strName);
	// 在列表框中进行查询
	int nIndex = m_NameList.FindString(0, strName);
	if(nIndex != LB_ERR)
		// 设置为当前选择项
		m_NameList.SetCurSel(nIndex);
}
//-----------------------------------------------------------------------------------------
void CBusQueryDlg::OnBnClickedBusqueryStationcondt()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -