?? 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 + -