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

📄 findroomdlg.cpp

📁 系统将动态实时的住宿登记、客房调整、销售报表等有机地联系在一起
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -