📄 findroomdlg.cpp
字号:
// Findroomdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Myhotel.h"
#include "Findroomdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CMyhotelApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CFindroomdlg dialog
CFindroomdlg::CFindroomdlg(CWnd* pParent /*=NULL*/)
: CDialog(CFindroomdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFindroomdlg)
m_findroom_roomnumber = _T("");
m_findroomdlgroomnumber = _T("");
m_findroom_roomlevel = _T("");
m_findroom_roommoney = _T("");
m_findroom_foomsign = _T("");
m_findroom_state = _T("");
m_findroom_setting = _T("");
m_findroom_usedate = _T("");
m_findroom_usesetting = _T("");
m_findroom_beizhu = _T("");
//}}AFX_DATA_INIT
}
void CFindroomdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFindroomdlg)
DDX_Control(pDX, IDC_COMBO_findroomnumber, m_findroomdlgroomnumberctr);
DDX_Control(pDX, IDC_LIST_findroom, m_findroom_list);
DDX_CBString(pDX, IDC_COMBO_findroomnumber, m_findroomdlgroomnumber);
DDX_Text(pDX, IDC_findroom_roomlevel, m_findroom_roomlevel);
DDX_Text(pDX, IDC_findroom_roommoney, m_findroom_roommoney);
DDX_Text(pDX, IDC_findroom_roomsign, m_findroom_foomsign);
DDX_Text(pDX, IDC_findroom_roomstate, m_findroom_state);
DDX_Text(pDX, IDC_findroom_setting, m_findroom_setting);
DDX_Text(pDX, IDC_findroom_usedate, m_findroom_usedate);
DDX_Text(pDX, IDC_findroom_usesetting, m_findroom_usesetting);
DDX_Text(pDX, IDC_findroom_beizhu, m_findroom_beizhu);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFindroomdlg, CDialog)
//{{AFX_MSG_MAP(CFindroomdlg)
ON_CBN_CLOSEUP(IDC_COMBO_findroomnumber, OnCloseupCOMBOfindroomnumber)
ON_NOTIFY(NM_CLICK, IDC_LIST_findroom, OnClickLISTfindroom)
ON_BN_CLICKED(ID_findroom_delete, Onfindroomdelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFindroomdlg message handlers
BOOL CFindroomdlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_findroom_list.SetTextColor(RGB (0, 0, 0));
m_findroom_list.SetTextBkColor(RGB (140, 180, 20));
//设置列表框颜色完毕
//初始化列表框
m_findroom_list.InsertColumn(0,"房间号码");
m_findroom_list.InsertColumn(1,"房间类型");
m_findroom_list.InsertColumn(2,"价格");
m_findroom_list.InsertColumn(3,"房态");
m_findroom_list.InsertColumn(4,"标志");
m_findroom_list.InsertColumn(5,"备注");
m_findroom_list.InsertColumn(6,"配置");
m_findroom_list.InsertColumn(7,"使用设置");
m_findroom_list.InsertColumn(8,"营业日期");
RECT rect;
m_findroom_list.GetWindowRect(&rect);
int wid=rect.right-rect.left;
int i=0;
m_findroom_list.SetColumnWidth(0,wid/9);
m_findroom_list.SetColumnWidth(1,wid/9);
m_findroom_list.SetColumnWidth(2,wid/9);
m_findroom_list.SetColumnWidth(3,wid/9);
m_findroom_list.SetColumnWidth(4,wid/9);
m_findroom_list.SetColumnWidth(5,wid/9);
m_findroom_list.SetColumnWidth(6,wid/9);
m_findroom_list.SetColumnWidth(7,wid/9);
m_findroom_list.SetColumnWidth(8,wid/9);
//设置列表框风格
m_findroom_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
///////////////////////////////////////////
m_pRecordsetout.CreateInstance(__uuidof(Recordset));
m_pRecordset.CreateInstance(__uuidof(Recordset));
//m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordsetdel.CreateInstance(__uuidof(Recordset));
_variant_t var;
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
try//打开数据库
{
m_pRecordset->Open("SELECT * FROM roomsetting", // 查询 表中所有字段
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;
}
m_findroomdlgroomnumberctr.ResetContent();
// read data from the database table
while(!m_pRecordset->adoEOF)
{//循环读入数据,实时在列表框内显示
//读取数据表内房间号字段数据
var = m_pRecordset->GetCollect("房间号");
if(var.vt != VT_NULL)
findroom_roomnumber = (LPCSTR)_bstr_t(var);
m_findroomdlgroomnumberctr.AddString(findroom_roomnumber);
//在列表框内显示该字段的内容
m_findroom_list.InsertItem(i,findroom_roomnumber.GetBuffer(50));
//读取数据表内房间类型字段数据
var = m_pRecordset->GetCollect("房间类型");
if(var.vt != VT_NULL)
findroom_roomlevel = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,1,findroom_roomlevel.GetBuffer(50));
//读取数据表内价格字段数据
var = m_pRecordset->GetCollect("价格");
if(var.vt != VT_NULL)
findroom_roommoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,2,findroom_roommoney.GetBuffer(50));
//读取数据表内房态字段数据
var = m_pRecordset->GetCollect("房态");
if(var.vt != VT_NULL)
findroom_roomstate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,3,findroom_roomstate.GetBuffer(50));
//读取数据表内标志字段数据
var = m_pRecordset->GetCollect("标志");
if(var.vt != VT_NULL)
findroom_roomsign = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,4,findroom_roomsign.GetBuffer(50));
//读取数据表内备注字段数据
var = m_pRecordset->GetCollect("备注");
if(var.vt != VT_NULL)
findroom_roombeizhu = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,5,findroom_roombeizhu.GetBuffer(50));
//读取数据表内配置字段数据
var = m_pRecordset->GetCollect("配置");
if(var.vt != VT_NULL)
findroom_roomsetting = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,6,findroom_roomsetting.GetBuffer(50));
//读取数据表内使用设置字段数据
var = m_pRecordset->GetCollect("使用设置");
if(var.vt != VT_NULL)
findroom_roomusesetting = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,7,findroom_roomusesetting.GetBuffer(50));
//读取数据表内营业日期字段数据
var = m_pRecordset->GetCollect("营业日期");
if(var.vt != VT_NULL)
findroom_roomusedate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_findroom_list.SetItemText(i,8,findroom_roomusedate.GetBuffer(50));
i++;
//移动记录指针
m_pRecordset->MoveNext();
}
//
}
catch(_com_error *e)//捕获可能的读取数据异常情况
{
AfxMessageBox(e->ErrorMessage());
}
// 关闭记录集
m_pRecordset->Close();
// m_pRecordset = NULL;
//更新显示
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFindroomdlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
if(m_findroomdlgroomnumber=="")
{
MessageBox("请先选择房间号!否则操作非法!","客房管理系统");
return;
}
//INSERT INTO checkinregtable (凭证号码)VALUES('%s')
CString strsqlmend;
strsqlmend.Format("SELECT * FROM roomsetting where 房间号='%s'",m_findroomdlgroomnumber);
m_pRecordsetout->raw_Close();
try
{ //打开数据库
m_pRecordsetout->Open(_variant_t(strsqlmend), // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{//捕获可能的异常情况,实施提示用户
AfxMessageBox(e->Description());
}
try
{ //将变量数据写入数据库
//将对应输入内容写入房间类型字段内
m_pRecordsetout->PutCollect("房间类型", _variant_t(m_findroom_roomlevel));
//将对应输入内容写入价格字段内
m_pRecordsetout->PutCollect("价格", _variant_t(m_findroom_roommoney));
//将对应输入内容写入房态字段内
m_pRecordsetout->PutCollect("房态", _variant_t(m_findroom_state));
//将对应输入内容写入标志字段内
//m_pRecordsetout->PutCollect("标志", _variant_t(m_findroom_foomsign));
//将对应输入内容写入备注字段内
m_pRecordsetout->PutCollect("备注", _variant_t(m_findroom_beizhu));
//将对应输入内容写入配置字段内
m_pRecordsetout->PutCollect("配置", _variant_t(m_findroom_setting));
//将对应输入内容写入使用设置字段内
m_pRecordsetout->PutCollect("使用设置", _variant_t(m_findroom_usesetting));
//将对应输入内容写入营业日期字段内
m_pRecordsetout->PutCollect("营业日期", _variant_t(m_findroom_usedate));
m_pRecordsetout->Update();
//完成更新数据库
MessageBox("修改成功!","客房管理系统");
// UpdateData(false);
}
catch(_com_error *e)//捕获异常
{
AfxMessageBox(e->ErrorMessage());
}
CDialog::OnOK();
}
void CFindroomdlg::OnCloseupCOMBOfindroomnumber()
{
// TODO: Add your control notification handler code here
m_findroom_list.DeleteAllItems();
_variant_t var;
// 使用ADO创建数据库记录集
// m_pRecordsetout.CreateInstance(__uuidof(Recordset));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
UpdateData(true);//读入变量对应的数据
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -