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

📄 linedlg.cpp

📁 公交查询生成系统 Find.exe可以查询指定站点间的转站方案(可实现无限转)
💻 CPP
字号:
// LineDlg.cpp : implementation file
//

#include "stdafx.h"
#include "find.h"
#include "LineDlg.h"
#include "findDlg.h"
#include "path.h"


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

extern CFindApp theApp;  // 在此引用应用类中的theApp来获取库连接指针
/////////////////////////////////////////////////////////////////////////////
// CLineDlg dialog


CLineDlg::CLineDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLineDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLineDlg)
	m_edit = _T("");
	m_line = _T("");
	//}}AFX_DATA_INIT
}


void CLineDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLineDlg)
	DDX_Control(pDX, IDC_COMBO1, m_Combo3);
	DDX_Text(pDX, IDC_EDIT1, m_edit);
	DDX_CBString(pDX, IDC_COMBO1, m_line);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLineDlg, CDialog)
	//{{AFX_MSG_MAP(CLineDlg)
	ON_BN_CLICKED(IDC_LINE, OnLine)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLineDlg message handlers

BOOL CLineDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	_variant_t var;
	// TODO: Add extra initialization here
		m_pRecordset.CreateInstance(__uuidof(Recordset));
		m_pRecordset->Open("SELECT * FROM 线路总表",                // 查询站点表中所有字段
								theApp.m_pConnection.GetInterfacePtr(),	 // 获取库接库的IDispatch指针
								adOpenDynamic,
								adLockOptimistic,
								adCmdText);	
		try
		{
			if(!m_pRecordset->BOF)
				m_pRecordset->MoveFirst();
			else
			{
				AfxMessageBox("表内数据为空");
				return false;
			}
			// 读入库中各字段并加入列表框中
			while(!m_pRecordset->adoEOF)
			{
				var = m_pRecordset->GetCollect("线路");
				if(var.vt != VT_NULL)
					m_Combo3.AddString((LPCSTR)_bstr_t(var));
				m_pRecordset->MoveNext();
			}
		}
		catch(_com_error *e)
		{
			AfxMessageBox(e->ErrorMessage());
		}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CLineDlg::OnLine() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	_variant_t var;
	long num=0;
	
		m_edit = "线路名称:" + m_line +"\r\n";
		m_pRecordset.CreateInstance(__uuidof(Recordset));
		m_pRecordset->Open("SELECT * FROM 线路总表",                // 查询站点表中所有字段
							theApp.m_pConnection.GetInterfacePtr(),	 // 获取库接库的IDispatch指针
							adOpenDynamic,
							adLockOptimistic,
							adCmdText);	
		try
		{
			if(!m_pRecordset->BOF)
				m_pRecordset->MoveFirst();
			else
			{
				AfxMessageBox("线路总表内数据为空");
			}
			// 读入库中各字段并加入列表框中
			while(!m_pRecordset->adoEOF)
			{
				var = m_pRecordset->GetCollect("线路");
				if(var.vt != VT_NULL)
				{
					if((LPCSTR)_bstr_t(var) == m_line)
					{	
						var = m_pRecordset->GetCollect("汽车类型");
						m_edit += "汽车类型:";
						m_edit += (LPCSTR)_bstr_t(var);
						var = m_pRecordset->GetCollect("票价");
						m_edit += "   票价:";
						m_edit += (LPCSTR)_bstr_t(var);
						m_edit += " 元";
						var = m_pRecordset->GetCollect("发车时间");
						m_edit += "\r\n发车时间:";
						m_edit += (LPCSTR)_bstr_t(var);
						var = m_pRecordset->GetCollect("结束时间");
						m_edit += "\r\n结束时间:";
						m_edit += (LPCSTR)_bstr_t(var);
						var = m_pRecordset->GetCollect("站点数");
						num = var;
						m_edit += "\r\n站点数:";
						m_edit += (LPCSTR)_bstr_t(var);
						var = m_pRecordset->GetCollect("起点站");
						m_edit += "\r\n起点站:";
						m_edit += (LPCSTR)_bstr_t(var);
						var = m_pRecordset->GetCollect("终点站");
						m_edit += "\r\n终点站:";
						m_edit += (LPCSTR)_bstr_t(var);
						var = m_pRecordset->GetCollect("线路总长");
						m_edit += "\r\n线路总长:";
						m_edit += (LPCSTR)_bstr_t(var);
						break;
					}
				}
				m_pRecordset->MoveNext();
			}
		}
		catch(_com_error *e)
		{
			AfxMessageBox(e->ErrorMessage());
		}

		m_edit += "\r\n乘车线路:";

		m_pRecordset.CreateInstance(__uuidof(Recordset));
		m_pRecordset->Open(_variant_t("SELECT * FROM " + m_line),                // 查询站点表中所有字段
							theApp.m_pConnection.GetInterfacePtr(),	 // 获取库接库的IDispatch指针
							adOpenDynamic,
							adLockOptimistic,
							adCmdText);	
		try
		{
			if(!m_pRecordset->BOF)
				m_pRecordset->MoveFirst();
			else
			{
				AfxMessageBox("m_line+表内数据为空");
			}
			// 读入库中各字段并加入列表框中
			while(!m_pRecordset->adoEOF)
			{
				var = m_pRecordset->GetCollect("站点");
				if(var.vt != VT_NULL)
				{
					if(num>1)
					{
						m_edit +=(LPCSTR)_bstr_t(var);
						m_edit +="-";
						num--;
					}
					else
					{
						m_edit +=(LPCSTR)_bstr_t(var);
					}
				}
				m_pRecordset->MoveNext();
			}
		}
		catch(_com_error *e)
		{
			AfxMessageBox(e->ErrorMessage());
		}
		UpdateData(FALSE);
}

⌨️ 快捷键说明

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