⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 网吧管理系统VC源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		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 + -