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

📄 userregview.cpp

📁 这是我们数据库实习的作业。完成了大部分酒店管理功能
💻 CPP
字号:
// UserRegView.cpp : implementation file
//

#include "stdafx.h"
#include "Final.h"
#include "UserRegView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUserRegView

IMPLEMENT_DYNCREATE(CUserRegView, CFormView)

CUserRegView::CUserRegView()
	: CFormView(CUserRegView::IDD)
{
	//{{AFX_DATA_INIT(CUserRegView)
	m_orderid = _T("");
	m_prepay = 0;
	m_guestName = _T("");
	m_guestID = _T("");
	m_guestPost = _T("");
	m_guestNation = _T("");
	m_RoomID = _T("");
	m_orderid2 = _T("");
	m_prepay2 = 0;
	m_guestTel = _T("");
	//}}AFX_DATA_INIT
	CFinalApp *pApp=(CFinalApp *)AfxGetApp();
	m_pConn=pApp->m_pConnection;
	m_pRadio1=NULL;
	m_guestSex="男";

}

CUserRegView::~CUserRegView()
{
}

void CUserRegView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUserRegView)
	DDX_Control(pDX, IDC_COMBO1, m_ComBox1);
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	DDX_Text(pDX, IDC_EDIT1, m_orderid);
	DDV_MaxChars(pDX, m_orderid, 6);
	DDX_Text(pDX, IDC_EDIT2, m_prepay);
	DDV_MinMaxInt(pDX, m_prepay, 0, 20000);
	DDX_Text(pDX, IDC_EDIT3, m_guestName);
	DDV_MaxChars(pDX, m_guestName, 10);
	DDX_Text(pDX, IDC_EDIT4, m_guestID);
	DDV_MaxChars(pDX, m_guestID, 18);
	DDX_Text(pDX, IDC_EDIT5, m_guestPost);
	DDV_MaxChars(pDX, m_guestPost, 6);
	DDX_Text(pDX, IDC_EDIT7, m_guestNation);
	DDV_MaxChars(pDX, m_guestNation, 10);
	DDX_Text(pDX, IDC_EDIT8, m_RoomID);
	DDV_MaxChars(pDX, m_RoomID, 3);
	DDX_Text(pDX, IDC_EDIT9, m_orderid2);
	DDV_MaxChars(pDX, m_orderid2, 6);
	DDX_Text(pDX, IDC_EDIT10, m_prepay2);
	DDV_MinMaxInt(pDX, m_prepay2, 0, 20000);
	DDX_Text(pDX, IDC_EDIT6, m_guestTel);
	DDV_MaxChars(pDX, m_guestTel, 15);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUserRegView, CFormView)
	//{{AFX_MSG_MAP(CUserRegView)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_BUTTON1, OnSignIn)
	ON_BN_CLICKED(IDC_BUTTON2, OnAddGuest)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUserRegView diagnostics

#ifdef _DEBUG
void CUserRegView::AssertValid() const
{
	CFormView::AssertValid();
}

void CUserRegView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CUserRegView message handlers

void CUserRegView::OnRadio1() 
{
	GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT7)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT8)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT9)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT10)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_COMBO1)->EnableWindow(FALSE);

}

void CUserRegView::OnRadio2() 
{
	GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT7)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT8)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT9)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT10)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
	GetDlgItem(IDC_COMBO1)->EnableWindow(TRUE);	
}

void CUserRegView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	m_ListCtrl.InsertColumn(0,"流水号",LVCFMT_LEFT,60);	
	m_ListCtrl.InsertColumn(1,"客户姓名",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(2,"性别",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(3,"身份证号",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(4,"房间号",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(5,"房间类型",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(6,"房间价格",LVCFMT_LEFT,60);
	m_ListCtrl.InsertColumn(7,"入住时间",LVCFMT_LEFT,60);
	m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
	m_pRadio1=(CButton *)GetDlgItem(IDC_RADIO1);
	m_pRadio1->SetCheck(BST_CHECKED);
	m_ComBox1.AddString("男");
	m_ComBox1.AddString("女");
	GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT7)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT8)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT9)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_COMBO1)->EnableWindow(FALSE);
	CUserRegView::Refresh();
}

void CUserRegView::OnSignIn() 
{
	UpdateData(TRUE);
	if(m_orderid==""||m_prepay<0)AfxMessageBox("输入数据有错误!");
	else
	{
	_CommandPtr m_pComm;
	m_pComm.CreateInstance(__uuidof(Command));
	try
	{
		m_pComm->ActiveConnection=m_pConn;
		m_pComm->CommandText=_bstr_t("signin");
		m_pComm->CommandType=adCmdStoredProc;
		_variant_t vvar1,vvar2;
		vvar1=_variant_t(m_orderid);
		vvar2.vt=VT_I2;
		vvar2.intVal=m_prepay;
		_ParameterPtr mp_var1,mp_var2;
		mp_var1.CreateInstance(__uuidof(Parameter));
		mp_var2.CreateInstance(__uuidof(Parameter));
		mp_var1=m_pComm->CreateParameter(
			_bstr_t("orderid"),
			adVarChar,
			adParamInput,
			6,
			vvar1);
		m_pComm->Parameters->Append(mp_var1); 

		mp_var2=m_pComm->CreateParameter(
			_bstr_t("prepay"),
			adInteger,
			adParamInput,
			9,
			vvar2);
		m_pComm->Parameters->Append(mp_var2); 
		m_pComm->Execute(NULL,NULL,adCmdStoredProc);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	}  //else
	GetDlgItem(IDC_EDIT1)->SetWindowText("");
	GetDlgItem(IDC_EDIT2)->SetWindowText("");
	CUserRegView::Refresh();
}

void CUserRegView::OnAddGuest() 
{
	UpdateData(TRUE);
	int i=m_ComBox1.GetCurSel();
	m_ComBox1.GetLBText(i,m_guestSex);
	if(m_guestID==""||m_guestName==""||m_guestNation==""||m_guestPost==""||m_guestSex==""||m_guestTel==""||m_orderid2==""||m_RoomID=="")
		AfxMessageBox("输入的数据不完整,请重新输入!");
	else
	{
		_RecordsetPtr m_pAddGuestRst;
		m_pAddGuestRst.CreateInstance(__uuidof(Recordset));
		CString sql;
		sql.Format("select * from guestdata where roomID='%s'",m_RoomID);
		try
		{
			m_pAddGuestRst->Open(_variant_t(sql),
			m_pConn.GetInterfacePtr(),	 // 获取库接库的IDispatch指针
			adOpenDynamic,
			adLockOptimistic,
			adCmdText);
		}
		catch(_com_error *es)
		{
			AfxMessageBox(es->ErrorMessage());
		}

		if(!m_pAddGuestRst->adoEOF)AfxMessageBox("指定房间已经被使用!");
		else
		{
			m_pAddGuestRst->AddNew();
			m_pAddGuestRst->PutCollect("guestID",_variant_t(m_guestID));
			m_pAddGuestRst->PutCollect("guestName",_variant_t(m_guestName));
			m_pAddGuestRst->PutCollect("guestNation",_variant_t(m_guestNation));
			m_pAddGuestRst->PutCollect("guestPost",_variant_t(m_guestPost));
			m_pAddGuestRst->PutCollect("guestTel",_variant_t(m_guestTel));
			m_pAddGuestRst->PutCollect("RoomID",_variant_t(m_RoomID));
			m_pAddGuestRst->PutCollect("orderid",_variant_t(m_orderid2));
			m_pAddGuestRst->PutCollect("guestSex",_variant_t(m_guestSex));
			m_pAddGuestRst->Update();
			
			_CommandPtr m_pComm;
			m_pComm.CreateInstance(__uuidof(Command));
			try
			{
				m_pComm->ActiveConnection=m_pConn;
				m_pComm->CommandText=_bstr_t("addguest");
				m_pComm->CommandType=adCmdStoredProc;
				_variant_t vvar1,vvar2;
				vvar1=_variant_t(m_orderid2);
				vvar2.vt=VT_I2;
				vvar2.intVal=m_prepay2;
				_ParameterPtr mp_var1,mp_var2;
				mp_var1.CreateInstance(__uuidof(Parameter));
				mp_var2.CreateInstance(__uuidof(Parameter));
				mp_var1=m_pComm->CreateParameter(
					_bstr_t("orderid"),
					adVarChar,
					adParamInput,
					6,
					vvar1);
				m_pComm->Parameters->Append(mp_var1); 

				mp_var2=m_pComm->CreateParameter(
					_bstr_t("prepay"),
					adInteger,
					adParamInput,
					9,
					vvar2);
				m_pComm->Parameters->Append(mp_var2); 
				m_pComm->Execute(NULL,NULL,adCmdStoredProc);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	GetDlgItem(IDC_EDIT3)->SetWindowText("");
	GetDlgItem(IDC_EDIT4)->SetWindowText("");
	GetDlgItem(IDC_EDIT5)->SetWindowText("");
	GetDlgItem(IDC_EDIT6)->SetWindowText("");
	GetDlgItem(IDC_EDIT7)->SetWindowText("");
	GetDlgItem(IDC_EDIT8)->SetWindowText("");
	GetDlgItem(IDC_EDIT9)->SetWindowText("");
	GetDlgItem(IDC_EDIT10)->SetWindowText("");


		}

	}
	CUserRegView::Refresh();
}

void CUserRegView::Refresh()
{
	_variant_t var1,var2,var3,var4,var5,var6,var7,var8;
	_CommandPtr m_pCommand;
	m_pCommand.CreateInstance(__uuidof(Command));
	_RecordsetPtr m_pRst;
	m_pRst.CreateInstance(__uuidof(Recordset));
	m_ListCtrl.DeleteAllItems();
	try
	{
		m_pCommand->ActiveConnection=m_pConn;
		m_pCommand->CommandText=_bstr_t("querycheckin");
		m_pCommand->CommandType=adCmdStoredProc;
		m_pRst=m_pCommand->Execute(NULL,NULL,adCmdStoredProc);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	int i=-1;
	while(!m_pRst->adoEOF)
	{
		var1=m_pRst->GetCollect("orderid");
		var2=m_pRst->GetCollect("guestName");
		var3=m_pRst->GetCollect("guestSex");
		var4=m_pRst->GetCollect("guestID");
		var5=m_pRst->GetCollect("RoomID");
		var6=m_pRst->GetCollect("roomLevel");
		var7=m_pRst->GetCollect("roomPrice");
		var8=m_pRst->GetCollect("guestEnterTime");
		LV_ITEM lvitem;
		lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
			lvitem.state = 0;      
			lvitem.stateMask = 0;
			char temp[50];
			lvitem.iItem = ++i;
			lvitem.iSubItem = 0;
			lvitem.pszText =itoa(i, temp, 10);
			m_ListCtrl.InsertItem(&lvitem);
		m_ListCtrl.SetItemText(i, 0, _T((LPCSTR)_bstr_t(var1)));
		m_ListCtrl.SetItemText(i, 1, _T((LPCSTR)_bstr_t(var2)));
		m_ListCtrl.SetItemText(i, 2, _T((LPCSTR)_bstr_t(var3)));
		m_ListCtrl.SetItemText(i, 3, _T((LPCSTR)_bstr_t(var4)));
		m_ListCtrl.SetItemText(i, 4, _T((LPCSTR)_bstr_t(var5)));
		m_ListCtrl.SetItemText(i, 5, _T((LPCSTR)_bstr_t(var6)));
		m_ListCtrl.SetItemText(i, 6, _T((LPCSTR)_bstr_t(var7)));
		m_ListCtrl.SetItemText(i, 7, _T((LPCSTR)_bstr_t(var8)));
		m_pRst->MoveNext();
	}
}

⌨️ 快捷键说明

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