dlgsearch.cpp

来自「1.解压后在sql2000中建立数据库flight,然后用本文件中的flight」· C++ 代码 · 共 134 行

CPP
134
字号
// DlgSearch.cpp : implementation file
//

#include "stdafx.h"
#include "AirLine.h"
#include "MainFrm.h"
#include "AirLineDoc.h"
#include "AirLineView.h"
#include "DlgSearch.h"
#include "DlgBuy.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgSearch dialog


CDlgSearch::CDlgSearch(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgSearch::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgSearch)
	m_EdtStart = _T("");
	m_EdtEnd = _T("");
	//}}AFX_DATA_INIT
}


void CDlgSearch::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgSearch)
	DDX_Control(pDX, IDC_DATETIMEPICKER1, m_date);
	DDX_Control(pDX, IDC_EdtStart, m_edit);
	DDX_Control(pDX, IDC_COMBO1, m_comPart);
	DDX_Text(pDX, IDC_EdtStart, m_EdtStart);
	DDX_Text(pDX, IDC_EdtEnd, m_EdtEnd);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgSearch, CDialog)
	//{{AFX_MSG_MAP(CDlgSearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgSearch message handlers

BOOL CDlgSearch::OnInitDialog() 
{

	CDialog::OnInitDialog();
	m_comPart.AddString("经济舱");
	m_comPart.AddString("公务舱");
	m_comPart.AddString("头等舱");
	m_comPart.SetCurSel(0);

	// TODO: Add extra initialization here
	m_edit.SetFocus();
	UpdateData();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CDlgSearch::OnOK() 
{
	CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
	CAirLineView *m_pView = (CAirLineView *)pFrame->GetActiveView();
	CDlgBuy dlg;
	UpdateData(TRUE);
	if( m_EdtStart=="" || m_EdtEnd=="")
		MessageBox("请把信息输入完整!","警告",MB_OK);
	else
	{
		float price=1.0+0.2*m_comPart.GetCurSel();
		CTime tm;
		m_date.GetTime(tm);
		strDate=tm.Format("%Y-%m-%d");
		m_comPart.GetLBText(m_comPart.GetCurSel(),part);
		ADOConn adoConn;
		_RecordsetPtr m_pRs;
		adoConn.OnInitADOConn();
		_bstr_t vsql;
		vsql=L"select * from flights where start_city='"+m_EdtStart+L"' and end_city='"+m_EdtEnd+"'";
		try{
			int i=0;
			int j=0;
			m_pRs=adoConn.GetRecordSet(vsql);
			while(!m_pRs->adoEOF)
			{
				m_pView->flights[i].start_city=(LPCTSTR)(_bstr_t)m_pRs->GetCollect("start_city");
				m_pView->flights[i].end_city=(LPCTSTR)(_bstr_t)m_pRs->GetCollect("end_city");
				m_pView->flights[i].start_time=(LPCTSTR)(_bstr_t)m_pRs->GetCollect("start_time");
				m_pView->flights[i].end_time=(LPCTSTR)(_bstr_t)m_pRs->GetCollect("end_time");
				m_pView->flights[i].id=(LPCTSTR)(_bstr_t)m_pRs->GetCollect("flight_num");
				m_pView->flights[i].price=atof((LPCTSTR)(_bstr_t)m_pRs->GetCollect("price"));
				m_pView->flights[i].num=atoi((LPCTSTR)(_bstr_t)m_pRs->GetCollect((_bstr_t)part));
				m_pView->flights[i].part=part;
				m_pView->flights[i].start_date=strDate;
				vsql="select * from list where 起飞日期='"+strDate+"' and 舱位='"+part+"' and 航班号='"+m_pView->flights[i].id+"'";
				//			AfxMessageBox(vsql);
				try{				
					_RecordsetPtr m_Rs=adoConn.GetRecordSet(vsql);
					while(!m_Rs->adoEOF)
					{
						j+=atoi((LPCTSTR)(_bstr_t)m_Rs->GetCollect("票数"));
						m_Rs->MoveNext();
					}
					m_pView->flights[i].num=m_pView->flights[i].num-j;
					j=0;
				}catch(_com_error e){
					AfxMessageBox(e.Description());
				}
				m_pView->flights[i].price*=price;
				i++;
				m_pRs->MoveNext();
			}
		}catch(_com_error e){
			AfxMessageBox(e.Description());
		}
		adoConn.ExitConnect();
	m_pView->ShowResult();
	CDialog::OnOK();
	}
}



⌨️ 快捷键说明

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