1000#pr" />

C++开发源码分析(105)

C++开发源码分析(105)
(一)头文件
#if !defined(AFX_CHECKOUTDLG_H__D4BCAF1F_326C_4DD9_BDD0_0861E2E17797__INCLUDED_)
#define AFX_CHECKOUTDLG_H__D4BCAF1F_326C_4DD9_BDD0_0861E2E17797__INCLUDED_

#include "Roominfoset.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Checkoutdlg.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CCheckoutdlg dialog

class CCheckoutdlg : public CDialog
{
// Construction
public:
CCheckoutdlg(CWnd* pParent = NULL); // standard constructor

CRoominfoset mymendroominfoset;
void enable(bool bEnabled);

CString checkindate,checkintime;
// 定义ADO连接、命令、记录集变量指针
_ConnectionPtr m_pConnection;
_CommandPtr m_pCommand;
_RecordsetPtr m_pRecordset;

_RecordsetPtr m_pRecordsetout;
// Dialog Data
//{{AFX_DATA(CCheckoutdlg)
enum { IDD = IDD_DIgcheckout };
CEdit m_checkindate;
CComboBox m_regnumber_ctr;
CString m_checkoutnumber;
CString m_addr;
CString m_checkoutbeizhu;
CString m_discountkind;
CString m_extramoney_kind;
CString m_regnumber;
float m_discount;
CString m_extramoney;
CString m_name;
CString m_prehandinmoney;
float m_realdays;
CString m_realget_roommoney;
CString m_reback_money;
CString m_roomlevel;
CString m_roomnumber;
CString m_sum_roommoney;
CString m_tel_money;
CString m_park_money;
CString m_mix_money;
CString m_mend_money;
CString m_meeting_money;
CString m_checkout_zhenjiannumber;
CString m_checkoutzhenjian_number;
CString m_zhengjiankind;
CString m_checkoutroommoney;
CString m_showuser;
//}}AFX_DATA


// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCheckoutdlg)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(CCheckoutdlg)
virtual BOOL OnInitDialog();
afx_msg void OnBTNcheckout();
afx_msg void OnCloseupCOMBOregnumber();
afx_msg void OnChangeextramoney();
virtual void OnOK();
afx_msg void Onoutreg();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CHECKOUTDLG_H__D4BCAF1F_326C_4DD9_BDD0_0861E2E17797__INCLUDED_)

(二)源文件

// Checkoutdlg.cpp : implementation file
//

#include "stdafx.h"
#include "Myhotel.h"
#include "Checkoutdlg.h"
#include
#include

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


extern CMyhotelApp theApp;
extern CString loguserid;
/////////////////////////////////////////////////////////////////////////////
// CCheckoutdlg dialog


CCheckoutdlg::CCheckoutdlg(CWnd* pParent /*=NULL*/)
: CDialog(C

Checkoutdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckoutdlg)
m_checkoutnumber = _T("");
m_addr = _T("");
m_checkoutbeizhu = _T("");
m_discountkind = _T("");
m_extramoney_kind = _T("");
m_regnumber = _T("");
m_discount = 0.0f;
m_extramoney = _T("");
m_name = _T("");
m_prehandinmoney = _T("");
m_realdays = 0.0f;
m_realget_roommoney = _T("");
m_reback_money = _T("");
m_roomlevel = _T("");
m_roomnumber = _T("");
m_sum_roommoney = _T("");
m_tel_money = _T("");
m_park_money = _T("");
m_mix_money = _T("");
m_mend_money = _T("");
m_meeting_money = _T("");
m_checkout_zhenjiannumber = _T("");
m_checkoutzhenjian_number = _T("");
m_zhengjiankind = _T("");
m_checkoutroommoney = _T("");
m_showuser = _T("");
//}}AFX_DATA_INIT
}


void CCheckoutdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckoutdlg)
DDX_Control(pDX, IDC_checkindate_outdlg, m_checkindate);
DDX_Control(pDX, IDC_COMBO_regnumber, m_regnumber_ctr);
DDX_Text(pDX, IDC_checkoutnumber, m_checkoutnumber);
DDX_Text(pDX, IDC_addr, m_addr);
DDX_Text(pDX, IDC_checkoutbeizhu, m_checkoutbeizhu);
DDX_CBString(pDX, IDC_COMBO_discountkind, m_discountkind);
DDX_CBString(pDX, IDC_COMBO_extramoney_kind, m_extramoney_kind);
DDX_CBString(pDX, IDC_COMBO_regnumber, m_regnumber);
DDX_Text(pDX, IDC_discount, m_discount);
DDX_Text(pDX, IDC_extramoney, m_extramoney);
DDX_Text(pDX, IDC_name, m_name);
DDX_Text(pDX, IDC_prehandin_money, m_prehandinmoney);
DDX_Text(pDX, IDC_real_days, m_realdays);
DDX_Text(pDX, IDC_realget_roommoney, m_realget_roommoney);
DDX_Text(pDX, IDC_reback_money, m_reback_money);
DDX_Text(pDX, IDC_roomlevel, m_roomlevel);
DDX_Text(pDX, IDC_roomnumber, m_roomnumber);
DDX_Text(pDX, IDC_sum_roommoney, m_sum_roommoney);
DDX_Text(pDX, IDC_tel_money, m_tel_money);
DDX_Text(pDX, IDC_park_money, m_park_money);
DDX_Text(pDX, IDC_mix_money, m_mix_money);
DDX_Text(pDX, IDC_mend_money, m_mend_money);
DDX_Text(pDX, IDC_meeting_money, m_meeting_money);
DDX_Text(pDX, IDC_checkout_idnumber, m_checkoutzhenjian_number);
DDX_CBString(pDX, IDC_COMBOzhengjinkind, m_zhengjiankind);
DDX_Text(pDX, IDC_EDIT_outroommoney, m_checkoutroommoney);
DDX_Text(pDX, IDC_STATICshowuser, m_showuser);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCheckoutdlg, CDialog)
//{{AFX_MSG_MAP(CCheckoutdlg)
ON_BN_CLICKED(ID_BTN_checkout, OnBTNcheckout)
ON_CBN_CLOSEUP(IDC_COMBO_regnumber, OnCloseupCOMBOregnumber)
ON_EN_CHANGE(IDC_extramoney, OnChangeextramoney)
ON_BN_CLICKED(IDCANCEL_outreg, Onoutreg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCheckoutdlg message handlers

BOOL CCheckoutdlg::OnInitDialog()
{
CDialog::OnInitDialog();


// TODO: Add extra initialization here
// 使用ADO创建数据库记录集
m_pRecordset.CreateInstance(__uuidof(Recordset));

_variant_t var;
CS

tring strregnumber;
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
try
{//打开数据库
m_pRecordset->Open("SELECT * FROM checkinregtable", // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)//捕获打开数据库可能发生的异常情况并实时显示提示
{
AfxMessageBox(e->ErrorMessage());
}
try
{
if(!m_pRecordset->BOF)//判断指针是否在数据集最后
m_pRecordset->MoveFirst();
else
{//提示错误,无数据
AfxMessageBox("表内数据为空");
return false;
}

// read data from the database table
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("凭证号码");
if(var.vt != VT_NULL)
strregnumber = (LPCSTR)_bstr_t(var);
m_regnumber_ctr.AddString(strregnumber);//从数据库获得
//的内容给变量赋值
m_pRecordset->MoveNext();//移动数据指针
}

//

}
catch(_com_error *e)//捕获异常
{
AfxMessageBox(e->ErrorMessage());
}

// 关闭记录集
m_pRecordset->Close();
m_pRecordset = NULL;

m_tel_money = "0";
m_park_money = "0";
m_mix_money = "0";
m_mend_money = "0";
m_meeting_money ="0";

m_showuser=loguserid;
//更新显示
UpdateData(false);
enable(0);
//改变输入框状态

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

void CCheckoutdlg::OnBTNcheckout()
{
// TODO: Add your control notification handler code here

enable(1);
//改变输入框状态


}
void CCheckoutdlg::enable(bool bEnabled)
{
// m_ComYSFS.EnableWindow(bEnabled);
//改变输入框状态

GetDlgItem(IDC_checkindate_outdlg)->EnableWindow(bEnabled);
GetDlgItem(IDC_COMBO_regnumber)->EnableWindow(bEnabled);
GetDlgItem(IDC_checkoutnumber)->EnableWindow(bEnabled);
GetDlgItem(IDC_addr)->EnableWindow(bEnabled);
GetDlgItem(IDC_checkoutbeizhu)->EnableWindow(bEnabled);
GetDlgItem(IDC_COMBO_discountkind)->EnableWindow(bEnabled);
GetDlgItem(IDC_COMBO_extramoney_kind)->EnableWindow(bEnabled);

GetDlgItem(IDC_COMBO_regnumber)->EnableWindow(bEnabled);
GetDlgItem(IDC_discount)->EnableWindow(bEnabled);
GetDlgItem(IDC_extramoney)->EnableWindow(bEnabled);
GetDlgItem(IDC_name)->EnableWindow(bEnabled);
GetDlgItem(IDC_prehandin_money)->EnableWindow(bEnabled);
GetDlgItem(IDC_real_days)->EnableWindow(bEnabled);
GetDlgItem(IDC_realget_roommoney)->EnableWindow(bEnabled);
GetDlgItem(IDC_reback_money)->EnableWindow(bEnabled);
GetDlgItem(IDC_roomlevel)->EnableWindow(bEnabled);
GetDlgItem(IDC_roomnumber)->EnableWindow(bEnabled);

GetDlgItem(IDC_sum_roommoney)->EnableWindow(bEnabled);
GetDlgItem(IDC_tel_money)->EnableWindow(bEnabled);

GetDlgItem(IDC_park_money)->EnableWindow(bEnabled);
GetDlgItem(IDC_mix_money)->EnableWindow(bEnabled);
GetDlgItem(IDC_mend_money)->EnableWindow(bEnabled);
GetDlgItem(IDC_meeting_money)->EnableWindow(bEnabled);
GetDlgItem(IDC_checkout_idnumber)->EnableWindow(bEnabled);
GetDlgItem(IDC_COMBOzhengjinkind)->EnableWindow(bEnabled);
GetDlgItem(IDC_EDIT_outroommoney)->EnableWindow(bEnabled);
GetDlgItem(IDOK)->EnableWindow(bEnabled);
//改变输入框状态完毕

}

void CCheckoutdlg::OnCloseupCOMBOregnumber()
{
// TODO: Add your control notification handler code here

_variant_t var;
// 使用ADO创建数据库记录集
m_pRecordset.CreateInstance(__uuidof(Recordset));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//

UpdateData(true);

CString checkoutnumber;
CString strsql;
strsql.Format("SELECT * FROM checkinregtable where 凭证号码='%s'",m_regnumber);
try// 打开数据库
{
m_pRecordset->Open(_variant_t(strsql), // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{// 捕获可能发生的异常
AfxMessageBox(e->ErrorMessage());
}

checkoutnumber+="T";
checkoutnumber+=m_regnumber;

// 生产退宿的凭证号码
m_checkoutnumber =checkoutnumber;

try
{
if(!m_pRecordset->BOF)//判断指针是否在数据集最后
m_pRecordset->MoveFirst();
else
{//
MessageBox("表内数据为空","客房管理系统");
return ;
}

//read data from the database table
// 读取数据表中姓名字段
var = m_pRecordset->GetCollect("姓名");
if(var.vt != VT_NULL)
m_name = (LPCSTR)_bstr_t(var);
// 读取数据表中证件名称字段
var = m_pRecordset->GetCollect("证件名称");
if(var.vt != VT_NULL)
m_zhengjiankind = (LPCSTR)_bstr_t(var);
// 读取数据表中证件号码字段
var = m_pRecordset->GetCollect("证件号码");
if(var.vt != VT_NULL)
m_checkoutzhenjian_number = (LPCSTR)_bstr_t(var);
// 读取数据表中详细地址字段
var = m_pRecordset->GetCollect("详细地址");
if(var.vt != VT_NULL)
m_addr = (LPCSTR)_bstr_t(var);
// 读取数据表中房间号字段
var = m_pRecordset->GetCollect("房间号");
if(var.vt != VT_NULL)
m_roomnumber = (LPCSTR)_bstr_t(var);
// 读取数据表中客房类型字段
var = m_pRecordset->GetCollect("客房类型");
if(var.vt != VT_NULL)
m_roomlevel = (LPCSTR)_bstr_t(var);
// 读取数据表中客房价格字段
var = m_pRecordset->GetCollect("客房价格");
if(var.vt != VT_NULL)
m_checkoutroommoney = (LPCSTR)_bstr_t(var);


// CString checkindate;// 读取数据表中住宿日期字段
var = m_pRecor

dset->GetCollect("住宿日期");
if(var.vt != VT_NULL)
checkindate = (LPCSTR)_bstr_t(var);
// 读取数据表中住宿时间字段
var = m_pRecordset->GetCollect("住宿时间");
if(var.vt != VT_NULL)
checkintime = (LPCSTR)_bstr_t(var);

// 准备获取住宿日期
CString beginyear,beginmonth,beginday;
beginyear=checkindate.Mid(0,4);//提取年份
//提取月份
beginmonth=checkindate.Mid(5,checkindate.Find('-',6)-5);
//提取日
beginday=checkindate.Mid(checkindate.ReverseFind('-')+1,checkindate.GetLength()-checkindate.ReverseFind('-'));

CTime time=CTime::GetCurrentTime();//构造时间对象
CTime tm(time);

CString endYear,endMonth,endDay;
endYear.Format("%d",tm.GetYear());//转换为字符串
endMonth.Format("%d",tm.GetMonth());//转换为字符串
endDay.Format("%d",tm.GetDay());//转换为字符串

float realdays,realmoney;
//计算天数
realdays=(atof(endYear)*365+atof(endMonth)*30+atof(endDay))-(atof(beginyear)*365+atof(beginmonth)*30+atof(beginday));
m_realdays=realdays;

char prediscount_money[50];
//转换为字符串
_gcvt(atof(m_checkoutroommoney)*realdays, 4, prediscount_money );
m_sum_roommoney=prediscount_money;
///////////////////////////////////////////////////////
// m_checkindate.SetDlgItemText(IDC_DATETIMEPICKER_checkindate,checkindate);
m_checkindate.SetWindowText(checkindate);
///////////////////////////////////////////////////////
// 读取数据表中结款方式字段
var = m_pRecordset->GetCollect("结款方式");
if(var.vt != VT_NULL)
m_discountkind = (LPCSTR)_bstr_t(var);
// 读取数据表中折扣字段
var = m_pRecordset->GetCollect("折扣");
if(var.vt != VT_NULL)
m_discount = atof((LPCSTR)_bstr_t(var));

//定义临时存储空间
char realget_money[50];
_gcvt(atof(m_checkoutroommoney)*realdays*m_discount/100, 4, realget_money );
m_realget_roommoney=realget_money;
// 读取数据表中姓名字段
var = m_pRecordset->GetCollect("预收金额");
if(var.vt != VT_NULL)
m_prehandinmoney = (LPCSTR)_bstr_t(var);
else
m_prehandinmoney ="0";
//定义临时存储空间
char strback_money[50];
float back_money;
back_money=atof(m_prehandinmoney)-atof(m_checkoutroommoney)*realdays;
if(back_money<=0)
{//如果应归还金额小于0,就设定此数为0
back_money=0;
}
//格式转换
_gcvt(back_money, 4, strback_money );
m_reback_money=strback_money;
// 读取数据表中备注字段
var = m_pRecordset->GetCollect("备注");
if(var.vt != VT_NULL)
m_checkoutbeizhu = (LPCSTR)_bstr_t(var);
// 更新显


UpdateData(false);

//

}
catch(_com_error *e)// 捕获异常
{
AfxMessageBox(e->ErrorMessage());
}

// 关闭记录集
m_pRecordset->Close();
m_pRecordset = NULL;

UpdateData(false);// 更新显示截面输入框内容
/////////////////////////////////////////////////////////////////////

}

void CCheckoutdlg::OnChangeextramoney()
{
// 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.
UpdateData(true);
if(m_extramoney_kind=="电话费")
m_tel_money=m_extramoney;// 实时计算显示电话费内容
else if(m_extramoney_kind=="杂费")
m_mix_money=m_extramoney;// 实时计算显示杂费内容
else if(m_extramoney_kind=="会议费")
m_meeting_money=m_extramoney; // 实时计算显示会议费内容
else if(m_extramoney_kind=="停车费")
m_park_money=m_extramoney;// 实时计算显示停车费内容
else
m_mend_money =m_extramoney;// 实时计算显示维修费用内容
UpdateData(false);
// TODO: Add your control notification handler code here

}

void CCheckoutdlg::OnOK()
{
// TODO: Add extra validation here
//store the record into the checkoutregtable
UpdateData(true);

m_pRecordsetout.CreateInstance(__uuidof(Recordset));
//INSERT INTO checkinregtable (凭证号码)VALUES('%s')
CString strsqlstore;


try// 打开数据库
{
m_pRecordsetout->Open("SELECT * FROM checkoutregtable", // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)// 捕获异常
{
AfxMessageBox(e->ErrorMessage());
}

try
{ // 设置数据库操作类型
m_pRecordsetout->AddNew();
// // 往数据表中写入凭证号码字段数据
m_pRecordsetout->PutCollect("凭证号码", _variant_t(m_checkoutnumber));
// 往数据表中写入姓名字段数据
m_pRecordsetout->PutCollect("姓名", _variant_t(m_name));
// 往数据表中写入证件名称字段数据
m_pRecordsetout->PutCollect("证件名称", _variant_t(m_zhengjiankind));
// 往数据表中写入证件号码字段数据
m_pRecordsetout->PutCollect("证件号码", _variant_t(m_checkoutzhenjian_number));
// 往数据表中写入详细地址字段数据
m_pRecordsetout->PutCollect("详细地址", _variant_t(m_addr));
// 往数据表中写入房间号字段数据
m_pRecordsetout->PutCollect("房间号", _variant_t(m_roomnumber));
// 往数据表中写入客房类型字段数据
m_pRecordsetout->PutCollect("客房类型", _variant_t(m_roomlevel));
// 往数据表中写入客房价格字段数据

m_pRecordsetout->PutCollect("客房价格", _variant_t(m_checkoutroommoney));
// 往数据表中写入住宿日期字段数据
m_pRecordsetout->PutCollect("住宿日期", _variant_t(checkindate));
// 往数据表中写入住宿时间字段数据
m_pRecordsetout->PutCollect("住宿时间", _variant_t(checkintime));
// 往数据表中写入住宿天数字段数据
m_pRecordsetout->PutCollect("住宿天数", _variant_t(m_realdays));
// 往数据表中写入宿费字段数据
m_pRecordsetout->PutCollect("宿费", _variant_t(m_sum_roommoney));
// 往数据表中写入折扣或招待字段数据
m_pRecordsetout->PutCollect("折扣或招待", _variant_t(m_discountkind));
// 往数据表中写入折扣字段数据
m_pRecordsetout->PutCollect("折扣", _variant_t(m_discount));
// 往数据表中写入应收宿费字段数据
m_pRecordsetout->PutCollect("应收宿费", _variant_t(m_realget_roommoney));
// 往数据表中写入杂费字段数据
m_pRecordsetout->PutCollect("杂费", _variant_t(m_mix_money));//m_mix_money
// 往数据表中写入电话费字段数据
m_pRecordsetout->PutCollect("电话费", _variant_t(m_tel_money));
// 往数据表中写入会议费字段数据
m_pRecordsetout->PutCollect("会议费", _variant_t(m_meeting_money));
// 往数据表中写入存车费字段数据
m_pRecordsetout->PutCollect("存车费", _variant_t(m_park_money));//m_park_money
// 往数据表中写入赔偿费字段数据
m_pRecordsetout->PutCollect("赔偿费", _variant_t(m_mend_money));

// 往数据表中写入金额总计字段数据
m_pRecordsetout->PutCollect("金额总计", _variant_t(m_realget_roommoney));
// 往数据表中写入预收宿费字段数据
m_pRecordsetout->PutCollect("预收宿费", _variant_t(m_prehandinmoney));
// 往数据表中写入退还宿费字段数据
m_pRecordsetout->PutCollect("退还宿费", _variant_t(m_reback_money));

CString outdate,outtime;
int nYear,nDay,nMonth;
CString sYear,sDay,sMonth;
int nhour,nmin,nsecond;
CString shour,smin,ssecond;
CTime tTime;
tTime=tTime.GetCurrentTime(); // 获取当前系统时间
nYear=tTime.GetYear();//提取年份
nDay=tTime.GetDay();//提取日
nMonth=tTime.GetMonth();//提取月份
sYear.Format("%d",nYear);//转换为字符串
sDay.Format("%d",nDay);//转换为字符串
sMonth.Format("%d",nMonth);//转换为字符串
outdate.Format("%s-%s-%s",sYear,sMonth,sDay);// 格式化时间
CString nowdate,nowtime;nowdate=outdate;
nhour=tTime.GetHour();//提取小时
nmin=tTime.GetMinute();//提取分钟
nsecond=tTime

.GetSecond();//提取秒
shour.Format("%d",nhour);//转换为字符串
smin.Format("%d",nmin);//转换为字符串
ssecond.Format("%d",nsecond);//转换为字符串
outtime.Format("%s:%s:%s",shour,smin,ssecond);// 格式化时间
nowtime=outtime;
// 往数据表中写入退房日期字段数据
m_pRecordsetout->PutCollect("退房日期", _variant_t(outdate));
// 往数据表中写入退房时间字段数据
m_pRecordsetout->PutCollect("退房时间", _variant_t(outtime));
// 往数据表中写入日期字段数据
m_pRecordsetout->PutCollect("日期", _variant_t(nowdate));
// 往数据表中写入时间字段数据
m_pRecordsetout->PutCollect("时间", _variant_t(nowtime));
// 往数据表中写入备注字段数据
m_pRecordsetout->PutCollect("备注", _variant_t(m_checkoutbeizhu));


// 更新数据库

m_pRecordsetout->Update();

MessageBox("退宿完毕!","客房管理系统");

}
catch(_com_error *e)
{//捕获异常
AfxMessageBox(e->ErrorMessage());
}
m_pRecordsetout->Close();// 关闭记录集
m_pRecordsetout = NULL;
///////////////////////////////////////////////////////////////
//update the roomsetting table
CString SQLstr;
SQLstr="SELECT * FROM roomsetting where 房间号='" ;
SQLstr+=m_roomnumber;
SQLstr+="'";
if(!mymendroominfoset.Open(AFX_DB_USE_DEFAULT_TYPE,SQLstr))
{//查询数据库得到数据集合
MessageBox("打开roomsetting 表失败,更改房间状态失败!","客房管理系统");
if(mymendroominfoset.IsOpen())
{
mymendroominfoset.Close();
}
return ;
}

mymendroominfoset.Edit();//设置数据库操作类型

mymendroominfoset.m_column4="空房";
mymendroominfoset.Update();// 更新数据库
mymendroominfoset.Requery();
///////////////////////////////////
if(mymendroominfoset.IsOpen())
{
mymendroominfoset.Close();// 关闭数据集
}

}

void CCheckoutdlg::Onoutreg()
{
// TODO: Add your control notification handler code here
m_checkoutnumber = _T("");// 初始化输入框对应变量
m_addr = _T("");
m_checkoutbeizhu = _T("");
m_discountkind = _T("");
m_extramoney_kind = _T("");
m_regnumber = _T("");
m_discount = 0.0f;
m_extramoney = _T("");
m_name = _T("");
m_prehandinmoney = _T("");
m_realdays = 0.0f;
m_realget_roommoney = _T("");
m_reback_money = _T("");
m_roomlevel = _T("");
m_roomnumber = _T("");
m_sum_roommoney = _T("");
m_tel_money = _T("");
m_park_money = _T("");
m_mix_money = _T("");
m_mend_money = _T("");
m_meeting_money = _T("");
m_checkout_zhenjiannumber = _T("");
m_checkoutzhenjian_number = _T("");
m_zhengjiankind = _T("");
m_checkoutroommoney = _T("");
// 初始化输入框对应变量完毕
// 更新显示
UpdateData(false);
}

BOOL CCheckoutdlg::PreTranslateMessage(MSG* pMsg)
{
// TO

DO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
{

pMsg->wParam=VK_TAB;//重载回车键盘消息为table键盘消息,ok!2006.4.18

}

return CDialog::PreTranslateMessage(pMsg);
}

相关主题
相关文档
最新文档