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 + -
显示快捷键?