📄 roomsalestaticdlg.cpp
字号:
// Roomsalestaticdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Myhotel.h"
#include "Roomsalestaticdlg.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;
/////////////////////////////////////////////////////////////////////////////
// CRoomsalestaticdlg dialog
CRoomsalestaticdlg::CRoomsalestaticdlg(CWnd* pParent /*=NULL*/)
: CDialog(CRoomsalestaticdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRoomsalestaticdlg)
m_selectstaticyear = _T("");
m_showuser = _T("");
//}}AFX_DATA_INIT
}
void CRoomsalestaticdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRoomsalestaticdlg)
DDX_Control(pDX, IDC_LIST_roomsalestatic, m_roomsalestatic_list);
DDX_CBString(pDX, IDC_COMBO_selectstaticyear, m_selectstaticyear);
DDX_Text(pDX, IDC_STATICshowuser, m_showuser);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRoomsalestaticdlg, CDialog)
//{{AFX_MSG_MAP(CRoomsalestaticdlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRoomsalestaticdlg message handlers
void CRoomsalestaticdlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
m_pRecordset.CreateInstance(__uuidof(Recordset));
_variant_t var;
//删除列表框内所有内容
m_roomsalestatic_list.DeleteAllItems();
int i=0;
//变量赋值0,初始化
m_show_meetingmoney=0;
m_show_backroommoney=0;
m_show_mendmoney=0;
m_show_mixmoney=0;
m_show_parkmoney=0;
m_show_pregetroommoney=0;
m_show_shouldgetmoney=0;
m_show_sumgetmoney=0;
m_show_telmoney=0;
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
try
{//打开数据表
m_pRecordset->Open("SELECT * FROM checkoutregtable", // 查询表中所有字段
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_checkoutdate = (LPCSTR)_bstr_t(var);
CString outyear;
outyear=m_checkoutdate.Mid(0,4);
if(m_selectstaticyear==outyear)
{ //查询满足条件的记录
//读取数据表内退房日期字段的内容
var = m_pRecordset->GetRecordCount();
if(var.vt != VT_NULL)
m_recordcount = (LPCSTR)_bstr_t(var);
//读取数据表内应收宿费字段的内容
var = m_pRecordset->GetCollect("应收宿费");
if(var.vt != VT_NULL)
m_pre_discount = (LPCSTR)_bstr_t(var);
m_show_shouldgetmoney=m_show_shouldgetmoney+atof(m_pre_discount);
//读取数据表内杂费字段的内容
var = m_pRecordset->GetCollect("杂费");
if(var.vt != VT_NULL)
m_mix_money = (LPCSTR)_bstr_t(var);
m_show_mixmoney=m_show_mixmoney+atof(m_mix_money);
//读取数据表内电话费字段的内容
var = m_pRecordset->GetCollect("电话费");
if(var.vt != VT_NULL)
m_tel_money = (LPCSTR)_bstr_t(var);
m_show_telmoney=m_show_telmoney+atof(m_tel_money);
//读取数据表内会议费字段的内容
var = m_pRecordset->GetCollect("会议费");
if(var.vt != VT_NULL)
m_meeting_money = (LPCSTR)_bstr_t(var);
m_show_meetingmoney=m_show_meetingmoney+atof(m_meeting_money);
//读取数据表内存车费字段的内容
var = m_pRecordset->GetCollect("存车费");
if(var.vt != VT_NULL)
m_park_money = (LPCSTR)_bstr_t(var);
m_show_parkmoney=m_show_parkmoney+atof(m_park_money);
//读取数据表内赔偿费字段的内容
var = m_pRecordset->GetCollect("赔偿费");
if(var.vt != VT_NULL)
m_mend_money = (LPCSTR)_bstr_t(var);
m_show_mendmoney=m_show_mendmoney+atof(m_mend_money);
//读取数据表内金额总计字段的内容
var = m_pRecordset->GetCollect("金额总计");
if(var.vt != VT_NULL)
m_realmoney = (LPCSTR)_bstr_t(var);
m_show_sumgetmoney=m_show_sumgetmoney+atof(m_realmoney);
//读取数据表内预收宿费字段的内容
var = m_pRecordset->GetCollect("预收宿费");
if(var.vt != VT_NULL)
m_pre_handinmoney = (LPCSTR)_bstr_t(var);
m_show_pregetroommoney=m_show_pregetroommoney+atof(m_pre_handinmoney);
//读取数据表内退还宿费字段的内容
var = m_pRecordset->GetCollect("退还宿费");
if(var.vt != VT_NULL)
m_reback_money = (LPCSTR)_bstr_t(var);
m_show_backroommoney=m_show_backroommoney+atof(m_reback_money);
i++;//移动记录集指针到下一条记录
m_pRecordset->MoveNext();
}
else
{//如果不满足查询条件就直接跳过该记录
m_pRecordset->MoveNext();
continue;
}
}
//
}
catch(_com_error *e)//捕获异常情况
{
AfxMessageBox(e->ErrorMessage());
}
char recordcount[50];
_gcvt(i, 4, recordcount);//转换为字符串显示
CString strrecordcount=recordcount;
i=0;
//在列表框内显示该字段内容
m_roomsalestatic_list.InsertItem(i,strrecordcount.GetBuffer(50));
char m_pre_discount[50];
_gcvt(m_show_shouldgetmoney, 4, m_pre_discount);//转换为字符串显示
CString strpre_discount=m_pre_discount;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,1,strpre_discount.GetBuffer(50));
char m_mix_money[50];
_gcvt(m_show_mixmoney, 4, m_mix_money);//转换为字符串显示
CString strmix_money=m_mix_money;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,2,strmix_money.GetBuffer(50));
char m_tel_money[50];
_gcvt(m_show_telmoney, 4, m_tel_money);//转换为字符串显示
CString strtel_money=m_tel_money;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,3,strtel_money.GetBuffer(50));
char m_meeting_money[50];
_gcvt(m_show_meetingmoney, 4, m_meeting_money);//转换为字符串显示
CString strmeeting_money=m_meeting_money;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,4,strmeeting_money.GetBuffer(50));
char m_park_money[50];
_gcvt(m_show_parkmoney, 4, m_park_money);//转换为字符串显示
CString strpark_money=m_park_money;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,5,strpark_money.GetBuffer(50));
char m_mend_money[50];
_gcvt(m_show_mendmoney, 4,m_mend_money);//转换为字符串显示
CString strmend_money=m_mend_money;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,6,strmend_money.GetBuffer(50));
char m_realmoney[50];
_gcvt(m_show_sumgetmoney, 4,m_realmoney);//转换为字符串显示
CString strrealmoney=m_realmoney;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,7,strrealmoney.GetBuffer(50));
char m_pre_handinmoney[50];
_gcvt(m_show_pregetroommoney, 4,m_pre_handinmoney);
CString strpre_handinmoney=m_pre_handinmoney;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,8,strpre_handinmoney.GetBuffer(50));
char m_reback_money[50];
_gcvt(m_show_backroommoney, 4,m_reback_money);//转换为字符串显示
CString strreback_money=m_reback_money;
//在列表框内显示该字段内容
m_roomsalestatic_list.SetItemText(i,9,strreback_money.GetBuffer(50));
// 关闭记录集
m_pRecordset->Close();
m_pRecordset = NULL;
// m_show_pregetmoney = sum_pregetmoney;
// m_show_shouldgetmoney=sum_realmoney;
UpdateData(false);
// CDialog::OnOK();
}
BOOL CRoomsalestaticdlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//设置列表框颜色
m_roomsalestatic_list.SetTextColor(RGB (0, 0, 0));
m_roomsalestatic_list.SetTextBkColor(RGB (140, 180, 20));
//初始化列表框
m_roomsalestatic_list.InsertColumn(1,"记录数");
m_roomsalestatic_list.InsertColumn(2,"应收宿费合计");
m_roomsalestatic_list.InsertColumn(3,"杂费合计");
m_roomsalestatic_list.InsertColumn(4,"电话费合计");
m_roomsalestatic_list.InsertColumn(5,"会议费合计");
m_roomsalestatic_list.InsertColumn(6,"存车费合计");
m_roomsalestatic_list.InsertColumn(7,"赔偿费合计");
m_roomsalestatic_list.InsertColumn(8,"实收金额合计");
m_roomsalestatic_list.InsertColumn(9,"预收宿费合计");
m_roomsalestatic_list.InsertColumn(10,"退还宿费合计");
RECT rect;
m_roomsalestatic_list.GetWindowRect(&rect);
int wid=rect.right-rect.left;
int i=0;
m_roomsalestatic_list.SetColumnWidth(0,wid/12);
m_roomsalestatic_list.SetColumnWidth(1,wid/10);
m_roomsalestatic_list.SetColumnWidth(2,wid/10);
m_roomsalestatic_list.SetColumnWidth(3,wid/10);
m_roomsalestatic_list.SetColumnWidth(4,wid/10);
m_roomsalestatic_list.SetColumnWidth(5,wid/10);
m_roomsalestatic_list.SetColumnWidth(6,wid/10);
m_roomsalestatic_list.SetColumnWidth(7,wid/10);
m_roomsalestatic_list.SetColumnWidth(8,wid/10);
m_roomsalestatic_list.SetColumnWidth(9,wid/8);
m_roomsalestatic_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
//变量初始化为0
m_show_meetingmoney=0;
m_show_backroommoney=0;
m_show_mendmoney=0;
m_show_mixmoney=0;
m_show_parkmoney=0;
m_show_pregetroommoney=0;
m_show_shouldgetmoney=0;
m_show_sumgetmoney=0;
m_show_telmoney=0;
m_showuser=loguserid;
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -