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

📄 airlineview.cpp

📁 1.解压后在sql2000中建立数据库flight,然后用本文件中的flight文件进行还原 2.数据库连接是用ADO实现的,如果更改连接,打开后对两个程序的ADOConn.cpp进行修改就行(t
💻 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 + -