📄 busquerydlg.cpp
字号:
// 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 + -