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

📄 reghandmoneydlg.cpp

📁 系统主要包括住宿管理,客房管理,查询统计,报表管理,系统设置五个模块,适用于中小型宾馆酒店。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// Reghandmoneydlg.cpp : implementation file
//

#include "stdafx.h"
#include "Myhotel.h"
#include "Reghandmoneydlg.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; 
extern CString loguserid;
/////////////////////////////////////////////////////////////////////////////
// CReghandmoneydlg dialog


CReghandmoneydlg::CReghandmoneydlg(CWnd* pParent /*=NULL*/)
	: CDialog(CReghandmoneydlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CReghandmoneydlg)
	m_regmoneybegindate = 0;
	m_regmoneybegintime = 0;
	m_regmoneyenddate = 0;
	m_regmoneyendtime = 0;
	m_show_pregetmoney = 0.0f;
	m_show_shouldgetmoney = 0.0f;
	m_showuser = _T("");
	//}}AFX_DATA_INIT
}


void CReghandmoneydlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CReghandmoneydlg)
	DDX_Control(pDX, IDC_LIST_reghandmoney, m_reghandmoney_list);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERregmoney_begindate, m_regmoneybegindate);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERregmoney_begintime, m_regmoneybegintime);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERregmoney_enddate, m_regmoneyenddate);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERregmoney_endtime, m_regmoneyendtime);
	DDX_Text(pDX, IDC_show_pregetmoney, m_show_pregetmoney);
	DDX_Text(pDX, IDC_show_shouldgetmoney, m_show_shouldgetmoney);
	DDX_Text(pDX, IDC_STATICshowuser, m_showuser);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CReghandmoneydlg message handlers

void CReghandmoneydlg::OnOK() 
{
	// TODO: Add extra validation here
		UpdateData(true);
	m_pRecordset.CreateInstance(__uuidof(Recordset));
    
		_variant_t var;
    m_reghandmoney_list.DeleteAllItems();
		int i=0;
	// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
	// 
	try //连接数据库
	{
		m_pRecordset->Open("SELECT * FROM checkinregtable",                // 查询 表中所有字段
							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;
		}

		// read data from the database table 
		while(!m_pRecordset->adoEOF)
		{
			//循环读取数据,并在列表框内实时显示结果
			var = m_pRecordset->GetCollect("住宿日期");
			if(var.vt != VT_NULL)
				m_checkindate = (LPCSTR)_bstr_t(var);//得到住宿日期
            CString inyear,inmonth,inday;
            inyear=m_checkindate.Mid(0,4);
			inmonth=m_checkindate.Mid(5,m_checkindate.Find('-',6)-5);
			inday=m_checkindate.Mid(m_checkindate.ReverseFind('-')+1,m_checkindate.GetLength()-m_checkindate.ReverseFind('-'));
			//构造时间对象
			CTime intime(atoi(inyear),atoi(inmonth),atoi(inday),m_regmoneybegintime.GetHour(),m_regmoneybegintime.GetMinute(),m_regmoneybegintime.GetSecond());
			//构造时间对象
			CTime begintime(m_regmoneybegindate.GetYear(),m_regmoneybegindate.GetMonth(),m_regmoneybegindate.GetDay(),m_regmoneybegintime.GetHour(),m_regmoneybegintime.GetMinute(),m_regmoneybegintime.GetSecond());
			//构造时间对象
			CTime endtime(m_regmoneyenddate.GetYear(),m_regmoneyenddate.GetMonth(),m_regmoneyenddate.GetDay(),m_regmoneyendtime.GetHour(),m_regmoneyendtime.GetMinute(),m_regmoneyendtime.GetSecond());
			
			//如果满足查询要求就查询数据库
			if((intime<endtime)&&(intime>begintime))		
			{
             //读取数据表内凭证号码字段的内容
			    var = m_pRecordset->GetCollect("凭证号码");
			if(var.vt != VT_NULL)
				m_regnumber = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.InsertItem(i,m_regnumber.GetBuffer(50));
            //读取数据表内姓名字段的内容
			var = m_pRecordset->GetCollect("姓名");
			if(var.vt != VT_NULL)
				m_gustname = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,1,m_gustname.GetBuffer(50));
            //读取数据表内证件名称字段的内容
			var = m_pRecordset->GetCollect("证件名称");
			if(var.vt != VT_NULL)
				m_zhengjian = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,2,m_zhengjian.GetBuffer(50));
             //读取数据表内凭证号码字段的内容
			var = m_pRecordset->GetCollect("证件号码");
			if(var.vt != VT_NULL)
				m_zhengjian_number = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,3,m_zhengjian_number.GetBuffer(50));
              //读取数据表内详细地址字段的内容
			var = m_pRecordset->GetCollect("详细地址");
			if(var.vt != VT_NULL)
				m_addr = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,4,m_addr.GetBuffer(50));

		     //读取数据表内房间号字段的内容
			var = m_pRecordset->GetCollect("房间号");
			if(var.vt != VT_NULL)
				m_roomnumber = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,5,m_roomnumber.GetBuffer(50));

			 //读取数据表内客房价格字段的内容
			var = m_pRecordset->GetCollect("客房价格");
			if(var.vt != VT_NULL)
				m_room_money = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,6,m_room_money.GetBuffer(50));
           //读取数据表内住宿日期字段的内容
			var = m_pRecordset->GetCollect("住宿日期");
			if(var.vt != VT_NULL)
				m_checkindate = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,7,m_checkindate.GetBuffer(50));
           //读取数据表内住宿时间字段的内容
			var = m_pRecordset->GetCollect("住宿时间");
			if(var.vt != VT_NULL)
				m_checkintime = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,8,m_checkintime.GetBuffer(50));
            //读取数据表内住宿天数字段的内容
			var = m_pRecordset->GetCollect("住宿天数");
			if(var.vt != VT_NULL)
				m_checkdays = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,9,m_checkdays.GetBuffer(50));
           //读取数据表内宿费字段的内容
			var = m_pRecordset->GetCollect("宿费");
			if(var.vt != VT_NULL)
				m_realmoney = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,10,m_realmoney.GetBuffer(50));
             //读取数据表内折扣字段的内容
			var = m_pRecordset->GetCollect("折扣");
			if(var.vt != VT_NULL)
				m_discountnumber = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,11,m_discountnumber.GetBuffer(50));
               //读取数据表内应收宿费字段的内容
			var = m_pRecordset->GetCollect("应收宿费");
			if(var.vt != VT_NULL)
				m_pre_discount = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,12,m_pre_discount.GetBuffer(50));
            sum_realmoney=sum_realmoney+atof(m_pre_discount);
			//读取数据表内预收金额字段的内容
			var = m_pRecordset->GetCollect("预收金额");
			if(var.vt != VT_NULL)
				m_pre_handinmoney = (LPCSTR)_bstr_t(var);
			//在列表框内显示该字段的值
			m_reghandmoney_list.SetItemText(i,13,m_pre_handinmoney.GetBuffer(50));
            sum_pregetmoney=sum_pregetmoney+atof(m_pre_handinmoney);
			
			i++;
			m_pRecordset->MoveNext();//移动记录指针
		}

			else
			{      //如果不满足查询条件就直接跳过
                m_pRecordset->MoveNext();
				continue;
			}
		}
		// 
		
	}
	catch(_com_error *e)//捕获可能发生的异常情况
	{

⌨️ 快捷键说明

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