www.pudn.com > hotel2003.rar > Page1.cpp
// Page1.cpp : implementation file
//
#include "stdafx.h"
#include "qq.h"
#include "Page1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//#define WM_SETPOS WM_USER+2//自定义消息
#include "QQView.h"
#include "InfoLookDialog.h"//消息显示对话框
/////////////////////////////////////////////////////////////////////////////
// CPage1 dialog
IMPLEMENT_DYNCREATE(CPage1, CDialog)
int CPage1::nTablesItems[nTables]={0,0,0,0,0,0};
CString CPage1::pszText[nTables][nLines][nCols]=
{
""
};
CPage1::CPage1(CWnd* pParent /*=NULL*/)
: CDialog(CPage1::IDD, pParent)
{
//{{AFX_DATA_INIT(CPage1)
m_bBill = FALSE;
m_bEmployer = FALSE;
m_bFood = FALSE;
m_bGuest = FALSE;
m_bRoom = FALSE;
m_bServer = FALSE;
m_SearchType = 1;
//}}AFX_DATA_INIT
bSearch=false;//初始状态为不搜索状态
}
void CPage1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPage1)
DDX_Control(pDX, IDC_SEARCHTEXT, m_SearchText);
DDX_Control(pDX, IDC_COOLPROGRESS, m_CoolProgress);
DDX_Check(pDX, IDC_CHECK_BILL, m_bBill);
DDX_Check(pDX, IDC_CHECK_EMPLOYER, m_bEmployer);
DDX_Check(pDX, IDC_CHECK_FOOD, m_bFood);
DDX_Check(pDX, IDC_CHECK_GUEST, m_bGuest);
DDX_Check(pDX, IDC_CHECK_ROOM, m_bRoom);
DDX_Check(pDX, IDC_CHECK_SERVER, m_bServer);
DDX_Radio(pDX, IDC_RADIO1, m_SearchType);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPage1, CDialog)
//{{AFX_MSG_MAP(CPage1)
ON_BN_CLICKED(IDC_CHECK_BILL, OnCheckBill)
ON_BN_CLICKED(IDC_CHECK_EMPLOYER, OnCheckEmployer)
ON_BN_CLICKED(IDC_CHECK_FOOD, OnCheckFood)
ON_BN_CLICKED(IDC_CHECK_GUEST, OnCheckGuest)
ON_BN_CLICKED(IDC_CHECK_ROOM, OnCheckRoom)
ON_BN_CLICKED(IDC_CHECK_SERVER, OnCheckServer)
ON_EN_CHANGE(IDC_SEARCHTEXT, OnChangeSearchtext)
ON_BN_CLICKED(IDC_RADIO1, OnRadio)
ON_BN_CLICKED(IDOK, OnSearch)
ON_WM_DESTROY()
ON_COMMAND(WM_SETPOS,OnSetCoolProcessPos)
ON_BN_CLICKED(IDC_RADIO2, OnRadio)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers
BOOL CPage1::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//初始化数据成员
m_CoolProgress.SetRange(0,100);
m_CoolProgress.SetColor(RGB(64,0,0));
m_CoolProgress.SetStep(1);
m_CoolProgress.SetPos(0);
//初始化静态数据成员
InitDate();//初始化数据成员
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPage1::OnCheckBill()
{
// TODO: Add your control notification handler code here
this->UpdateData(true);
if(m_bBill==TRUE)
{
m_bBill=FALSE;
}
else{m_bBill=TRUE;}
}
void CPage1::OnCheckEmployer()
{
// TODO: Add your control notification handler code here
this->UpdateData(TRUE);
if(m_bEmployer==TRUE)
{
m_bEmployer=FALSE;
}
else{m_bEmployer=TRUE;}
}
void CPage1::OnCheckFood()
{
// TODO: Add your control notification handler code here
this->UpdateData(TRUE);
if(m_bFood==TRUE){m_bFood=FALSE;}
else{m_bFood=TRUE;}
}
void CPage1::OnCheckGuest()
{
// TODO: Add your control notification handler code here
this->UpdateData(TRUE);
if(m_bGuest==TRUE){m_bGuest=FALSE;}
else{m_bGuest=TRUE;}
}
void CPage1::OnCheckRoom()
{
// TODO: Add your control notification handler code here
this->UpdateData(TRUE);
if(m_bRoom==TRUE){m_bRoom=FALSE;}
else{m_bRoom=TRUE;}
}
void CPage1::OnCheckServer()
{
// TODO: Add your control notification handler code here
this->UpdateData(TRUE);
if(m_bServer==TRUE){m_bServer=FALSE;}
else{m_bServer=TRUE;}
}
void CPage1::OnChangeSearchtext()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
CString strSearchText;
m_SearchText.GetWindowText(strSearchText);
if(!m_SearchMethod.CheckString(strSearchText))
{//检查输入的语法的正确性
AfxMessageBox("你输入的字符不合法!");
}
}
void CPage1::OnRadio()
{
// TODO: Add your control notification handler code here
this->UpdateData(TRUE);//更新数据
}
void CPage1::OnSearch()
{//按照制定的设置查询数据库
// TODO: Add your control notification handler code here
/*
CQQView* pView=CQQView::GetView();
CDC* pDC=pView->GetDC();//得到视图类DC*/
//获得搜索类型,根据类型进行不同的搜索
this->UpdateData(TRUE);//数据更新
this->InitDate();//数据初始化,清除上次保留的数据
bSearch=true;
m_CoolProgress.SetPos(0);//初始位置
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
一些特殊情况的处理
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
CString strSearchText;
m_SearchText.GetWindowText(strSearchText);
if(strSearchText=="")
{//查询文本为空
AfxMessageBox("请输入查询文本!");
return;
}
bool bunusualchar=false;//是否含有"?"或者"*"字符
int i=0;
while (iUpdateData(TRUE);//数据更新
int nTablesItemNum=nTablesItems[0];//表搜索到的项目数目
// CString strTempText[100];
// for(int i=0;i<100;i++)
// {
// strTempText[i]="";
// }
// int strTempTextItems=0;//记录保存到临时记录数组中的个数
if(!m_GuestInfoSet.Open())
{
AfxMessageBox("打开数据库失败!");
return;
}
m_GuestInfoSet.MoveFirst();//移动到第一条记录
while (!m_GuestInfoSet.IsEOF())
{
bool bhas=true;
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_HandCode,strSearchText))
{//与手牌号码匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)//若前面已经找到了这个记录
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_Name,strSearchText))
{//与名字匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_GuestType,strSearchText))
{//与客人类型匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_Sex,strSearchText))
{//与客人性别匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_Certificate,strSearchText))
{//与客人证件类型匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_CertifyCode,strSearchText))
{//与客人证件号码匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
CString str;
if(m_GuestInfoSet.m_IsMember){str="是";}
else{str="否";}
if(bhas)
{
if(m_SearchMethod.MatchingString(str,strSearchText))
{//与客人是否团队成员匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(m_GuestInfoSet.m_IsMaster){str="是";}
else{str="否";}
if(bhas)
{
if(m_SearchMethod.MatchingString(str,strSearchText))
{//与客人是否团队主客匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_GroupID,strSearchText))
{//与客人证件号码匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
str.Format("%ld",m_GuestInfoSet.m_GuestNum);
if(bhas)
{
if(m_SearchMethod.MatchingString(str,strSearchText))
{//与客人数目匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_RoomNum,strSearchText))
{//与房间数目号码匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bBill)
// {
// strTempText[strTempTextItems]=m_GuestInfoSet.m_HandCode;
// strTempTextItems++;//Add 1
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_GuestInfoSet.m_RoomCode,strSearchText))
{//与房间号码匹配
FillGuestInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bRoom)
// {
// char* s=m_GuestInfoSet.m_RoomCode.GetBuffer(m_GuestInfoSet.m_RoomCode.GetLength());
// char* strtake=strtok(s,",");
// while (strtake!=NULL)
// {
// strTempText[strTempTextItems]=strtake;
// strTempTextItems++;
// strtake=strtok(NULL,",");
// }
// }
bhas=false;
}
}
m_GuestInfoSet.MoveNext();//移动到下一条记录
}
m_GuestInfoSet.Close();//关闭数据库
// for(i=0;iUpdateData(TRUE);
int nTablesItemNum=nTablesItems[1];//表搜索到的项目数目
if(!m_RoomInfoSet.Open())
{
AfxMessageBox("打开数据库失败!");
return;
}
m_RoomInfoSet.MoveFirst();//move to the first
while (!m_RoomInfoSet.IsEOF())
{
bool bhas=true;
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,m_RoomInfoSet.m_RoomCode))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
// if(m_bGuest)
// {//允许查询客人信息
// if(!m_GuestInfoSet.Open())
// {
// AfxMessageBox("打开数据库失败!");
// return ;
// }
// m_GuestInfoSet.MoveFirst();
// while(!m_GuestInfoSet.IsEOF())
// {
// char* s=m_GuestInfoSet.m_RoomCode.GetBuffer(m_GuestInfoSet.m_RoomCode.GetLength());
// char* strtake=strtok(s,",");
// while(strtake!=NULL)
// {
// if(*strtake==m_RoomInfoSet.m_RoomCode)
// {
// FillGuestInfo(nTablesItems[0]);
// nTablesItems[0]++;
// }
// strtake=strtok(NULL,",");
// }
// m_GuestInfoSet.MoveNext();
// }
// m_GuestInfoSet.Close();
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,m_RoomInfoSet.m_RoomType))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,m_RoomInfoSet.m_Phone))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,m_RoomInfoSet.m_RoomStatus))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
bhas=false;
}
}
CString str;
str.Format("%d",m_RoomInfoSet.m_Floor);
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,str))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
bhas=false;
}
}
if(m_RoomInfoSet.m_PriceType){str="是";}
else{str="否";}
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,str))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
bhas=false;
}
}
str.Format("%f",m_RoomInfoSet.m_Price);
if(bhas)
{
if(m_SearchMethod.IsMatchString(strSearchText,str))
{
FillRoomInfo(nTablesItemNum);//,m_RoomInfoSet);
nTablesItemNum++;
bhas=false;
}
}
m_RoomInfoSet.MoveNext();//move to the next
}
m_RoomInfoSet.Close();
nTablesItems[1]=nTablesItemNum;
}
void CPage1::FillRoomInfo(int nCurLines)//, CRoomInfoSet& m_RoomInfoSet)
{//填充房间信息
pszText[1][nCurLines][0]=m_RoomInfoSet.m_RoomCode;
pszText[1][nCurLines][1]=m_RoomInfoSet.m_RoomType;
CString str="";
int nFloor=m_RoomInfoSet.m_Floor;
str.Format("%d",nFloor);//there is a bug!!!!!
pszText[1][nCurLines][2]=str;//层数
pszText[1][nCurLines][3]=m_RoomInfoSet.m_Phone;
pszText[1][nCurLines][4]=m_RoomInfoSet.m_RoomStatus;
if(m_RoomInfoSet.m_PriceType){str="是";}
else{str="否";}
pszText[1][nCurLines][5]=str;
str.Format("%f",m_RoomInfoSet.m_Price);
pszText[1][nCurLines][6]=str;
}
void CPage1::SearchBillInfoSet(CString strSearchText)
{
int nTablesItemNum=nTablesItems[2];//搜索到的表的项目数目
// CString strTempText[100];//这种写法导致stack over!!!!分配了大量的空间
// for(int i=0;i<100;i++)
// {
// strTempText[i]="";
// }
// int strTempTextItems=0;//记录保存到临时记录数组中的个数
if(!m_BillInfoSet.Open())
{
AfxMessageBox("打开数据库失败!");
return;
}
m_BillInfoSet.MoveFirst();//移动到第一条记录
while (!m_BillInfoSet.IsEOF())
{
bool bhas=true;
if(bhas)
{
if(m_SearchMethod.MatchingString(m_BillInfoSet.m_BillCode,strSearchText))
{//与手牌号码匹配
FillBillInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bGuest)
// {
// strTempText[strTempTextItems]=m_BillInfoSet.m_HandCode;
// strTempTextItems++;
// }
bhas=false;
}
}
if(bhas)//若前面已经找到了这个记录
{
if(m_SearchMethod.MatchingString(m_BillInfoSet.m_HandCode,strSearchText))
{//与名字匹配
FillBillInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bGuest)
// {
// strTempText[strTempTextItems]=m_BillInfoSet.m_HandCode;
// strTempTextItems++;
// }
// if(m_bGuest)
// {
// SearchGuestInfoSet(m_BillInfoSet.m_HandCode);
// }
bhas=false;
}
}
if(bhas)
{
long Paid=m_BillInfoSet.m_Paid;
CString str;
str.Format("%ld",Paid);
if(m_SearchMethod.MatchingString(str,strSearchText))
{//与客人类型匹配
FillBillInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bGuest)
// {
// strTempText[strTempTextItems]=m_BillInfoSet.m_HandCode;
// strTempTextItems++;
// }
bhas=false;
}
}
if(bhas)
{
if(m_SearchMethod.MatchingString(m_BillInfoSet.m_Rebate,strSearchText))
{//与客人性别匹配
FillBillInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bGuest)
// {
// strTempText[strTempTextItems]=m_BillInfoSet.m_HandCode;
// strTempTextItems++;
// }
bhas=false;
}
}
if(bhas)
{
BOOL bStriked=m_BillInfoSet.m_Striked;
CString str;
if(bStriked){str="是";}
else{str="否";}
if(m_SearchMethod.MatchingString(str,strSearchText))
{//与客人证件类型匹配
FillBillInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bGuest)
// {
// strTempText[strTempTextItems]=m_BillInfoSet.m_HandCode;
// strTempTextItems++;
// }
bhas=false;
}
}
if(bhas)
{
long Sum=m_BillInfoSet.m_Sum;
CString str;
str.Format("%ld",Sum);
if(m_SearchMethod.MatchingString(str,strSearchText))
{//与客人证件号码匹配
FillBillInfo(nTablesItemNum);//填充记录
nTablesItemNum++;//记录加1
// if(m_bGuest)
// {
// strTempText[strTempTextItems]=m_BillInfoSet.m_HandCode;
// strTempTextItems++;
// }
bhas=false;
}
}
m_BillInfoSet.MoveNext();//移动到下一条记录
}
m_BillInfoSet.Close();//关闭数据库
// for(i=0;i