📄 search.cpp
字号:
// Search.cpp : 实现文件
//
#include "stdafx.h"
#include "travel.h"
#include "Search.h"
#include "FLIGHTS.h"
#include "HOTELS.h"
#include "CARS.h"
#include "CUSTOMERS.h"
#include "RESERVATIONS.h"
#include "CUSTOMERSDLG.h"
#include "PATHDLG.h"
#define MAX_COLUMN 10
// Search 对话框
IMPLEMENT_DYNAMIC(Search, CDialog)
Search::Search(CWnd* pParent /*=NULL*/)
: CDialog(Search::IDD, pParent)
{
}
Search::~Search()
{
}
void Search::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB1, Tab);
DDX_Control(pDX, IDC_LIST4, List);
Tab.InsertItem(0,"航班信息");
Tab.InsertItem(1,"宾馆信息");
Tab.InsertItem(2,"汽车信息");
Tab.InsertItem(3,"客户信息");
Tab.InsertItem(4,"预订信息");
List.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SORTASCENDING);
List.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
Search::FreshFlight();
}
BEGIN_MESSAGE_MAP(Search, CDialog)
ON_BN_CLICKED(IDOK, &Search::OnBnClickedOk)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &Search::OnTcnSelchangeTab1)
ON_BN_CLICKED(IDC_BUTTON2, &Search::OnBnClickedReservation)
END_MESSAGE_MAP()
// Search 消息处理程序
void Search::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
switch (Tab.GetCurFocus())
{
case 0:
FreshFlight();break;
case 1:
FreshHotels();break;
case 2:
FreshCars();break;
case 3:
FreshCustomer();break;
case 4:
FreshReservation();
}
//OnOK();
}
void Search::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
switch (Tab.GetCurFocus())
{
case 0:
FreshFlight();break;
case 1:
FreshHotels();break;
case 2:
FreshCars();break;
case 3:
FreshCustomer();break;
case 4:
FreshReservation();
}
}
void Search::FreshFlight(void)
{
List.DeleteAllItems();
for (int i = 0; i < MAX_COLUMN; i++)
{
if (!List.DeleteColumn(0)) break;
}
CDC* pDC=GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
List.InsertColumn(0,"ID",LVCFMT_LEFT,10*tm.tmAveCharWidth,0);
List.InsertColumn(1,"flightNum",LVCFMT_LEFT,10*tm.tmAveCharWidth,1);
List.InsertColumn(2,"price",LVCFMT_LEFT,10*tm.tmAveCharWidth,2);
List.InsertColumn(3,"numSeats",LVCFMT_LEFT,10*tm.tmAveCharWidth,3);
List.InsertColumn(4,"numAvail",LVCFMT_LEFT,10*tm.tmAveCharWidth,4);
List.InsertColumn(5,"fromCity",LVCFMT_LEFT,10*tm.tmAveCharWidth,5);
List.InsertColumn(6,"AvailCity",LVCFMT_LEFT,10*tm.tmAveCharWidth,6);
CFlights Record;
Record.Open();
CString temp;
for (int i=0;!Record.IsEOF();Record.MoveNext(),i++)
{
//int i=0;
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
//List.InsertItem(i,Record.m_flightNum);
List.SetItemText(i,1,Record.m_flightNum);
temp.Format(_T("%d"),Record.m_price);
List.SetItemText(i,2,temp);
temp.Format(_T("%d"),Record.m_numSeats);
List.SetItemText(i,3,temp);
temp.Format(_T("%d"),Record.m_numAvail);
List.SetItemText(i,4,temp);
List.SetItemText(i,5,Record.m_FromCity);
List.SetItemText(i,6,Record.m_ArivCity);
/* i=1;
Record.MoveNext();
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
//List.InsertItem(i,Record.m_flightNum);
List.SetItemText(i,1,Record.m_flightNum);
temp.Format(_T("%d"),Record.m_price);
List.SetItemText(i,2,temp);
temp.Format(_T("%d"),Record.m_numSeats);
List.SetItemText(i,3,temp);
temp.Format(_T("%d"),Record.m_numAvail);
List.SetItemText(i,4,temp);
List.SetItemText(i,5,Record.m_FromCity);
List.SetItemText(i,6,Record.m_ArivCity);
i=2;
Record.MoveNext();
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
//List.InsertItem(i,Record.m_flightNum);
List.SetItemText(i,1,Record.m_flightNum);
temp.Format(_T("%d"),Record.m_price);
List.SetItemText(i,2,temp);
temp.Format(_T("%d"),Record.m_numSeats);
List.SetItemText(i,3,temp);
temp.Format(_T("%d"),Record.m_numAvail);
List.SetItemText(i,4,temp);
List.SetItemText(i,5,Record.m_FromCity);
List.SetItemText(i,6,Record.m_ArivCity);*/
}
Record.Close();
List.Invalidate();
}
void Search::FreshHotels(void)
{
List.DeleteAllItems();
for (int i = 0; i < MAX_COLUMN; i++)
{
if (!List.DeleteColumn(0)) break;
}
CDC* pDC=GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
List.InsertColumn(0,"ID",LVCFMT_LEFT,15*tm.tmAveCharWidth,0);
List.InsertColumn(1,"location",LVCFMT_LEFT,15*tm.tmAveCharWidth,1);
List.InsertColumn(2,"price",LVCFMT_LEFT,15*tm.tmAveCharWidth,2);
List.InsertColumn(3,"numRooms",LVCFMT_LEFT,15*tm.tmAveCharWidth,3);
List.InsertColumn(4,"numAvail",LVCFMT_LEFT,15*tm.tmAveCharWidth,4);
CHotels Record;
Record.Open();
CString temp;
for (int i=0;!Record.IsEOF();Record.MoveNext(),i++)
{
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
List.SetItemText(i,1,Record.m_location);
temp.Format(_T("%d"),Record.m_price);
List.SetItemText(i,2,temp);
temp.Format(_T("%d"),Record.m_numRooms);
List.SetItemText(i,3,temp);
temp.Format(_T("%d"),Record.m_numAvail);
List.SetItemText(i,4,temp);
}
Record.Close();
}
void Search::FreshCars(void)
{
List.DeleteAllItems();
for (int i = 0; i < MAX_COLUMN; i++)
{
if (!List.DeleteColumn(0)) break;
}
CDC* pDC=GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
List.InsertColumn(0,"ID",LVCFMT_LEFT,15*tm.tmAveCharWidth,0);
List.InsertColumn(1,"location",LVCFMT_LEFT,15*tm.tmAveCharWidth,1);
List.InsertColumn(2,"price",LVCFMT_LEFT,15*tm.tmAveCharWidth,2);
List.InsertColumn(3,"numCars",LVCFMT_LEFT,15*tm.tmAveCharWidth,3);
List.InsertColumn(4,"numAvail",LVCFMT_LEFT,15*tm.tmAveCharWidth,4);
CCars Record;
Record.Open();
CString temp;
for (int i=0;!Record.IsEOF();Record.MoveNext(),i++)
{
temp.Format(_T("%d"),i);
List.InsertItem(0,temp);
List.SetItemText(i,1,Record.m_location);
temp.Format(_T("%d"),Record.m_price);
List.SetItemText(i,2,temp);
temp.Format(_T("%d"),Record.m_numCars);
List.SetItemText(i,3,temp);
temp.Format(_T("%d"),Record.m_numAvail);
List.SetItemText(i,4,temp);
}
Record.Close();
}
void Search::FreshCustomer(void)
{
List.DeleteAllItems();
for (int i = 0; i < MAX_COLUMN; i++)
{
if (!List.DeleteColumn(0)) break;
}
CDC* pDC=GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
List.InsertColumn(0,"ID",LVCFMT_LEFT,20*tm.tmAveCharWidth,0);
List.InsertColumn(1,"CustName",LVCFMT_LEFT,20*tm.tmAveCharWidth,1);
CCustomers Record;
Record.Open();
CString temp;
for (int i=0;!Record.IsEOF();Record.MoveNext(),i++)
{
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
List.SetItemText(i,1,Record.m_custName);
}
Record.Close();
}
void Search::FreshReservation(void)
{
List.DeleteAllItems();
for (int i = 0; i < MAX_COLUMN; i++)
{
if (!List.DeleteColumn(0)) break;
}
CDC* pDC=GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
List.InsertColumn(0,"ID",LVCFMT_LEFT,20*tm.tmAveCharWidth,0);
List.InsertColumn(1,"CustName",LVCFMT_LEFT,20*tm.tmAveCharWidth,1);
List.InsertColumn(2,"ResvType",LVCFMT_LEFT,20*tm.tmAveCharWidth,2);
List.InsertColumn(3,"ResvKey",LVCFMT_LEFT,20*tm.tmAveCharWidth,3);
CReservations Record;
Record.Open();
CString temp;
for (int i=0;!Record.IsEOF();Record.MoveNext(),i++)
{
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
List.SetItemText(i,1,Record.m_custName);
temp.Format(_T("%d"),Record.m_resvType);
List.SetItemText(i,2,temp);
List.SetItemText(i,3,Record.m_resvKey);
}
Record.Close();
}
void Search::OnBnClickedReservation()
{
// TODO: 在此添加控件通知处理程序代码
CUSTOMERSDLG Customer;
CReservations res;
CString name;
res.Open();
switch(Tab.GetCurSel())
{
case 0:
Customer.DoModal();
for (int i = -1; (i = List.GetNextItem(i, LVIS_SELECTED)) != -1;)
{
CFlights Flights;
Flights.Open();
for (int j=0;j<i;j++)
{
Flights.MoveNext();
}
if (Flights.m_numAvail>0)
{
Flights.Edit();
Flights.m_numAvail--;
Flights.Update();
Flights.Requery();
res.AddNew();
name=Customer.CustName;
res.m_custName = Customer.CustName;
res.m_resvKey = List.GetItemText(i, 1);
res.m_resvType = 1;
res.Update();
res.Requery();
res.Close();
}
Flights.Close();
}
break;
case 1:
Customer.DoModal();
for (int i = -1; (i = List.GetNextItem(i, LVIS_SELECTED)) != -1;)
{
CHotels Hotels;
Hotels.Open();
for (int j=0;j<i;j++)
{
Hotels.MoveNext();
}
if (Hotels.m_numAvail>0)
{
Hotels.Edit();
Hotels.m_numAvail--;
Hotels.Update();
Hotels.Requery();
res.AddNew();
name=Customer.CustName;
res.m_custName = Customer.CustName;
res.m_resvKey = List.GetItemText(i, 1);
res.m_resvType = 2;
res.Update();
res.Requery();
res.Close();
}
Hotels.Close();
}
break;
case 2:
Customer.DoModal();
name=Customer.CustName;
for (int i = -1; (i = List.GetNextItem(i, LVIS_SELECTED)) != -1;)
{
CCars Cars;
Cars.Open();
for (int j=0;j<i;j++)
{
Cars.MoveNext();
}
if (Cars.m_numAvail)
{
Cars.Edit();
Cars.m_numAvail--;
Cars.Update();
Cars.Requery();
res.AddNew();
res.m_custName = Customer.CustName;
res.m_resvKey = List.GetItemText(i, 1);
res.m_resvType = 3;
res.Update();
res.Requery();
res.Close();
}
Cars.Close();
}
break;
default:
break;
}
res.Close();
CCustomers db;
/* db.Open();
db.AddNew();
db.m_custName=res.m_custName;
db.Update();
db.Requery();
db.Close();*/
db.Open();
for (int i=0;!db.IsEOF();i++,db.MoveNext())
{
if (db.m_custName==name) break;
}
if (db.IsEOF())
{
db.AddNew();
db.m_custName=name;
db.Update();
db.Requery();
}
db.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -