📄 airlineview.cpp
字号:
// AirLineView.cpp : implementation of the CAirLineView class
//
#include "stdafx.h"
#include "AirLine.h"
#include "AirLineDoc.h"
#include "AirLineView.h"
#include "ADOConn.h"
#include "DlgSearch.h"
#include "DlgBuy.h"
#include "DlgClient.h"
#include "DlgTicket.h"
#include "DlgCount.h"
#include "DlgLogin.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
BOOL f_buy=FALSE;
/////////////////////////////////////////////////////////////////////////////
// CAirLineView
IMPLEMENT_DYNCREATE(CAirLineView, CFormView)
BEGIN_MESSAGE_MAP(CAirLineView, CFormView)
//{{AFX_MSG_MAP(CAirLineView)
ON_BN_CLICKED(IDC_BtnSearch, OnBtnSearch)
ON_BN_CLICKED(IDC_BtnList, OnBtnList)
ON_BN_CLICKED(IDC_BtnCount, OnBtnCount)
ON_NOTIFY(NM_DBLCLK, IDC_InfoList, OnDblclkInfoList)
ON_BN_CLICKED(IDC_BtnClient, OnBtnClient)
ON_BN_CLICKED(IDC_BtnBack, OnBtnTicket)
ON_BN_CLICKED(IDC_BtnTicket, OnBtnTicket)
ON_WM_CREATE()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAirLineView construction/destruction
CAirLineView::CAirLineView()
: CFormView(CAirLineView::IDD)
{
//{{AFX_DATA_INIT(CAirLineView)
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CAirLineView::~CAirLineView()
{
}
void CAirLineView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAirLineView)
DDX_Control(pDX, IDC_InfoList, m_InfoList);
//}}AFX_DATA_MAP
}
BOOL CAirLineView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CAirLineView::OnInitialUpdate()
{
CDlgLogin dlg;
dlg.DoModal();
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
m_InfoList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
ShowList();
GetDlgItem(IDC_InfoList)->GetWindowRect(&rectList);
}
/////////////////////////////////////////////////////////////////////////////
// CAirLineView printing
BOOL CAirLineView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CAirLineView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CAirLineView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CAirLineView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// CAirLineView diagnostics
#ifdef _DEBUG
void CAirLineView::AssertValid() const
{
CFormView::AssertValid();
}
void CAirLineView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CAirLineDoc* CAirLineView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAirLineDoc)));
return (CAirLineDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CAirLineView message handlers
int CAirLineView::SetListHead(_RecordsetPtr m_Rs)
{
int nCols=0;
if(!m_Rs->adoEOF)
{
FieldsPtr pFds;
pFds=m_Rs->GetFields();
nCols=pFds->GetCount(); //得到列数
for(int row=0;row<nCols;row++)
m_InfoList.InsertColumn(row,pFds->GetItem((long)row)->GetName(),LVCFMT_LEFT,70);
}
return nCols;
}
void CAirLineView::OnBtnSearch()
{
// TODO: Add your control notification handler code here
CDlgSearch dlg;
dlg.DoModal();
}
void CAirLineView::ShowList()
{
ADOConn ado;
_RecordsetPtr m_pRs;
ado.OnInitADOConn();
_bstr_t vsql;
//根据提交的查询信息确定查询字符串
vsql=L"Select * from List";
try{
m_pRs=ado.GetRecordSet(vsql);
int i=0;
int row=SetListHead(m_pRs);
while(!m_pRs->adoEOF)
{
m_InfoList.InsertItem(i,(LPCTSTR)(_bstr_t)m_pRs->GetCollect((long)0));
for(int j=1;j<row;j++)
if(m_pRs->GetCollect((long)(j)).vt!=VT_NULL && m_pRs->GetCollect((long)j).vt!=VT_EMPTY)
m_InfoList.SetItemText(i,j,(LPCTSTR)(_bstr_t)m_pRs->GetCollect((long)j));
m_pRs->MoveNext();
i++;
}
}catch(_com_error e){
AfxMessageBox(e.Description());
}
ado.ExitConnect();
}
void CAirLineView::OnBtnList()
{
ResetList();
ShowList();
}
void CAirLineView::ResetList()
{
m_InfoList.DeleteAllItems();
for(int i=0;i<20;i++)
m_InfoList.DeleteColumn(0);
}
void CAirLineView::ShowResult()
{
CString strPrice;
CString strNum;
ResetList();
m_InfoList.InsertColumn(0,"航班号",LVCFMT_LEFT,80);
m_InfoList.InsertColumn(1,"始点",LVCFMT_LEFT,50);
m_InfoList.InsertColumn(2,"终点",LVCFMT_LEFT,50);
m_InfoList.InsertColumn(3,"舱位",LVCFMT_LEFT,60);
m_InfoList.InsertColumn(4,"价格",LVCFMT_LEFT,70);
m_InfoList.InsertColumn(5,"剩余座位",LVCFMT_LEFT,70);
m_InfoList.InsertColumn(6,"起飞日期",LVCFMT_LEFT,75);
m_InfoList.InsertColumn(7,"起飞时间",LVCFMT_LEFT,70);
m_InfoList.InsertColumn(8,"到达时间",LVCFMT_LEFT,70);
for(int i=0;flights[i].id !="";i++)
{
m_InfoList.InsertItem(i,flights[i].id);
m_InfoList.SetItemText(i,1,flights[i].start_city);
m_InfoList.SetItemText(i,2,flights[i].end_city);
m_InfoList.SetItemText(i,3,flights[i].part);
strPrice.Format("%.2f",flights[i].price);
m_InfoList.SetItemText(i,4,strPrice);
strNum.Format("%d",flights[i].num);
m_InfoList.SetItemText(i,5,strNum);
m_InfoList.SetItemText(i,6,flights[i].start_date);
m_InfoList.SetItemText(i,7,flights[i].start_time);
m_InfoList.SetItemText(i,8,flights[i].end_time);
}
f_buy=TRUE;
}
void CAirLineView::OnBtnCount()
{
// TODO: Add your control notification handler code here
CDlgCount dlg;
dlg.DoModal();
}
void CAirLineView::OnDblclkInfoList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
if(f_buy==TRUE)
{
CDlgBuy dlg;
int row=m_InfoList.GetSelectionMark();
CString strFlight=m_InfoList.GetItemText(row,0);
dlg.m_EdtNum=strFlight;
dlg.m_EdtPart=m_InfoList.GetItemText(row,3);
dlg.price=atof(m_InfoList.GetItemText(row,4));
dlg.Num=atoi(m_InfoList.GetItemText(row,5));
dlg.strDate=m_InfoList.GetItemText(row,6);
dlg.DoModal();
}
f_buy=FALSE;
*pResult = 0;
}
void CAirLineView::BuyDone()
{
CAirLineView::OnBtnList();
}
void CAirLineView::OnBtnClient()
{
// TODO: Add your control notification handler code here
CDlgClient dlg;
dlg.DoModal();
}
void CAirLineView::OnBtnTicket()
{
// TODO: Add your control notification handler code here
CDlgTicket dlg;
dlg.DoModal();
}
int CAirLineView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -