📄 mainfrm.cpp
字号:
DaoRecord.Edit();
DaoRecord.m_nStatus = CLIENT_WORKING;
DaoRecord.m_nWorkTime = atoi(FirstWorkTime.Mid(0,2)) * 3600 + atoi(FirstWorkTime.Mid(3,2)) * 60 + atoi(FirstWorkTime.Mid(6,2));
CTime time;
time = CTime::GetCurrentTime();
time = CTime::GetCurrentTime();
DaoRecord.m_strCardNum = m_strCardNum;
DaoRecord.m_timeStart.SetDate(time.GetYear(), time.GetMonth(), time.GetDay());
DaoRecord.m_timeStart.SetTime(time.GetHour(), time.GetMinute(), time.GetSecond());
DaoRecord.m_fPrepay = m_fPrepay;
DaoRecord.m_fFree = m_fFree;
DaoRecord.m_fAddtionalFree = m_fAddtionalFree;
DaoRecord.m_nLimitTime = m_nLimitTime;
DaoRecord.m_strBak = "换机";
DaoRecord.Update();
str.Format("%d", DaoRecord.m_nWorkTime);
((CServerView*)GetActiveView())->Refurbish(DaoRecord.GetAbsolutePosition());
SetStatusText();
}
}
//解锁客户端
void CMainFrame::OnUnlockClient()
{
CListCtrl & clc = ((CServerView*)GetActiveView())->GetListCtrl();
int nIndex;
POSITION pos = clc.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择一台计算机!", MB_ICONINFORMATION | MB_OK);
return;
}
CString str;
CDaoRecord& DaoRecord = ((CServerDoc*)GetActiveDocument())->m_daoRecord;
DaoRecord.MoveFirst();
while (pos)
{
nIndex = clc.GetNextSelectedItem(pos);
str = clc.GetItemText(nIndex, 0);
CString strFilter("[计算机名]=\"");
strFilter += str;
strFilter += '\"';
DaoRecord.FindNext(strFilter);
if(DaoRecord.m_nStatus == CLIENT_UNKNOW)
{
str += "处于未知状态,不能锁定!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
if(DaoRecord.m_nStatus == CLIENT_WORKING)
{
str += "已处于工作状态,不能解锁!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
CCommSocket * pSocket = (CCommSocket*)DaoRecord.m_SOCKET;
SMessage msg;
strcpy(msg.str, "Start Work!");
msg.IDCode = CLIENT_START_WORK;
pSocket->Send(&msg, sizeof(SMessage));
DaoRecord.Edit();
DaoRecord.m_nStatus = CLIENT_WORKING;
DaoRecord.Update();
clc.SetItemText(nIndex,8,"工作中");
SetStatusText();
}
}
//重启客户端
void CMainFrame::OnReset()
{
CListCtrl & clc = ((CServerView*)GetActiveView())->GetListCtrl();
int nIndex;
POSITION pos = clc.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择一台计算机!", MB_ICONINFORMATION | MB_OK);
return;
}
CString str;
CDaoRecord& DaoRecord = ((CServerDoc*)GetActiveDocument())->m_daoRecord;
DaoRecord.MoveFirst();
while (pos)
{
nIndex = clc.GetNextSelectedItem(pos);
str = clc.GetItemText(nIndex, 0);
CString strFilter("[计算机名]=\"");
strFilter += str;
strFilter += '\"';
DaoRecord.FindNext(strFilter);
if(DaoRecord.m_nStatus == CLIENT_UNKNOW)
{
str += "处于未知状态,不能重启!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
if(DaoRecord.m_nStatus == CLIENT_WORKING)
{
str += "已处于工作状态,不能重启!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
if(MessageBox("你是不是真的要重新启动 <" + str + "> 机器?", "提示信息", MB_OKCANCEL | MB_ICONEXCLAMATION) == IDCANCEL)
return;
CCommSocket * pSocket = (CCommSocket*)DaoRecord.m_SOCKET;
SMessage msg;
strcpy(msg.str, "ReSet!");
msg.IDCode = CLIENT_RESTART;
pSocket->Send(&msg, sizeof(SMessage));
DaoRecord.Edit();
DaoRecord.m_nStatus = CLIENT_UNKNOW;
DaoRecord.m_strCardNum = "";
DaoRecord.m_nWorkTime = 0;
DaoRecord.m_timeStart.SetDate(0, 0, 0);
DaoRecord.m_timeStart.SetTime(0, 0, 0);
DaoRecord.m_strBak = "";
DaoRecord.Update();
((CServerView*)GetActiveView())->Refurbish(DaoRecord.GetAbsolutePosition());
SetStatusText();
}
}
//关闭客户端
void CMainFrame::OnShutdown()
{
CListCtrl & clc = ((CServerView*)GetActiveView())->GetListCtrl();
int nIndex;
POSITION pos = clc.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择一台计算机!", MB_ICONINFORMATION | MB_OK);
return;
}
CString str;
CDaoRecord& DaoRecord = ((CServerDoc*)GetActiveDocument())->m_daoRecord;
DaoRecord.MoveFirst();
while (pos)
{
nIndex = clc.GetNextSelectedItem(pos);
str = clc.GetItemText(nIndex, 0);
CString strFilter("[计算机名]=\"");
strFilter += str;
strFilter += '\"';
DaoRecord.FindNext(strFilter);
if(DaoRecord.m_nStatus == CLIENT_UNKNOW)
{
str += "处于未知状态,不能重启!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
if(DaoRecord.m_nStatus == CLIENT_WORKING)
{
str += "已处于工作状态,不能重启!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
if(MessageBox("你是不是真的要关闭 <" + str + "> 机器?", "提示信息", MB_OKCANCEL | MB_ICONEXCLAMATION) == IDCANCEL)
return;
CCommSocket * pSocket = (CCommSocket*)DaoRecord.m_SOCKET;
SMessage msg;
strcpy(msg.str, "ReSet!");
msg.IDCode = CLIENT_SHUTDOWN;
pSocket->Send(&msg, sizeof(SMessage));
DaoRecord.Edit();
DaoRecord.m_nStatus = CLIENT_UNKNOW;
DaoRecord.m_strCardNum = "";
DaoRecord.m_nWorkTime = 0;
DaoRecord.m_timeStart.SetDate(0, 0, 0);
DaoRecord.m_timeStart.SetTime(0, 0, 0);
DaoRecord.m_strBak = "";
DaoRecord.Update();
((CServerView*)GetActiveView())->Refurbish(DaoRecord.GetAbsolutePosition());
SetStatusText();
}
}
//转换时间
CString CMainFrame::ConvertString(int ntemp)
{
CString strTemp;
if(ntemp < 10)
{
strTemp.Format("%d",ntemp);
strTemp = "0" + strTemp;
return(strTemp);
}
else
{
strTemp.Format("%2d",ntemp);
return strTemp;
}
}
//锁定控制台
void CMainFrame::OnLockDeskwindow()
{
CLockDeskWindow dlg;
dlg.DoModal();
}
//设置收费标准
void CMainFrame::OnSetPay()
{
CSetPayDlg dlg;
CDaoPayProperty DaoRecord;
DaoRecord.Open();
DaoRecord.MoveFirst();
CTime time;
time = CTime::GetCurrentTime();
dlg.time_morning_start = CTime(time.GetYear(), time.GetMonth(), time.GetDay(), DaoRecord.m_Morning1.GetHour(), DaoRecord.m_Morning1.GetMinute(), DaoRecord.m_Morning1.GetSecond());
dlg.time_morning_end = CTime(time.GetYear(), time.GetMonth(), time.GetDay(), DaoRecord.m_Morning2.GetHour(), DaoRecord.m_Morning2.GetMinute(), DaoRecord.m_Morning2.GetSecond());
dlg.time_afternoon_start = CTime(time.GetYear(), time.GetMonth(), time.GetDay(), DaoRecord.m_Afternoon1.GetHour(), DaoRecord.m_Afternoon1.GetMinute(), DaoRecord.m_Afternoon1.GetSecond());
dlg.time_afternoon_end = CTime(time.GetYear(), time.GetMonth(), time.GetDay(), DaoRecord.m_Afternoon2.GetHour(), DaoRecord.m_Afternoon2.GetMinute(), DaoRecord.m_Afternoon2.GetSecond());
dlg.time_all_night_start = CTime(time.GetYear(), time.GetMonth(), time.GetDay(), DaoRecord.m_Allnight1.GetHour(), DaoRecord.m_Allnight1.GetMinute(), DaoRecord.m_Allnight1.GetSecond());
dlg.time_all_night_end = CTime(time.GetYear(), time.GetMonth(), time.GetDay(), DaoRecord.m_Allnight2.GetHour(), DaoRecord.m_Allnight2.GetMinute(), DaoRecord.m_Allnight2.GetSecond());
DaoRecord.Close();
dlg.DoModal();
}
//给客户端发送消息
void CMainFrame::OnSendMessage()
{
CListCtrl & clc = ((CServerView*)GetActiveView())->GetListCtrl();
int nIndex;
POSITION pos = clc.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择一台计算机!", MB_ICONINFORMATION | MB_OK);
return;
}
CString str;
CDaoRecord& DaoRecord = ((CServerDoc*)GetActiveDocument())->m_daoRecord;
DaoRecord.MoveFirst();
while (pos)
{
nIndex = clc.GetNextSelectedItem(pos);
str = clc.GetItemText(nIndex, 0);
CString strFilter("[计算机名]=\"");
strFilter += str;
strFilter += '\"';
DaoRecord.FindNext(strFilter);
if(DaoRecord.m_nStatus == CLIENT_UNKNOW)
{
str += "处于未知状态,不能发送消息!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
if(DaoRecord.m_nStatus == CLIENT_LOCKING)
{
str += "处于锁定状态,不能发送消息!";
AfxMessageBox(str, MB_ICONINFORMATION | MB_OK);
continue;
}
CSendMsgDlg dlg;
dlg.m_strName = str;
dlg.bCheckEnable = true;
if(dlg.DoModal() == IDOK)
{
if(dlg.bSelected)
{
DaoRecord.MoveLast();
int nCount = DaoRecord.GetRecordCount();
DaoRecord.MoveFirst();
SMessage msg;
strcpy(msg.str, dlg.m_strSendMsg);
for(int i = 0; i < nCount; i++)
{
if(DaoRecord.m_nStatus == CLIENT_WORKING)
{
CCommSocket * pSocket = (CCommSocket*)DaoRecord.m_SOCKET;
msg.IDCode = CLIENT_SEND_MESSAGE;
pSocket->Send(&msg, sizeof(SMessage));
}
DaoRecord.MoveNext();
}
}
else
{
CCommSocket * pSocket = (CCommSocket*)DaoRecord.m_SOCKET;
SMessage msg;
strcpy(msg.str, dlg.m_strSendMsg);
msg.IDCode = CLIENT_SEND_MESSAGE;
pSocket->Send(&msg, sizeof(SMessage));
}
}
}
}
//商品管理
void CMainFrame::OnManageFood()
{
if (FoodModelessDlg == NULL)
{
FoodModelessDlg = new CFoodManageDlg(this);
if (FoodModelessDlg->Create())
{
}
}
else
{
FoodModelessDlg->SetActiveWindow();
FoodModelessDlg->ShowWindow(SW_SHOWNORMAL);
}
}
//显示客户端发送的消息
void CMainFrame::OnViewMessage()
{
CListCtrl & clc = ((CServerView*)GetActiveView())->GetListCtrl();
int nIndex;
POSITION pos = clc.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择一台计算机!", MB_ICONINFORMATION | MB_OK);
return;
}
CString strStatus;
CString strName;
CViewMsgDlg dlg;
while (pos)
{
nIndex = clc.GetNextSelectedItem(pos);
strName = clc.GetItemText(nIndex, 0);
strStatus = clc.GetItemText(nIndex, 8);
if(strStatus != "工作中")
{
AfxMessageBox(strName + " 未处于工作状态,不能查看消息!");
continue;
}
dlg.m_strName = strName;
dlg.DoModal();
}
}
//退出程序
void CMainFrame::OnAppExit()
{
int nCount = 0;
if (MessageBox("是否真的要退出系统?", "提示信息", MB_YESNO|MB_ICONQUESTION) == IDYES)
{
CDaoRecord& DaoRecord = ((CServerDoc*)GetActiveDocument())->m_daoRecord;
if (!(DaoRecord.IsBOF() && DaoRecord.IsEOF()))
{
DaoRecord.MoveLast();
nCount = DaoRecord.GetRecordCount();
DaoRecord.MoveFirst();
}
for(int i = 0; i < nCount; i++)
{
DaoRecord.Edit();
DaoRecord.m_timeStart.SetDate(0,0,0);
DaoRecord.m_timeStart.SetTime(0,0,0);
DaoRecord.m_fFree = 0.0;
DaoRecord.m_fPrepay = 0.0;
DaoRecord.m_nLimitTime = 0;
DaoRecord.m_nStatus = CLIENT_UNKNOW;
DaoRecord.m_nWorkTime = 0;
DaoRecord.m_SOCKET = (long)0;
DaoRecord.m_strBak = "";
DaoRecord.m_strCardNum = "";
DaoRecord.Update();
DaoRecord.MoveNext();
}
CDaoSaledFood m_daoSaledFood;
m_daoSaledFood.Open();
if (!(m_daoSaledFood.IsBOF() && m_daoSaledFood.IsEOF()))
{
m_daoSaledFood.MoveLast();
nCount = m_daoSaledFood.GetRecordCount();
m_daoSaledFood.MoveFirst();
for( i = 0; i < nCount; i++)
{
m_daoSaledFood.Delete();
m_daoSaledFood.MoveNext();
}
}
PostQuitMessage(0);
}
}
//计算间隔时间
void CMainFrame::CountIntervals()
{
CTime Currenttime = CTime::GetCurrentTime();
if (m_daoPayProperty.m_Morning1.GetHour() <= Currenttime.GetHour() && m_daoPayProperty.m_Morning2.GetHour() >= Currenttime.GetHour())
{
nNormal_intervals = (int)(60 / (m_daoPayProperty.m_Normal_Morning * 2));
nLeaguer_intervals = (int)(60 / (m_daoPayProperty.m_Leaguer_Morning * 2));
}
else
if (m_daoPayProperty.m_Afternoon1.GetHour() <= Currenttime.GetHour() && m_daoPayProperty.m_Afternoon2.GetHour() >= Currenttime.GetHour())
{
nNormal_intervals = (int)(60 / (m_daoPayProperty.m_Normal_Afternoon * 2));
nLeaguer_intervals = (int)(60 / (m_daoPayProperty.m_Leaguer_Afternoon * 2));
}
else
{
nNormal_intervals = (int)(60 / (m_daoPayProperty.m_Normal_Allnight * 2));
nLeaguer_intervals = (int)(60 / (m_daoPayProperty.m_Leaguer_Allnight * 2));
}
}
//商品出售
void CMainFrame::OnSaleFood()
{
CSaleFoodDlg dlg;
CListCtrl & clc = ((CServerView*)GetActiveView())->GetListCtrl();
int nIndex;
POSITION pos = clc.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择一台计算机!", MB_ICONINFORMATION | MB_OK);
return;
}
CString str;
CDaoRecord& DaoRecord = ((CServerDoc*)GetActiveDocument())->m_daoRecord;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -