⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setroomdlg.cpp

📁 系统主要包括住宿管理,客房管理,查询统计,报表管理,系统设置五个模块,适用于中小型宾馆酒店。
💻 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 + -