完善添加房间操作

This commit is contained in:
~ Alone 2024-05-29 17:12:34 +08:00
parent 37e38afa13
commit a14c3ad426
9 changed files with 1137 additions and 5 deletions

903
aike/AddRoomDlg.cpp Normal file
View File

@ -0,0 +1,903 @@
// AddRoomDlg.cpp: 实现文件
//
#include "pch.h"
#include "aike.h"
#include "afxdialogex.h"
#include "AddRoomDlg.h"
#include "aikeDlg.h"
// AddRoomDlg 对话框
IMPLEMENT_DYNAMIC(AddRoomDlg, MyDialog)
AddRoomDlg::AddRoomDlg(CWnd* pParent /*=nullptr*/)
: MyDialog(IDD_ADDROOM, pParent)
{
Parent = (RoomSetUpDlg*)pParent;
}
AddRoomDlg::~AddRoomDlg()
{
}
void AddRoomDlg::DoDataExchange(CDataExchange* pDX)
{
MyDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(AddRoomDlg, MyDialog)
ON_BN_CLICKED(IDOK, &AddRoomDlg::OnBnClickedOk)
ON_CBN_SELCHANGE(IDC_COMBO1, &AddRoomDlg::OnCbnSelchangeCombo1)
ON_CBN_SELCHANGE(IDC_COMBO2, &AddRoomDlg::OnCbnSelchangeCombo2)
ON_CBN_SELCHANGE(IDC_COMBO3, &AddRoomDlg::OnCbnSelchangeCombo3)
ON_CBN_SELCHANGE(IDC_COMBO4, &AddRoomDlg::OnCbnSelchangeCombo4)
ON_CBN_SELCHANGE(IDC_COMBO5, &AddRoomDlg::OnCbnSelchangeCombo5)
ON_CBN_SELCHANGE(IDC_COMBO6, &AddRoomDlg::OnCbnSelchangeCombo6)
ON_CBN_SELCHANGE(IDC_COMBO7, &AddRoomDlg::OnCbnSelchangeCombo7)
END_MESSAGE_MAP()
// AddRoomDlg 消息处理程序
void AddRoomDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
}
BOOL AddRoomDlg::OnInitDialog()
{
MyDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
CRect rt = { 0, 0, 75, 30 };
rt.MoveToXY(160, 300);
AddButton(1, rt);
rt.OffsetRect(80, 0);
AddButton(2, rt);
SetLClick(2, [this](int i) {CloseClick(i); });
SetButText(2, _T("关闭"));
if (RoomId == _T(""))
{
LoadData();
SetButText(1, _T("添加"));
SetLClick(1, [this](int i) {AddRoomClick(i); });
}
else
{
GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
LoadData();
SetButText(1, _T("修改"));
SetLClick(1, [this](int i) {UpdateRoomClick(i); });
}
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
VOID AddRoomDlg::LoadData()
{
CString str1, str2, str3, str4, str5, str6, str7, str8, str9, str10;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0, count6 = 0, count7 = 0;
if (RoomId != _T(""))
{
CaikeDlg* dlg = (CaikeDlg*)theApp.MainDlg;
_RecordsetPtr m_pRecor;
_variant_t var;
CString str;
str.Format(_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 where roomID = '%s'"), RoomId);
dlg->AdoSql.QuerySql(str, m_pRecor);
str1 = RoomId;
if (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("bedcount");
if (var.vt != VT_NULL)
{
str2 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomtype");
if (var.vt != VT_NULL)
{
str3 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomregion");
if (var.vt != VT_NULL)
{
str4 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomfloor");
if (var.vt != VT_NULL)
{
str5 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("BillingRules");
if (var.vt != VT_NULL)
{
str6 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomstyle1");
if (var.vt != VT_NULL)
{
str7 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomstyle2");
if (var.vt != VT_NULL)
{
str8 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomstyle3");
if (var.vt != VT_NULL)
{
str9 = (LPCTSTR)_bstr_t(var);
}
var = m_pRecor->GetCollect("roomstyle4");
if (var.vt != VT_NULL)
{
str10 = (LPCTSTR)_bstr_t(var);
}
}
}
CComboBox* cTmp1 = ((CComboBox*)GetDlgItem(IDC_COMBO1));
for (int i = cTmp1->GetCount() - 1; i >= 0; i--)
{
cTmp1->DeleteString(i);
}
CComboBox* cTmp2 = ((CComboBox*)GetDlgItem(IDC_COMBO2));
for (int i = cTmp2->GetCount() - 1; i >= 0; i--)
{
cTmp2->DeleteString(i);
}
CComboBox* cTmp3 = ((CComboBox*)GetDlgItem(IDC_COMBO3));
for (int i = cTmp3->GetCount() - 1; i >= 0; i--)
{
cTmp3->DeleteString(i);
}
CComboBox* cTmp4 = ((CComboBox*)GetDlgItem(IDC_COMBO4));
for (int i = cTmp4->GetCount() - 1; i >= 0; i--)
{
cTmp4->DeleteString(i);
}
CComboBox* cTmp5 = ((CComboBox*)GetDlgItem(IDC_COMBO5));
for (int i = cTmp5->GetCount() - 1; i >= 0; i--)
{
cTmp5->DeleteString(i);
}
CComboBox* cTmp6 = ((CComboBox*)GetDlgItem(IDC_COMBO6));
for (int i = cTmp6->GetCount() - 1; i >= 0; i--)
{
cTmp6->DeleteString(i);
}
CComboBox* cTmp7 = ((CComboBox*)GetDlgItem(IDC_COMBO7));
for (int i = cTmp7->GetCount() - 1; i >= 0; i--)
{
cTmp7->DeleteString(i);
}
cTmp3->AddString(_T(""));
cTmp4->AddString(_T(""));
cTmp5->AddString(_T(""));
cTmp6->AddString(_T(""));
cTmp7->AddString(_T(""));
if (Parent->roomstyle.Size() != 0)
{
int j = 1;
for (auto i = Parent->roomstyle.getBegin(); i != Parent->roomstyle.getEnd(); i++, j++)
{
cTmp4->AddString(i->first);
cTmp5->AddString(i->first);
cTmp6->AddString(i->first);
cTmp7->AddString(i->first);
if (str7 == i->first)
{
count4 = j;
}
if (str8 == i->first)
{
count5 = j;
}
if (str9 == i->first)
{
count6 = j;
}
if (str10 == i->first)
{
count7 = j;
}
}
}
if (Parent->BillingRules.Size() != 0)
{
int j = 1;
for (auto i = Parent->BillingRules.getBegin(); i != Parent->BillingRules.getEnd(); i++, j++)
{
cTmp3->AddString(i->first);
if (str6 == i->first)
{
count3 = j;
}
}
}
if (Parent->roomregion.Size() != 0)
{
int j = 0;
for (auto i = Parent->roomregion.getBegin(); i != Parent->roomregion.getEnd(); i++, j++)
{
cTmp2->AddString(i->first);
if (str4 == i->first)
{
count2 = j;
}
}
}
if (Parent->roomtype.Size() != 0)
{
int j = 0;
for (auto i = Parent->roomtype.getBegin(); i != Parent->roomtype.getEnd(); i++, j++)
{
cTmp1->AddString(i->first);
if (str3 == i->first)
{
count1 = j;
}
}
}
SetDlgItemText(IDC_EDIT1, str1);
SetDlgItemText(IDC_EDIT5, str2);
SetDlgItemText(IDC_EDIT2, str5);
cTmp1->SetCurSel(count1);
cTmp2->SetCurSel(count2);
cTmp3->SetCurSel(count3);
cTmp4->SetCurSel(count4);
cTmp5->SetCurSel(count5);
cTmp6->SetCurSel(count6);
cTmp7->SetCurSel(count7);
cTmp1->AddString(_T("新增"));
cTmp2->AddString(_T("新增"));
cTmp3->AddString(_T("新增"));
cTmp4->AddString(_T("新增"));
cTmp5->AddString(_T("新增"));
cTmp6->AddString(_T("新增"));
cTmp7->AddString(_T("新增"));
}
void AddRoomDlg::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
CComboBox* cTmp = ((CComboBox*)GetDlgItem(IDC_COMBO1));
cTmp->GetWindowText(str);
if (str == _T("新增"))
{
IDNameDlg dlg(this);
dlg.form = _T("roomtype");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp->GetCount() - 1; i >= 0; i--)
{
cTmp->DeleteString(i);
}
if (Parent->roomtype.Size() != 0)
{
for (auto i = Parent->roomtype.getBegin(); i != Parent->roomtype.getEnd(); i++)
{
cTmp->AddString(i->first);
}
}
cTmp->AddString(_T("新增"));
cTmp->SetCurSel(0);
}
}
void AddRoomDlg::OnCbnSelchangeCombo2()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
CComboBox* cTmp = ((CComboBox*)GetDlgItem(IDC_COMBO2));
cTmp->GetWindowText(str);
if (str == _T("新增"))
{
IDNameDlg dlg(this);
dlg.form = _T("roomregion");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp->GetCount() - 1; i >= 0; i--)
{
cTmp->DeleteString(i);
}
if (Parent->roomregion.Size() != 0)
{
for (auto i = Parent->roomregion.getBegin(); i != Parent->roomregion.getEnd(); i++)
{
cTmp->AddString(i->first);
}
}
cTmp->AddString(_T("新增"));
cTmp->SetCurSel(0);
}
}
void AddRoomDlg::OnCbnSelchangeCombo3()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
CComboBox* cTmp = ((CComboBox*)GetDlgItem(IDC_COMBO3));
cTmp->GetWindowText(str);
if (str == _T("新增"))
{
IDNameDlg dlg(this);
dlg.form = _T("BillingRules");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp->GetCount() - 1; i >= 0; i--)
{
cTmp->DeleteString(i);
}
if (Parent->BillingRules.Size() != 0)
{
for (auto i = Parent->BillingRules.getBegin(); i != Parent->BillingRules.getEnd(); i++)
{
cTmp->AddString(i->first);
}
}
cTmp->AddString(_T("新增"));
cTmp->SetCurSel(0);
}
}
void AddRoomDlg::OnCbnSelchangeCombo4()
{
// TODO: 在此添加控件通知处理程序代码
CString str1, str2, str3, str4;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
CComboBox* cTmp1 = ((CComboBox*)GetDlgItem(IDC_COMBO4));
CComboBox* cTmp2 = ((CComboBox*)GetDlgItem(IDC_COMBO5));
CComboBox* cTmp3 = ((CComboBox*)GetDlgItem(IDC_COMBO6));
CComboBox* cTmp4 = ((CComboBox*)GetDlgItem(IDC_COMBO7));
cTmp1->GetWindowText(str1);
if (str1 == _T("新增"))
{
cTmp1->GetWindowText(str1);
cTmp2->GetWindowText(str2);
cTmp3->GetWindowText(str3);
cTmp4->GetWindowText(str4);
IDNameDlg dlg(this);
dlg.form = _T("roomstyle");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp1->GetCount() - 1; i >= 0; i--)
{
cTmp1->DeleteString(i);
}
for (int i = cTmp2->GetCount() - 1; i >= 0; i--)
{
cTmp2->DeleteString(i);
}
for (int i = cTmp3->GetCount() - 1; i >= 0; i--)
{
cTmp3->DeleteString(i);
}
for (int i = cTmp4->GetCount() - 1; i >= 0; i--)
{
cTmp4->DeleteString(i);
}
cTmp1->AddString(_T(""));
cTmp2->AddString(_T(""));
cTmp3->AddString(_T(""));
cTmp4->AddString(_T(""));
int j = 1;
if (Parent->roomstyle.Size() != 0)
{
for (auto i = Parent->roomstyle.getBegin(); i != Parent->roomstyle.getEnd(); i++, j++)
{
cTmp1->AddString(i->first);
cTmp2->AddString(i->first);
cTmp3->AddString(i->first);
cTmp4->AddString(i->first);
if (str1 == i->first)
{
count1 = j;
}
if (str2 == i->first)
{
count2 = j;
}
if (str3 == i->first)
{
count3 = j;
}
if (str4 == i->first)
{
count4= j;
}
}
}
cTmp1->AddString(_T("新增"));
cTmp2->AddString(_T("新增"));
cTmp3->AddString(_T("新增"));
cTmp4->AddString(_T("新增"));
cTmp1->SetCurSel(count1);
cTmp2->SetCurSel(count2);
cTmp3->SetCurSel(count3);
cTmp4->SetCurSel(count4);
}
else if (str1 != _T(""))
{
cTmp2->GetWindowText(str2);
cTmp3->GetWindowText(str3);
cTmp4->GetWindowText(str4);
if (str1 == str2 || str1 == str3 || str1 == str4)
{
MessageBox(_T("该风格已选,请选择其他风格"), _T("温馨提示"));
cTmp1->SetCurSel(0);
}
}
}
void AddRoomDlg::OnCbnSelchangeCombo5()
{
// TODO: 在此添加控件通知处理程序代码
CString str1, str2, str3, str4;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
CComboBox* cTmp1 = ((CComboBox*)GetDlgItem(IDC_COMBO4));
CComboBox* cTmp2 = ((CComboBox*)GetDlgItem(IDC_COMBO5));
CComboBox* cTmp3 = ((CComboBox*)GetDlgItem(IDC_COMBO6));
CComboBox* cTmp4 = ((CComboBox*)GetDlgItem(IDC_COMBO7));
cTmp2->GetWindowText(str2);
if (str2 == _T("新增"))
{
cTmp1->GetWindowText(str1);
cTmp2->GetWindowText(str2);
cTmp3->GetWindowText(str3);
cTmp4->GetWindowText(str4);
IDNameDlg dlg(this);
dlg.form = _T("roomstyle");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp1->GetCount() - 1; i >= 0; i--)
{
cTmp1->DeleteString(i);
}
for (int i = cTmp2->GetCount() - 1; i >= 0; i--)
{
cTmp2->DeleteString(i);
}
for (int i = cTmp3->GetCount() - 1; i >= 0; i--)
{
cTmp3->DeleteString(i);
}
for (int i = cTmp4->GetCount() - 1; i >= 0; i--)
{
cTmp4->DeleteString(i);
}
cTmp1->AddString(_T(""));
cTmp2->AddString(_T(""));
cTmp3->AddString(_T(""));
cTmp4->AddString(_T(""));
int j = 1;
if (Parent->roomstyle.Size() != 0)
{
for (auto i = Parent->roomstyle.getBegin(); i != Parent->roomstyle.getEnd(); i++, j++)
{
cTmp1->AddString(i->first);
cTmp2->AddString(i->first);
cTmp3->AddString(i->first);
cTmp4->AddString(i->first);
if (str1 == i->first)
{
count1 = j;
}
if (str2 == i->first)
{
count2 = j;
}
if (str3 == i->first)
{
count3 = j;
}
if (str4 == i->first)
{
count4 = j;
}
}
}
cTmp1->AddString(_T("新增"));
cTmp2->AddString(_T("新增"));
cTmp3->AddString(_T("新增"));
cTmp4->AddString(_T("新增"));
cTmp1->SetCurSel(count1);
cTmp2->SetCurSel(count2);
cTmp3->SetCurSel(count3);
cTmp4->SetCurSel(count4);
}
else if (str2 != _T(""))
{
cTmp1->GetWindowText(str1);
cTmp3->GetWindowText(str3);
cTmp4->GetWindowText(str4);
if (str1 == str2 || str2 == str3 || str2 == str4)
{
MessageBox(_T("该风格已选,请选择其他风格"), _T("温馨提示"));
cTmp2->SetCurSel(0);
}
}
}
void AddRoomDlg::OnCbnSelchangeCombo6()
{
// TODO: 在此添加控件通知处理程序代码
CString str1, str2, str3, str4;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
CComboBox* cTmp1 = ((CComboBox*)GetDlgItem(IDC_COMBO4));
CComboBox* cTmp2 = ((CComboBox*)GetDlgItem(IDC_COMBO5));
CComboBox* cTmp3 = ((CComboBox*)GetDlgItem(IDC_COMBO6));
CComboBox* cTmp4 = ((CComboBox*)GetDlgItem(IDC_COMBO7));
cTmp3->GetWindowText(str3);
if (str3 == _T("新增"))
{
cTmp1->GetWindowText(str1);
cTmp2->GetWindowText(str2);
cTmp3->GetWindowText(str3);
cTmp4->GetWindowText(str4);
IDNameDlg dlg(this);
dlg.form = _T("roomstyle");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp1->GetCount() - 1; i >= 0; i--)
{
cTmp1->DeleteString(i);
}
for (int i = cTmp2->GetCount() - 1; i >= 0; i--)
{
cTmp2->DeleteString(i);
}
for (int i = cTmp3->GetCount() - 1; i >= 0; i--)
{
cTmp3->DeleteString(i);
}
for (int i = cTmp4->GetCount() - 1; i >= 0; i--)
{
cTmp4->DeleteString(i);
}
cTmp1->AddString(_T(""));
cTmp2->AddString(_T(""));
cTmp3->AddString(_T(""));
cTmp4->AddString(_T(""));
if (Parent->roomstyle.Size() != 0)
{
int j = 1;
for (auto i = Parent->roomstyle.getBegin(); i != Parent->roomstyle.getEnd(); i++, j++)
{
cTmp1->AddString(i->first);
cTmp2->AddString(i->first);
cTmp3->AddString(i->first);
cTmp4->AddString(i->first);
if (str1 == i->first)
{
count1 = j;
}
if (str2 == i->first)
{
count2 = j;
}
if (str3 == i->first)
{
count3 = j;
}
if (str4 == i->first)
{
count4 = j;
}
}
}
cTmp1->AddString(_T("新增"));
cTmp2->AddString(_T("新增"));
cTmp3->AddString(_T("新增"));
cTmp4->AddString(_T("新增"));
cTmp1->SetCurSel(count1);
cTmp2->SetCurSel(count2);
cTmp3->SetCurSel(count3);
cTmp4->SetCurSel(count4);
}
else if (str3 != _T(""))
{
cTmp1->GetWindowText(str1);
cTmp2->GetWindowText(str2);
cTmp4->GetWindowText(str4);
if (str3 == str2 || str1 == str3 || str3 == str4)
{
MessageBox(_T("该风格已选,请选择其他风格"), _T("温馨提示"));
cTmp3->SetCurSel(0);
}
}
}
void AddRoomDlg::OnCbnSelchangeCombo7()
{
// TODO: 在此添加控件通知处理程序代码
CString str1, str2, str3, str4;
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
CComboBox* cTmp1 = ((CComboBox*)GetDlgItem(IDC_COMBO4));
CComboBox* cTmp2 = ((CComboBox*)GetDlgItem(IDC_COMBO5));
CComboBox* cTmp3 = ((CComboBox*)GetDlgItem(IDC_COMBO6));
CComboBox* cTmp4 = ((CComboBox*)GetDlgItem(IDC_COMBO7));
cTmp4->GetWindowText(str4);
if (str4 == _T("新增"))
{
cTmp1->GetWindowText(str1);
cTmp2->GetWindowText(str2);
cTmp3->GetWindowText(str3);
cTmp4->GetWindowText(str4);
IDNameDlg dlg(this);
dlg.form = _T("roomstyle");
dlg.DoModal();
Parent->LoadInfo();
for (int i = cTmp1->GetCount() - 1; i >= 0; i--)
{
cTmp1->DeleteString(i);
}
for (int i = cTmp2->GetCount() - 1; i >= 0; i--)
{
cTmp2->DeleteString(i);
}
for (int i = cTmp3->GetCount() - 1; i >= 0; i--)
{
cTmp3->DeleteString(i);
}
for (int i = cTmp4->GetCount() - 1; i >= 0; i--)
{
cTmp4->DeleteString(i);
}
cTmp1->AddString(_T(""));
cTmp2->AddString(_T(""));
cTmp3->AddString(_T(""));
cTmp4->AddString(_T(""));
if (Parent->roomstyle.Size() != 0)
{
int j = 1;
for (auto i = Parent->roomstyle.getBegin(); i != Parent->roomstyle.getEnd(); i++, j++)
{
cTmp1->AddString(i->first);
cTmp2->AddString(i->first);
cTmp3->AddString(i->first);
cTmp4->AddString(i->first);
if (str1 == i->first)
{
count1 = j;
}
if (str2 == i->first)
{
count2 = j;
}
if (str3 == i->first)
{
count3 = j;
}
if (str4 == i->first)
{
count4 = j;
}
}
}
cTmp1->AddString(_T("新增"));
cTmp2->AddString(_T("新增"));
cTmp3->AddString(_T("新增"));
cTmp4->AddString(_T("新增"));
cTmp1->SetCurSel(count1);
cTmp2->SetCurSel(count2);
cTmp3->SetCurSel(count3);
cTmp4->SetCurSel(count4);
}
else if (str4 != _T(""))
{
cTmp1->GetWindowText(str1);
cTmp2->GetWindowText(str2);
cTmp3->GetWindowText(str3);
if (str4 == str2 || str4 == str3 || str1 == str4)
{
MessageBox(_T("该风格已选,请选择其他风格"), _T("温馨提示"));
cTmp4->SetCurSel(0);
}
}
}
VOID AddRoomDlg::AddRoomClick(int id)
{
CString str1, str2, str3, str4, str5, str6, str7, str8, str9, str10;
GetDlgItemText(IDC_COMBO1, str1);
GetDlgItemText(IDC_COMBO2, str2);
GetDlgItemText(IDC_COMBO3, str3);
GetDlgItemText(IDC_COMBO4, str4);
GetDlgItemText(IDC_COMBO5, str5);
GetDlgItemText(IDC_COMBO6, str6);
GetDlgItemText(IDC_COMBO7, str7);
GetDlgItemText(IDC_EDIT1, str8);
GetDlgItemText(IDC_EDIT2, str9);
GetDlgItemText(IDC_EDIT5, str10);
if (str8 == _T("") || str8.GetLength() > 10)
{
MessageBox(_T("房间号超长或为空"), _T("温馨提示"));
GetDlgItem(IDC_EDIT1)->SetFocus();
return;
}
if (str10 == _T(""))
{
MessageBox(_T("请输入房间楼层"), _T("温馨提示"));
GetDlgItem(IDC_EDIT5)->SetFocus();
return;
}
if (str1 == _T(""))
{
MessageBox(_T("请选择房间类型"), _T("温馨提示"));
return;
}
if (str2 == _T(""))
{
MessageBox(_T("请选择房间区域"), _T("温馨提示"));
return;
}
if (str9 == _T(""))
{
MessageBox(_T("请输入楼层"), _T("温馨提示"));
GetDlgItem(IDC_EDIT2)->SetFocus();
return;
}
if (Parent->roomtype.Find(str1) != Parent->roomtype.getEnd())
str1 = Parent->roomtype[str1].asCString();
if (Parent->roomregion.Find(str2) != Parent->roomregion.getEnd())
str2 = Parent->roomregion[str2].asCString();
if (Parent->BillingRules.Find(str3) != Parent->BillingRules.getEnd())
str3 = Parent->BillingRules[str3].asCString();
if (Parent->roomstyle.Find(str4) != Parent->roomstyle.getEnd())
str4 = Parent->roomstyle[str4].asCString();
if (Parent->roomstyle.Find(str5) != Parent->roomstyle.getEnd())
str5 = Parent->roomstyle[str5].asCString();
if (Parent->roomstyle.Find(str6) != Parent->roomstyle.getEnd())
str6 = Parent->roomstyle[str6].asCString();
if (Parent->roomstyle.Find(str7) != Parent->roomstyle.getEnd())
str7 = Parent->roomstyle[str7].asCString();
CaikeDlg* dlg = (CaikeDlg*)theApp.MainDlg;
_RecordsetPtr m_pRecor;
_variant_t var;
CString str;
str.Format(_T("select * from room where roomID = '%s'"), str8);
dlg->AdoSql.QuerySql(str, m_pRecor);
int i = 0;
if (!m_pRecor->GetadoEOF())
{
MessageBox(_T("房间号重复"), _T("温馨提示"));
GetDlgItem(IDC_EDIT2)->SetFocus();
return;
}
else
{
str.Format(_T("INSERT INTO room (roomID,bedcount,roomtype,roomregion,roomfloor,BillingRules,roomstyle1,roomstyle2,roomstyle3,roomstyle4) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"), str8, str10, str1, str2, str9, str3, str4, str5, str6, str7);
if (dlg->AdoSql.ImplementSQL(str))
{
Parent->LoadRoom();
}
else
{
MessageBox(_T("SQL执行失败"), _T("温馨提示"));
}
}
MyDialog::OnOK();
}
VOID AddRoomDlg::UpdateRoomClick(int id)
{
CString str1, str2, str3, str4, str5, str6, str7, str8, str9, str10;
GetDlgItemText(IDC_COMBO1, str1);
GetDlgItemText(IDC_COMBO2, str2);
GetDlgItemText(IDC_COMBO3, str3);
GetDlgItemText(IDC_COMBO4, str4);
GetDlgItemText(IDC_COMBO5, str5);
GetDlgItemText(IDC_COMBO6, str6);
GetDlgItemText(IDC_COMBO7, str7);
GetDlgItemText(IDC_EDIT1, str8);
GetDlgItemText(IDC_EDIT2, str9);
GetDlgItemText(IDC_EDIT5, str10);
if (str8 == _T("") || str8.GetLength() > 10)
{
MessageBox(_T("房间号超长或为空"), _T("温馨提示"));
GetDlgItem(IDC_EDIT1)->SetFocus();
return;
}
if (str10 == _T(""))
{
MessageBox(_T("请输入房间楼层"), _T("温馨提示"));
GetDlgItem(IDC_EDIT5)->SetFocus();
return;
}
if (str1 == _T(""))
{
MessageBox(_T("请选择房间类型"), _T("温馨提示"));
return;
}
if (str2 == _T(""))
{
MessageBox(_T("请选择房间区域"), _T("温馨提示"));
return;
}
if (str9 == _T(""))
{
MessageBox(_T("请输入楼层"), _T("温馨提示"));
GetDlgItem(IDC_EDIT2)->SetFocus();
return;
}
if (Parent->roomtype.Find(str1) != Parent->roomtype.getEnd())
str1 = Parent->roomtype[str1].asCString();
if (Parent->roomregion.Find(str2) != Parent->roomregion.getEnd())
str2 = Parent->roomregion[str2].asCString();
if (Parent->BillingRules.Find(str3) != Parent->BillingRules.getEnd())
str3 = Parent->BillingRules[str3].asCString();
if (Parent->roomstyle.Find(str4) != Parent->roomstyle.getEnd())
str4 = Parent->roomstyle[str4].asCString();
if (Parent->roomstyle.Find(str5) != Parent->roomstyle.getEnd())
str5 = Parent->roomstyle[str5].asCString();
if (Parent->roomstyle.Find(str6) != Parent->roomstyle.getEnd())
str6 = Parent->roomstyle[str6].asCString();
if (Parent->roomstyle.Find(str7) != Parent->roomstyle.getEnd())
str7 = Parent->roomstyle[str7].asCString();
CaikeDlg* dlg = (CaikeDlg*)theApp.MainDlg;
_RecordsetPtr m_pRecor;
_variant_t var;
CString str;
str.Format(_T("select * from room where roomID = '%s'"), str8);
dlg->AdoSql.QuerySql(str, m_pRecor);
int i = 0;
if (m_pRecor->GetadoEOF())
{
MessageBox(_T("该房间已被删除,修改失败"), _T("温馨提示"));
Parent->LoadRoom();
MyDialog::OnOK();
return;
}
else
{
str.Format(_T("update room set roomID = '%s',bedcount = '%s',roomtype = '%s',roomregion = '%s',roomfloor = '%s',BillingRules = '%s',roomstyle1 = '%s',roomstyle2 = '%s',roomstyle3 = '%s',roomstyle4 = '%s' where roomID = '%s'"), str8, str10, str1, str2, str9, str3, str4, str5, str6, str7, RoomId);
if (dlg->AdoSql.ImplementSQL(str))
{
Parent->LoadRoom();
}
else
{
MessageBox(_T("SQL执行失败"), _T("温馨提示"));
}
}
MyDialog::OnOK();
}
VOID AddRoomDlg::CloseClick(int id)
{
MyDialog::OnCancel();
}

40
aike/AddRoomDlg.h Normal file
View File

@ -0,0 +1,40 @@
#pragma once
#include "afxdialogex.h"
// AddRoomDlg 对话框
class AddRoomDlg : public MyDialog
{
DECLARE_DYNAMIC(AddRoomDlg)
public:
AddRoomDlg(CWnd* pParent = nullptr); // 标准构造函数
virtual ~AddRoomDlg();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_ADDROOM };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedOk();
RoomSetUpDlg* Parent;
CString RoomId;
virtual BOOL OnInitDialog();
VOID LoadData();
afx_msg void OnCbnSelchangeCombo1();
afx_msg void OnCbnSelchangeCombo2();
afx_msg void OnCbnSelchangeCombo3();
afx_msg void OnCbnSelchangeCombo4();
afx_msg void OnCbnSelchangeCombo5();
afx_msg void OnCbnSelchangeCombo6();
afx_msg void OnCbnSelchangeCombo7();
VOID AddRoomClick(int id);
VOID UpdateRoomClick(int id);
VOID CloseClick(int id);
};

View File

@ -34,6 +34,7 @@ BEGIN_MESSAGE_MAP(RoomSetUpDlg, CDialogEx)
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()
@ -59,7 +60,8 @@ void RoomSetUpDlg::OnOK()
void RoomSetUpDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
AddRoomDlg dlg(this);
dlg.DoModal();
}
@ -92,7 +94,8 @@ void RoomSetUpDlg::OnBnClickedButton7()
VOID RoomSetUpDlg::LoadRoom()
{
CaikeDlg* dlg = (CaikeDlg*)theApp.MainDlg;
RoomInfo = Json();
Json temp;
RoomInfo = temp;
m_List.DeleteAllItems();
_RecordsetPtr m_pRecor;
_variant_t var;
@ -191,7 +194,155 @@ VOID RoomSetUpDlg::LoadRoom()
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();
}
}
@ -212,3 +363,20 @@ BOOL RoomSetUpDlg::OnInitDialog()
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();
}
}

View File

@ -29,8 +29,11 @@ public:
afx_msg void OnBnClickedButton6();
afx_msg void OnBnClickedButton7();
VOID LoadRoom();
VOID LoadInfo();
CListCtrl m_List;
virtual BOOL OnInitDialog();
Json RoomInfo;
Json RoomInfo, roomtype, roomregion, BillingRules, roomstyle;
afx_msg void OnBnClickedButton3();
};

Binary file not shown.

View File

@ -185,6 +185,7 @@
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="AddRoomDlg.h" />
<ClInclude Include="aike.h" />
<ClInclude Include="aikeDlg.h" />
<ClInclude Include="CommodityDlg.h" />
@ -204,6 +205,7 @@
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="AddRoomDlg.cpp" />
<ClCompile Include="aike.cpp" />
<ClCompile Include="aikeDlg.cpp" />
<ClCompile Include="CommodityDlg.cpp" />

View File

@ -66,6 +66,9 @@
<ClInclude Include="IDNameDlg.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="AddRoomDlg.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="aike.cpp">
@ -110,6 +113,9 @@
<ClCompile Include="IDNameDlg.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="AddRoomDlg.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="aike.rc">

View File

@ -29,5 +29,6 @@
#include "CouponDlg.h"
#include "ParameterDlg.h"
#include "LogInDlg.h"
#include "AddRoomDlg.h"
#endif //PCH_H

View File

@ -16,6 +16,7 @@
#define IDD_PARAMENTERDLG 141
#define IDD_LOGINDLG 142
#define IDD_IDNAMEDLG 144
#define IDD_ADDROOM 146
#define IDC_LIST1 1000
#define IDC_BUTTON1 1001
#define IDC_BUTTON2 1002
@ -24,15 +25,23 @@
#define IDC_BUTTON3 1003
#define IDC_CHECK1 1004
#define IDC_BUTTON4 1004
#define IDC_EDIT5 1004
#define IDC_STATIC1 1005
#define IDC_BUTTON5 1005
#define IDC_STATIC2 1006
#define IDC_BUTTON6 1006
#define IDC_EDIT3 1007
#define IDC_BUTTON7 1007
#define IDC_COMBO1 1007
#define IDC_EDIT4 1008
#define IDC_BUTTON8 1008
#define IDC_COMBO2 1008
#define IDC_STATIC3 1009
#define IDC_COMBO3 1009
#define IDC_COMBO4 1010
#define IDC_COMBO5 1011
#define IDC_COMBO6 1012
#define IDC_COMBO7 1013
#define ID_32771 32771
#define ID_32772 32772
#define ID_SHOW_MENU 32773
@ -42,9 +51,9 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 146
#define _APS_NEXT_RESOURCE_VALUE 149
#define _APS_NEXT_COMMAND_VALUE 32775
#define _APS_NEXT_CONTROL_VALUE 1007
#define _APS_NEXT_CONTROL_VALUE 1008
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif