📄 setroomdlg.cpp
字号:
// Setroomdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Myhotel.h"
#include "Setroomdlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CMyhotelApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CSetroomdlg dialog
CSetroomdlg::CSetroomdlg(CWnd* pParent /*=NULL*/)
: CDialog(CSetroomdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetroomdlg)
m_roomnumber = _T("");
m_roomset = _T("");
m_room_usesetting = _T("");
m_roommoney = _T("");
m_roomlevel = _T("");
m_roomstate = _T("");
m_room_usetime = 0;
m_beizhu = _T("");
//}}AFX_DATA_INIT
}
void CSetroomdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetroomdlg)
DDX_Control(pDX, IDC_LIST_setroomdlg, m_setroomdlg_list);
DDX_Text(pDX, IDC_roomnumber, m_roomnumber);
DDX_Text(pDX, IDC_setting, m_roomset);
DDX_Text(pDX, IDC_use_setting, m_room_usesetting);
DDX_Text(pDX, IDC_roommoney, m_roommoney);
DDX_CBString(pDX, IDC_COMBO_roomlevel, m_roomlevel);
DDX_CBString(pDX, IDC_COMBO_roomstate, m_roomstate);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_usetime, m_room_usetime);
DDX_Text(pDX, IDC_beizhu, m_beizhu);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetroomdlg, CDialog)
//{{AFX_MSG_MAP(CSetroomdlg)
ON_BN_CLICKED(IDOK_beginsetroom, Onbeginsetroom)
ON_BN_CLICKED(IDcancel_setroom, Onsetroom)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetroomdlg message handlers
void CSetroomdlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CString strSQL,usetime;
// usetime.Format("%d-%d-%d",m_room_usetime.GetYear(),m_room_usetime.GetMonth(),m_room_usetime.GetDay());
int nYear,nDay,nMonth;
CString sYear,sDay,sMonth;
// CTime tTime;
// tTime=tTime.GetCurrentTime();
nYear=m_room_usetime.GetYear();//提取年份
nDay=m_room_usetime.GetDay();//提取日
nMonth=m_room_usetime.GetMonth();//提取月份
sYear.Format("%d",nYear);//转换为字符串
sDay.Format("%d",nDay);//转换为字符串
sMonth.Format("%d",nMonth);//转换为字符串
//格式化时间对象
usetime.Format("%s-%s-%s",sYear,sMonth,sDay);
try
{
// 写入各字段值
m_pRecordset->AddNew();
m_pRecordset->PutCollect("房间号", _variant_t(m_roomnumber));
m_pRecordset->PutCollect("房间类型",_variant_t(m_roomlevel));
m_pRecordset->PutCollect("房态", _variant_t(m_roomstate));
m_pRecordset->PutCollect("使用设置",_variant_t(m_room_usesetting));
m_pRecordset->PutCollect("配置", _variant_t(m_roomset));
m_pRecordset->PutCollect("备注", _variant_t(m_beizhu));
m_pRecordset->PutCollect("价格", _variant_t(m_roommoney));
m_pRecordset->PutCollect("营业日期", _variant_t(usetime));
m_pRecordset->Update();
//更新数据库完毕
MessageBox("设置成功!","客房管理系统");
}
catch(_com_error *e)//捕获可能发生的异常
{
AfxMessageBox(e->ErrorMessage());
}
// CDialog::OnOK();
}
BOOL CSetroomdlg::OnInitDialog()
{
CDialog::OnInitDialog();
CTime tTime;
tTime=tTime.GetCurrentTime();
//设置默认时间
m_room_usetime=tTime;
// TODO: Add extra initialization here
enable(0);
/////////////////////////////////////
//设置列表框颜色
m_setroomdlg_list.SetTextColor(RGB (0, 0, 0));
m_setroomdlg_list.SetTextBkColor(RGB (140, 180, 20));
//列表框初始化
m_setroomdlg_list.InsertColumn(0,"房间号码");
m_setroomdlg_list.InsertColumn(1,"房间类型");
m_setroomdlg_list.InsertColumn(2,"价格");
m_setroomdlg_list.InsertColumn(3,"房态");
m_setroomdlg_list.InsertColumn(4,"标志");
m_setroomdlg_list.InsertColumn(5,"备注");
m_setroomdlg_list.InsertColumn(6,"配置");
m_setroomdlg_list.InsertColumn(7,"使用设置");
m_setroomdlg_list.InsertColumn(8,"营业日期");
RECT rect;
m_setroomdlg_list.GetWindowRect(&rect);
int wid=rect.right-rect.left;
int i=0;
m_setroomdlg_list.SetColumnWidth(0,wid/9);
m_setroomdlg_list.SetColumnWidth(1,wid/9);
m_setroomdlg_list.SetColumnWidth(2,wid/9);
m_setroomdlg_list.SetColumnWidth(3,wid/9);
m_setroomdlg_list.SetColumnWidth(4,wid/9);
m_setroomdlg_list.SetColumnWidth(5,wid/9);
m_setroomdlg_list.SetColumnWidth(6,wid/9);
m_setroomdlg_list.SetColumnWidth(7,wid/9);
m_setroomdlg_list.SetColumnWidth(8,wid/9);
//设置列表框风格
m_setroomdlg_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
///////////////////////////////////////////
m_pRecordset.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
{
MessageBox("表内数据为空","客房管理系统");
return false;
}
// read data from the database table
while(!m_pRecordset->adoEOF)
{//循环读取数据,并在列表框内显示
//读取数据表中房间号对应字段的值
var = m_pRecordset->GetCollect("房间号");
if(var.vt != VT_NULL)
showroom_roomnumber = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.InsertItem(i,showroom_roomnumber.GetBuffer(50));
//读取数据表中房间类型对应字段的值
var = m_pRecordset->GetCollect("房间类型");
if(var.vt != VT_NULL)
showroom_roomlevel = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,1,showroom_roomlevel.GetBuffer(50));
//读取数据表中价格对应字段的值
var = m_pRecordset->GetCollect("价格");
if(var.vt != VT_NULL)
showroom_roommoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,2,showroom_roommoney.GetBuffer(50));
//读取数据表中房态对应字段的值
var = m_pRecordset->GetCollect("房态");
if(var.vt != VT_NULL)
showroom_roomstate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,3,showroom_roomstate.GetBuffer(50));
//读取数据表中标志对应字段的值
var = m_pRecordset->GetCollect("标志");
if(var.vt != VT_NULL)
showroom_roomsign = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,4,showroom_roomsign.GetBuffer(50));
//读取数据表中备注对应字段的值
var = m_pRecordset->GetCollect("备注");
if(var.vt != VT_NULL)
showroom_roombeizhu = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,5,showroom_roombeizhu.GetBuffer(50));
//读取数据表中配置对应字段的值
var = m_pRecordset->GetCollect("配置");
if(var.vt != VT_NULL)
showroom_roomsetting = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,6,showroom_roomsetting.GetBuffer(50));
//读取数据表中使用设置对应字段的值
var = m_pRecordset->GetCollect("使用设置");
if(var.vt != VT_NULL)
showroom_roomusesetting = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,7,showroom_roomusesetting.GetBuffer(50));
//读取数据表中营业日期对应字段的值
var = m_pRecordset->GetCollect("营业日期");
if(var.vt != VT_NULL)
showroom_roomusedate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的内容
m_setroomdlg_list.SetItemText(i,8,showroom_roomusedate.GetBuffer(50));
i++;
//移动记录集指针到下一条记录
m_pRecordset->MoveNext();
}
//
}
catch(_com_error *e)//捕获可能发生的异常
{
AfxMessageBox(e->ErrorMessage());
}
// 关闭记录集
// m_pRecordset->Close();
// m_pRecordset = NULL;
//更新显示
UpdateData(false);
}
void CSetroomdlg::Onbeginsetroom()
{
// TODO: Add your control notification handler code here
enable(1);
}
void CSetroomdlg::enable(bool bEnabled)
{
// m_ComYSFS.EnableWindow(bEnabled);
//改变各个控件的状态
GetDlgItem(IDC_roomnumber)->EnableWindow(bEnabled);
GetDlgItem(IDC_setting)->EnableWindow(bEnabled);
GetDlgItem(IDC_use_setting)->EnableWindow(bEnabled);
GetDlgItem(IDC_roommoney)->EnableWindow(bEnabled);
GetDlgItem(IDC_COMBO_roomlevel)->EnableWindow(bEnabled);
GetDlgItem(IDC_COMBO_roomstate)->EnableWindow(bEnabled);
GetDlgItem(IDC_DATETIMEPICKER_usetime)->EnableWindow(bEnabled);
GetDlgItem(IDC_beizhu)->EnableWindow(bEnabled);
GetDlgItem(IDOK)->EnableWindow(bEnabled);
}
void CSetroomdlg::Onsetroom()
{
// TODO: Add your control notification handler code here
//变量初始化
m_roomnumber = _T("");
m_roomset = _T("");
m_room_usesetting = _T("");
m_roommoney = _T("");
m_roomlevel = _T("");
m_roomstate = _T("");
m_room_usetime = 0;
m_beizhu = _T("");
//更新显示
UpdateData(false);
}
BOOL CSetroomdlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 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);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -