📄 reghandmoneydlg.cpp
字号:
// 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 + -