aike/aike/RoomSetUpDlg.cpp
2024-05-29 17:12:34 +08:00

383 lines
8.4 KiB
C++

// RoomSetUpDlg.cpp: 实现文件
//
#include "pch.h"
#include "aike.h"
#include "afxdialogex.h"
#include "RoomSetUpDlg.h"
#include "aikeDlg.h"
// RoomSetUpDlg 对话框
IMPLEMENT_DYNAMIC(RoomSetUpDlg, CDialogEx)
RoomSetUpDlg::RoomSetUpDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_ROOMSETUPDLG, pParent)
{
}
RoomSetUpDlg::~RoomSetUpDlg()
{
}
void RoomSetUpDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_List);
}
BEGIN_MESSAGE_MAP(RoomSetUpDlg, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON1, &RoomSetUpDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON5, &RoomSetUpDlg::OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON6, &RoomSetUpDlg::OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON7, &RoomSetUpDlg::OnBnClickedButton7)
ON_BN_CLICKED(IDC_BUTTON3, &RoomSetUpDlg::OnBnClickedButton3)
END_MESSAGE_MAP()
// RoomSetUpDlg 消息处理程序
void RoomSetUpDlg::OnCancel()
{
// TODO: 在此添加专用代码和/或调用基类
//CDialogEx::OnCancel();
}
void RoomSetUpDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
//CDialogEx::OnOK();
}
void RoomSetUpDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
AddRoomDlg dlg(this);
dlg.DoModal();
}
void RoomSetUpDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
IDNameDlg dlg(this);
dlg.form = _T("roomtype");
dlg.DoModal();
}
void RoomSetUpDlg::OnBnClickedButton6()
{
// TODO: 在此添加控件通知处理程序代码
IDNameDlg dlg(this);
dlg.form = _T("roomregion");
dlg.DoModal();
}
void RoomSetUpDlg::OnBnClickedButton7()
{
// TODO: 在此添加控件通知处理程序代码
IDNameDlg dlg(this);
dlg.form = _T("roomstyle");
dlg.DoModal();
}
VOID RoomSetUpDlg::LoadRoom()
{
CaikeDlg* dlg = (CaikeDlg*)theApp.MainDlg;
Json temp;
RoomInfo = temp;
m_List.DeleteAllItems();
_RecordsetPtr m_pRecor;
_variant_t var;
CString str = (_T("select a.roomID,a.bedcount,a.roomfloor,b.name 'roomtype',c.name 'roomregion',d.name 'roomstyle1',e.name 'roomstyle2',f.name 'roomstyle3',g.name 'roomstyle4',h.name 'BillingRules' from room a left join roomtype b on a.roomtype = b.ID left join roomregion c on a.roomregion = c.id left join roomstyle d on a.roomstyle1 = d.id left join roomstyle e on a.roomstyle2 = e.id left join roomstyle f on a.roomstyle3 = f.id left join roomstyle g on a.roomstyle4 = g.id left join BillingRules h on a.BillingRules = h.id")), tmp, roomId, roomStyle;
dlg->AdoSql.QuerySql(str, m_pRecor);
int i = 0;
while (!m_pRecor->GetadoEOF())
{
Json tmpRoom,tmpStyle;
var = m_pRecor->GetCollect("roomID");
if (var.vt != VT_NULL)
{
roomId = (LPCTSTR)_bstr_t(var);
if (roomId == _T(""))
{
m_pRecor->MoveNext();
continue;
}
m_List.InsertItem(i, roomId);
}
else
{
m_pRecor->MoveNext();
continue;
}
var = m_pRecor->GetCollect("bedcount");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
m_List.SetItemText(i, 1, tmp + _T(""));
tmpRoom["bedcount"] = tmp;
}
var = m_pRecor->GetCollect("roomtype");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
m_List.SetItemText(i, 2, tmp);
tmpRoom["roomtype"] = tmp;
}
var = m_pRecor->GetCollect("roomregion");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
m_List.SetItemText(i, 3, tmp);
tmpRoom["roomregion"] = tmp;
}
var = m_pRecor->GetCollect("roomfloor");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
m_List.SetItemText(i, 4, tmp + _T(""));
tmpRoom["roomfloor"] = tmp;
}
var = m_pRecor->GetCollect("BillingRules");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
m_List.SetItemText(i, 5, tmp);
tmpRoom["BillingRules"] = tmp;
}
var = m_pRecor->GetCollect("roomstyle1");
roomStyle = _T("");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
tmpStyle = tmp;
tmpRoom["roomstyle"].append(tmpStyle);
roomStyle += tmp + _T(",");
}
var = m_pRecor->GetCollect("roomstyle2");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
tmpStyle = tmp;
tmpRoom["roomstyle"].append(tmpStyle);
roomStyle += tmp + _T(",");
}
var = m_pRecor->GetCollect("roomstyle3");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
tmpStyle = tmp;
tmpRoom["roomstyle"].append(tmpStyle);
roomStyle += tmp + _T(",");
}
var = m_pRecor->GetCollect("roomstyle4");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
tmpStyle = tmp;
tmpRoom["roomstyle"].append(tmpStyle);
roomStyle += tmp + _T(",");
}
m_List.SetItemText(i, 6, roomStyle);
m_pRecor->MoveNext();
RoomInfo[roomId] = tmpRoom;
i++;
}
LoadInfo();
}
VOID RoomSetUpDlg::LoadInfo()
{
CString str, roomId, tmp;
CaikeDlg* dlg = (CaikeDlg*)theApp.MainDlg;
Json temp;
roomtype = temp;
roomregion = temp;
BillingRules = temp;
roomstyle = temp;
_RecordsetPtr m_pRecor;
_variant_t var;
str = (_T("select * from roomtype"));
dlg->AdoSql.QuerySql(str, m_pRecor);
while (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("name");
if (var.vt != VT_NULL)
{
roomId = (LPCTSTR)_bstr_t(var);
if (roomId == _T(""))
{
m_pRecor->MoveNext();
continue;
}
}
else
{
m_pRecor->MoveNext();
continue;
}
var = m_pRecor->GetCollect("ID");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
roomtype[roomId] = tmp;
}
m_pRecor->MoveNext();
}
str = (_T("select * from roomtype"));
dlg->AdoSql.QuerySql(str, m_pRecor);
while (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("name");
if (var.vt != VT_NULL)
{
roomId = (LPCTSTR)_bstr_t(var);
if (roomId == _T(""))
{
m_pRecor->MoveNext();
continue;
}
}
else
{
m_pRecor->MoveNext();
continue;
}
var = m_pRecor->GetCollect("ID");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
roomtype[roomId] = tmp;
}
m_pRecor->MoveNext();
}
str = (_T("select * from roomregion"));
dlg->AdoSql.QuerySql(str, m_pRecor);
while (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("name");
if (var.vt != VT_NULL)
{
roomId = (LPCTSTR)_bstr_t(var);
if (roomId == _T(""))
{
m_pRecor->MoveNext();
continue;
}
}
else
{
m_pRecor->MoveNext();
continue;
}
var = m_pRecor->GetCollect("ID");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
roomregion[roomId] = tmp;
}
m_pRecor->MoveNext();
}
str = (_T("select * from BillingRules"));
dlg->AdoSql.QuerySql(str, m_pRecor);
while (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("name");
if (var.vt != VT_NULL)
{
roomId = (LPCTSTR)_bstr_t(var);
if (roomId == _T(""))
{
m_pRecor->MoveNext();
continue;
}
}
else
{
m_pRecor->MoveNext();
continue;
}
var = m_pRecor->GetCollect("ID");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
BillingRules[roomId] = tmp;
}
m_pRecor->MoveNext();
}
str = (_T("select * from roomstyle"));
dlg->AdoSql.QuerySql(str, m_pRecor);
while (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("name");
if (var.vt != VT_NULL)
{
roomId = (LPCTSTR)_bstr_t(var);
if (roomId == _T(""))
{
m_pRecor->MoveNext();
continue;
}
}
else
{
m_pRecor->MoveNext();
continue;
}
var = m_pRecor->GetCollect("ID");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
roomstyle[roomId] = tmp;
}
m_pRecor->MoveNext();
}
}
BOOL RoomSetUpDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
m_List.SetExtendedStyle(m_List.GetExtendedStyle() | LVS_EX_DOUBLEBUFFER | LVS_EX_HEADERDRAGDROP | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
int i = 0;
m_List.InsertColumn(i++, _T("房间号"), LVCFMT_LEFT, 60);
m_List.InsertColumn(i++, _T("床位"), LVCFMT_LEFT, 60);
m_List.InsertColumn(i++, _T("类型"), LVCFMT_LEFT, 60);
m_List.InsertColumn(i++, _T("区域"), LVCFMT_LEFT, 60);
m_List.InsertColumn(i++, _T("楼层"), LVCFMT_LEFT, 60);
m_List.InsertColumn(i++, _T("计费方案"), LVCFMT_LEFT, 60);
m_List.InsertColumn(i++, _T("风格"), LVCFMT_LEFT, 60);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void RoomSetUpDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
int nIdx = m_List.GetNextItem(-1, LVIS_SELECTED);
if (nIdx < 0)
{
MessageBox(_T("没有选中任何行"), _T("温馨提示"));
}
else
{
AddRoomDlg dlg(this);
dlg.RoomId = m_List.GetItemText(nIdx, 0);
dlg.DoModal();
}
}