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

📄 findprebookroomdlg.cpp

📁 系统将动态实时的住宿登记、客房调整、销售报表、追加押金等有机地联系在一起
💻 CPP
字号:
// Findprebookroomdlg.cpp : implementation file
//

#include "stdafx.h"
#include "Myhotel.h"
#include "Findprebookroomdlg.h"
#include <stdlib.h>
#include <stdio.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CMyhotelApp theApp; 
/////////////////////////////////////////////////////////////////////////////
// CFindprebookroomdlg dialog


CFindprebookroomdlg::CFindprebookroomdlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFindprebookroomdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFindprebookroomdlg)
	m_findprebookroom_name = _T("");
	//}}AFX_DATA_INIT
}


void CFindprebookroomdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFindprebookroomdlg)
	DDX_Control(pDX, IDC_LIST_findprebookroom, m_findprebookroom_list);
	DDX_Text(pDX, IDC_prebook_findname, m_findprebookroom_name);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFindprebookroomdlg, CDialog)
	//{{AFX_MSG_MAP(CFindprebookroomdlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFindprebookroomdlg message handlers

BOOL CFindprebookroomdlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	//设置列表框颜色
	m_findprebookroom_list.SetTextColor(RGB (0, 0, 0));
	m_findprebookroom_list.SetTextBkColor(RGB (140, 180, 20));
	//列表框初始化
	m_findprebookroom_list.InsertColumn(0,"姓名");
	m_findprebookroom_list.InsertColumn(1,"身份证号");
	m_findprebookroom_list.InsertColumn(2,"联系电话");
	m_findprebookroom_list.InsertColumn(3,"详细地址");
	m_findprebookroom_list.InsertColumn(4,"工作单位");
	
	m_findprebookroom_list.InsertColumn(5,"房间类型");
	

	m_findprebookroom_list.InsertColumn(6,"客房价格");
	m_findprebookroom_list.InsertColumn(7,"预住日期");
	
	m_findprebookroom_list.InsertColumn(8,"预住天数");


	m_findprebookroom_list.InsertColumn(9,"预收金额");
	m_findprebookroom_list.InsertColumn(10,"备注");
	m_findprebookroom_list.InsertColumn(11,"日期");

	m_findprebookroom_list.InsertColumn(12,"操作员");

	
	RECT rect;
	m_findprebookroom_list.GetWindowRect(&rect);
	int wid=rect.right-rect.left;
	int i=0;
	m_findprebookroom_list.SetColumnWidth(0,wid/12);
	m_findprebookroom_list.SetColumnWidth(1,wid/12);
	m_findprebookroom_list.SetColumnWidth(2,wid/12);
	m_findprebookroom_list.SetColumnWidth(3,wid/12);
	m_findprebookroom_list.SetColumnWidth(4,wid/12);
	m_findprebookroom_list.SetColumnWidth(5,wid/12);
	m_findprebookroom_list.SetColumnWidth(6,wid/12);
	m_findprebookroom_list.SetColumnWidth(7,wid/12);
	
	m_findprebookroom_list.SetColumnWidth(8,wid/12);
	m_findprebookroom_list.SetColumnWidth(9,wid/12);
	m_findprebookroom_list.SetColumnWidth(10,wid/12);
	m_findprebookroom_list.SetColumnWidth(11,wid/12);

	m_findprebookroom_list.SetColumnWidth(12,wid/12);
	

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

		_variant_t var;

	// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
	// 
	try
	{//打开数据库
		m_pRecordset->Open("SELECT * FROM kfyd",                // 查询 表中所有字段
							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)
				gustname = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.InsertItem(i,gustname.GetBuffer(50));
           //读取数据表内身份证号字段的内容
			var = m_pRecordset->GetCollect("身份证号");
			if(var.vt != VT_NULL)
				id_number = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,1,id_number.GetBuffer(50));
             //读取数据表内联系电话字段的内容
			var = m_pRecordset->GetCollect("联系电话");
			if(var.vt != VT_NULL)
				m_tel = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,2,m_tel.GetBuffer(50));
          //读取数据表内详细地址字段的内容
			var = m_pRecordset->GetCollect("详细地址");
			if(var.vt != VT_NULL)
				gustaddr = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,3,gustaddr.GetBuffer(100));
           //读取数据表内工作单位字段的内容
			var = m_pRecordset->GetCollect("工作单位");
			if(var.vt != VT_NULL)
				workcompany = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,4,workcompany.GetBuffer(50));

		      //读取数据表内客房类型字段的内容
			var = m_pRecordset->GetCollect("客房类型");
			if(var.vt != VT_NULL)
				roomlevel = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,5,roomlevel.GetBuffer(50));
             //读取数据表内房间价格字段的内容
			var = m_pRecordset->GetCollect("房间价格");
			if(var.vt != VT_NULL)
				room_money = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,6,room_money.GetBuffer(50));
            //读取数据表内预住日期字段的内容
			var = m_pRecordset->GetCollect("预住日期");
			if(var.vt != VT_NULL)
				precheckindate = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,7,precheckindate.GetBuffer(50));

		      //读取数据表内预住天数字段的内容
			var = m_pRecordset->GetCollect("预住天数");
			if(var.vt != VT_NULL)
				precheckdays = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,8,precheckdays.GetBuffer(50));

			//读取数据表内预付金额字段的内容
			var = m_pRecordset->GetCollect("预付金额");
			if(var.vt != VT_NULL)
				pre_handinmoney = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,9,pre_handinmoney.GetBuffer(50));
            //读取数据表内备注字段的内容
			var = m_pRecordset->GetCollect("备注");
			if(var.vt != VT_NULL)
				beizhu = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,10,beizhu.GetBuffer(50));
         
			//读取数据表内日期字段的内容
			var = m_pRecordset->GetCollect("日期");
			if(var.vt != VT_NULL)
				dopredate = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,11,dopredate.GetBuffer(50));
            //读取数据表内操作员字段的内容
			var = m_pRecordset->GetCollect("操作员");
			if(var.vt != VT_NULL)
				caozuoman = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,12,caozuoman.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 CFindprebookroomdlg::OnOK() 
{
	// TODO: Add extra validation here

	m_findprebookroom_list.DeleteAllItems();
	m_pRecordsetfind.CreateInstance(__uuidof(Recordset));
	
	UpdateData(true);
	_variant_t var;
	CString strsqlfind;
   strsqlfind.Format("SELECT * FROM kfyd WHERE 姓名='%s'",m_findprebookroom_name);
	 
	// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
	// 
	try
	{//打开数据库
		m_pRecordsetfind->Open(_variant_t(strsqlfind),                // 查询 表中所有字段
							theApp.m_pConnection.GetInterfacePtr(),	 // 获取库接库的IDispatch指针
							adOpenDynamic,
							adLockOptimistic,
							adCmdText);
	}
	catch(_com_error *e)//捕获打开数据库时候可能发生的异常
	{
		AfxMessageBox(e->ErrorMessage());
	}
	int i=0;
	try
	{
		if(!m_pRecordsetfind->BOF)//判断指针是否在数据集最后
			m_pRecordsetfind->MoveFirst();
		else
		{
			MessageBox("表内数据为空","客房管理系统");
			return;
		}

	    //读取数据库内的相应的数据,实时在列表框内显示
		//读取数据表内姓名字段的内容
			var = m_pRecordsetfind->GetCollect("姓名");
			if(var.vt != VT_NULL)
				gustname = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.InsertItem(i,gustname.GetBuffer(50));
           //读取数据表内身份证号字段的内容
			var = m_pRecordsetfind->GetCollect("身份证号");
			if(var.vt != VT_NULL)
				id_number = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,1,id_number.GetBuffer(50));
             //读取数据表内联系电话字段的内容
			var =m_pRecordsetfind->GetCollect("联系电话");
			if(var.vt != VT_NULL)
				m_tel = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,2,m_tel.GetBuffer(50));
            //读取数据表内详细地址字段的内容
			var = m_pRecordsetfind->GetCollect("详细地址");
			if(var.vt != VT_NULL)
				gustaddr = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,3,gustaddr.GetBuffer(100));
             //读取数据表内工作单位字段的内容
			var = m_pRecordsetfind->GetCollect("工作单位");
			if(var.vt != VT_NULL)
				workcompany = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,4,workcompany.GetBuffer(50));

		     //读取数据表内客房类型字段的内容
			var = m_pRecordsetfind->GetCollect("客房类型");
			if(var.vt != VT_NULL)
				roomlevel = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,5,roomlevel.GetBuffer(50));
           //读取数据表内房间价格字段的内容
			var = m_pRecordsetfind->GetCollect("房间价格");
			if(var.vt != VT_NULL)
				room_money = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,6,room_money.GetBuffer(50));
              //读取数据表内预住日期字段的内容
			var = m_pRecordsetfind->GetCollect("预住日期");
			if(var.vt != VT_NULL)
				precheckindate = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,7,precheckindate.GetBuffer(50));

		      //读取数据表内预住天数字段的内容
			var = m_pRecordsetfind->GetCollect("预住天数");
			if(var.vt != VT_NULL)
				precheckdays = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,8,precheckdays.GetBuffer(50));

			//读取数据表内预付金额字段的内容
			var = m_pRecordsetfind->GetCollect("预付金额");
			if(var.vt != VT_NULL)
				pre_handinmoney = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,9,pre_handinmoney.GetBuffer(50));
            //读取数据表内备注字段的内容
			var =m_pRecordsetfind->GetCollect("备注");
			if(var.vt != VT_NULL)
				beizhu = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,10,beizhu.GetBuffer(50));

			//读取数据表内日期字段的内容
			var = m_pRecordsetfind->GetCollect("日期");
			if(var.vt != VT_NULL)
				dopredate = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,11,dopredate.GetBuffer(50));
            //读取数据表内操作员字段的内容
			var =m_pRecordsetfind->GetCollect("操作员");
			if(var.vt != VT_NULL)
				caozuoman = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_findprebookroom_list.SetItemText(i,12,caozuoman.GetBuffer(50));

		

		// 
		
	}
	catch(_com_error *e)//捕获可能出现的异常
	{
		AfxMessageBox(e->ErrorMessage());
	}

	// 关闭记录集
	m_pRecordsetfind->Close();
	m_pRecordsetfind = NULL;
    //更新显示
	UpdateData(false);	
//	CDialog::OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -