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

📄 historyfreedlg.cpp

📁 网吧管理系统VC源码
💻 CPP
字号:
// HistoryFreeDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Server.h"
#include "HistoryFreeDlg.h"
#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CHistoryFreeDlg dialog


CHistoryFreeDlg::CHistoryFreeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CHistoryFreeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CHistoryFreeDlg)
	m_pParent = pParent;
	m_nID = CHistoryFreeDlg::IDD;
	//}}AFX_DATA_INIT
}


void CHistoryFreeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHistoryFreeDlg)
	DDX_Control(pDX, IDC_MONEY_STATIC, m_CtrlMoneyStatic);
	DDX_Control(pDX, IDC_COUNT_STATIC, m_CtrlCountStatic);
	DDX_Control(pDX, IDC_CONTENT_STATIC, m_CtrlStatic);
	DDX_Control(pDX, IDC_START_TIME, m_CtrlStartTime);
	DDX_Control(pDX, IDC_START_DATE, m_CtrlStartDate);
	DDX_Control(pDX, IDC_END_TIME, m_CtrlEndTime);
	DDX_Control(pDX, IDC_END_DATE, m_CtrlEndDate);
	DDX_Control(pDX, IDC_FIND_TYPE_COMBO, m_CtrlComboBox);
	DDX_Control(pDX, IDC_HISTORY_RECORD_LIST, m_CtrlList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CHistoryFreeDlg, CDialog)
	//{{AFX_MSG_MAP(CHistoryFreeDlg)
	ON_BN_CLICKED(IDC_FIND_RECORD_BUTTON, OnFindRecordButton)
	ON_CBN_SELCHANGE(IDC_FIND_TYPE_COMBO, OnSelchangeFindTypeCombo)
	ON_WM_CTLCOLOR()
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_END_DATE, OnDatetimechangeEndDate)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_START_DATE, OnDatetimechangeStartDate)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_END_TIME, OnDatetimechangeEndTime)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_START_TIME, OnDatetimechangeStartTime)
	ON_BN_CLICKED(ID_DELETE_RECORD, OnDeleteRecord)
	ON_BN_CLICKED(ID_EXIT, OnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHistoryFreeDlg message handlers

BOOL CHistoryFreeDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	pSysMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );

	char * ItemName[] ={ "机器名", "上机时间", "上机费用", "附加费用", "会员名称", "   备     注  "};
	LV_COLUMN lv;
	
	m_CtrlList.ModifyStyle(NULL, LVS_REPORT);
	int nColumnCount = m_CtrlList.GetHeaderCtrl()->GetItemCount();

	for (int i=0;i < nColumnCount;i++)
	{
		m_CtrlList.DeleteColumn(0);
	}

    lv.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH ;
    lv.fmt = LVCFMT_CENTER ;
	
	for (i = 0; i < 6; i++)
	{
		lv.cx =  5 * m_CtrlList.GetStringWidth(ItemName[i]) / 3;
		lv.pszText = ItemName[i];
		m_CtrlList.InsertColumn(i, &lv);
	}
	m_CtrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_CtrlList.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
	
	m_CtrlComboBox.SetCurSel(0);

	return TRUE;  
}


//查找指定日期时间的记录
void CHistoryFreeDlg::OnFindRecordButton() 
{
	UpdateData(true);
	CDaoHistoryFree m_daoHistoryFree;
	int nCount, i, ntemp;
	CTime date,time;
	CString str;
	float fFree = 0;
	m_CtrlList.DeleteAllItems();	
	m_CtrlStartDate.GetTime(date);
	m_CtrlStartTime.GetTime(time);	

	CTime StartTime = CTime(date.GetYear(), date.GetMonth(), date.GetDay(), time.GetHour(), time.GetMinute(), 0);
	m_CtrlEndDate.GetTime(date);
	m_CtrlEndTime.GetTime(time);
	CTime EndTime = CTime(date.GetYear(), date.GetMonth(), date.GetDay(), time.GetHour(), time.GetMinute(), 0);
	m_daoHistoryFree.Open();

	
	if (!(m_daoHistoryFree.IsBOF() && m_daoHistoryFree.IsEOF()))
	{
		m_daoHistoryFree.MoveLast();
		nCount = m_daoHistoryFree.GetRecordCount();
		m_daoHistoryFree.MoveFirst();
		int nIndex = 0;
		for(i = 0; i < nCount; i++)
		{
			if (m_daoHistoryFree.m_StartTime.GetYear() < 1900)
			{
				m_daoHistoryFree.MoveNext();
				continue;
			}
			time = CTime(m_daoHistoryFree.m_StartTime.GetYear(), m_daoHistoryFree.m_StartTime.GetMonth(), m_daoHistoryFree.m_StartTime.GetDay(), m_daoHistoryFree.m_StartTime.GetHour(), m_daoHistoryFree.m_StartTime.GetMinute(), 0);	
			if (StartTime <= time && time <= EndTime)
			{
				switch(m_CtrlComboBox.GetCurSel())
				{
				case 0: //所有机器
					GetDlgItem(IDC_NAME_STATIC)->SetWindowText("所有机器的记录");
					m_CtrlList.InsertItem(nIndex, m_daoHistoryFree.m_strName);
					str = ConvertString(m_daoHistoryFree.m_CountTime/3600);
					str +=":";
					ntemp = m_daoHistoryFree.m_CountTime % 3600;
					str += ConvertString(ntemp/60);
					str +=":";
					str += ConvertString(ntemp%60);	
					m_CtrlList.SetItemText(nIndex, 1, str);
					str.Format("%.1f", m_daoHistoryFree.m_Free);
					m_CtrlList.SetItemText(nIndex, 2, str);
					str.Format("%.1f", m_daoHistoryFree.m_AddtionalFree);
					fFree += m_daoHistoryFree.m_Free;
					fFree += m_daoHistoryFree.m_AddtionalFree;
					m_CtrlList.SetItemText(nIndex, 3, str);
					m_CtrlList.SetItemText(nIndex, 4, m_daoHistoryFree.m_CardNum);
					m_CtrlList.SetItemText(nIndex, 5, m_daoHistoryFree.m_strBak);
					nIndex++;
					break;
				case 1: //某台机器
					if(m_daoHistoryFree.m_strName == m_strComputerName)
					{
						str = ConvertString(m_daoHistoryFree.m_CountTime/3600);
						str +=":";
						ntemp = m_daoHistoryFree.m_CountTime % 3600;
						str += ConvertString(ntemp/60);
						str +=":";
						str += ConvertString(ntemp%60);	
						m_CtrlList.InsertItem(nIndex, str);
						str.Format("%.1f", m_daoHistoryFree.m_Free);
						m_CtrlList.SetItemText(nIndex, 1, str);
						str.Format("%.1f", m_daoHistoryFree.m_AddtionalFree);
						fFree += m_daoHistoryFree.m_Free;
						fFree += m_daoHistoryFree.m_AddtionalFree;				
						m_CtrlList.SetItemText(nIndex, 2, str);
						m_CtrlList.SetItemText(nIndex, 3, m_daoHistoryFree.m_CardNum);
						m_CtrlList.SetItemText(nIndex, 4, m_daoHistoryFree.m_strBak);
						nIndex++;
					}
					break;
				case 2: //所有会员
					if(m_daoHistoryFree.m_CardNum != "")
					{
						m_CtrlList.InsertItem(nIndex, m_daoHistoryFree.m_strName);
						str = ConvertString(m_daoHistoryFree.m_CountTime/3600);
						str +=":";
						ntemp = m_daoHistoryFree.m_CountTime % 3600;
						str += ConvertString(ntemp/60);
						str +=":";
						str += ConvertString(ntemp%60);	
						m_CtrlList.SetItemText(nIndex, 1, str);
						str.Format("%.1f", m_daoHistoryFree.m_Free);
						m_CtrlList.SetItemText(nIndex, 2, str);
						str.Format("%.1f", m_daoHistoryFree.m_AddtionalFree);
						fFree += m_daoHistoryFree.m_Free;
						fFree += m_daoHistoryFree.m_AddtionalFree;
						m_CtrlList.SetItemText(nIndex, 3, str);
						m_CtrlList.SetItemText(nIndex, 4, m_daoHistoryFree.m_CardNum);
						m_CtrlList.SetItemText(nIndex, 5, m_daoHistoryFree.m_strBak);
						nIndex++;
					}
					break;
				case 3: //某个会员
					if(m_daoHistoryFree.m_CardNum == m_strLeaguerName)
					{
						str = ConvertString(m_daoHistoryFree.m_CountTime/3600);
						str +=":";
						ntemp = m_daoHistoryFree.m_CountTime % 3600;
						str += ConvertString(ntemp/60);
						str +=":";
						str += ConvertString(ntemp%60);	
						m_CtrlList.InsertItem(nIndex, m_daoHistoryFree.m_strName);
						m_CtrlList.SetItemText(nIndex, 1, str);
						str.Format("%.1f", m_daoHistoryFree.m_Free);
						m_CtrlList.SetItemText(nIndex, 2, str);
						str.Format("%.1f", m_daoHistoryFree.m_AddtionalFree);
						fFree += m_daoHistoryFree.m_Free;
						fFree += m_daoHistoryFree.m_AddtionalFree;					
						m_CtrlList.SetItemText(nIndex, 3, str);
						m_CtrlList.SetItemText(nIndex, 4, m_daoHistoryFree.m_strBak);
						nIndex++;
					}
					break;
				}
			}
			m_daoHistoryFree.MoveNext();
		}
		str.Format("%d", nIndex);
		GetDlgItem(IDC_COUNT_STATIC)->SetWindowText(str);
		str.Format("%.1f", fFree);
		GetDlgItem(IDC_MONEY_STATIC)->SetWindowText(str);
	}
}


CString CHistoryFreeDlg::ConvertString(int ntemp)
{
	CString strTemp;
	if(ntemp < 10)
	{
		strTemp.Format("%d",ntemp);
		strTemp = "0" + strTemp;
		return(strTemp);
	}
	else
	{
		strTemp.Format("%2d",ntemp);
		return strTemp;
	}
}


BOOL CHistoryFreeDlg::Create()
{
	return CDialog::Create(m_nID, m_pParent);
}


void CHistoryFreeDlg::PostNcDestroy() 
{
	CDialog::PostNcDestroy();
}


void CHistoryFreeDlg::OnSelchangeFindTypeCombo() 
{
	CSelectDlg dlg;

	char * ItemName[] ={ "机器名", "上机时间", "上机费用", "附加费用", "会员名称", "   备     注  "};
	LV_COLUMN lv;
	
	m_CtrlList.ModifyStyle(NULL, LVS_REPORT);
	int nColumnCount = m_CtrlList.GetHeaderCtrl()->GetItemCount();

	for (int i=0;i < nColumnCount;i++)
	{
		m_CtrlList.DeleteColumn(0);
	}

    lv.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH ;
    lv.fmt = LVCFMT_CENTER ;
	
	for (i = 0; i < 6; i++)
	{
		lv.cx =  5 * m_CtrlList.GetStringWidth(ItemName[i]) / 3;
		lv.pszText = ItemName[i];
		m_CtrlList.InsertColumn(i, &lv);
	}
	m_CtrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_CtrlList.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

	m_CtrlList.DeleteAllItems();
	GetDlgItem(IDC_COUNT_STATIC)->SetWindowText("0");
	GetDlgItem(IDC_MONEY_STATIC)->SetWindowText("0.0");
	switch(m_CtrlComboBox.GetCurSel())
	{
	case 0:
		GetDlgItem(IDC_NAME_STATIC)->SetWindowText("所有机器的记录");
		break;
	case 1:
		dlg.IsLeaguer = false;
		if (dlg.DoModal() == IDOK)
		{
			UpdateData(true);
			this->m_strComputerName = dlg.m_strName;
			GetDlgItem(IDC_NAME_STATIC)->SetWindowText("机器名:");
			GetDlgItem(IDC_CONTENT_STATIC)->SetWindowText(m_strComputerName);
			m_CtrlList.DeleteColumn(0);
		}
		break;
	case 2:
		GetDlgItem(IDC_NAME_STATIC)->SetWindowText("所有会员的记录");
		break;
	case 3:
		dlg.IsLeaguer = true;
		if (dlg.DoModal() == IDOK)
		{
			UpdateData(true);
			this->m_strLeaguerName = dlg.m_strName;
			GetDlgItem(IDC_NAME_STATIC)->SetWindowText("会员名:");
			GetDlgItem(IDC_CONTENT_STATIC)->SetWindowText(m_strLeaguerName);
			m_CtrlList.DeleteColumn(4);
		}
		break;
	}
}


HBRUSH CHistoryFreeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

	if(m_CtrlStatic.m_hWnd == pWnd->m_hWnd ||
	   m_CtrlMoneyStatic.m_hWnd == pWnd->m_hWnd ||
	   m_CtrlCountStatic.m_hWnd == pWnd->m_hWnd) 
	{
		pDC->SetTextColor(RGB(250,0,238));
	}
	return hbr;
}


void CHistoryFreeDlg::OnDatetimechangeEndDate(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(true);
	CTime startdate, enddate;
	m_CtrlStartDate.GetTime(startdate);
	m_CtrlEndDate.GetTime(enddate);
	if(startdate > enddate)
	{
		m_CtrlEndDate.SetTime(&startdate);
		UpdateData(false);
	}
	*pResult = 0;
}


void CHistoryFreeDlg::OnDatetimechangeStartDate(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(true);
	CTime startdate, enddate;
	m_CtrlStartDate.GetTime(startdate);
	m_CtrlEndDate.GetTime(enddate);
	if(startdate > enddate)
	{
		m_CtrlStartDate.SetTime(&enddate);
		UpdateData(false);
	}
	*pResult = 0;
}


void CHistoryFreeDlg::OnDatetimechangeEndTime(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(true);
	CTime startdate, enddate;
	m_CtrlStartDate.GetTime(startdate);
	m_CtrlEndDate.GetTime(enddate);
	if(startdate == enddate)
	{
		CTime starttime, endtime;
		m_CtrlStartTime.GetTime(starttime);
		m_CtrlEndTime.GetTime(endtime);
		if (starttime > endtime)
		{
			m_CtrlEndTime.SetTime(&starttime);
			UpdateData(false);
		}
	}
	*pResult = 0;
}


void CHistoryFreeDlg::OnDatetimechangeStartTime(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(true);
	CTime startdate, enddate;
	m_CtrlStartDate.GetTime(startdate);
	m_CtrlEndDate.GetTime(enddate);
	if(startdate == enddate)
	{
		CTime starttime, endtime;
		m_CtrlStartTime.GetTime(starttime);
		m_CtrlEndTime.GetTime(endtime);
		if (starttime > endtime)
		{
			m_CtrlStartTime.SetTime(&endtime);
			UpdateData(false);
		}
	}
	*pResult = 0;
}


//删除历史记录
void CHistoryFreeDlg::OnDeleteRecord() 
{
	
	if (m_CtrlList.GetItemCount() == 0)
		return;
	if (MessageBox("真的要删除这些记录库?", "提示信息", MB_YESNO|MB_ICONQUESTION) != IDYES)
		return;
	UpdateData(true);
	CDaoHistoryFree m_daoHistoryFree;
	int nCount, i;
	CTime date,time;
	CString str;
	float fFree = 0;
	m_CtrlList.DeleteAllItems();	
	m_CtrlStartDate.GetTime(date);
	m_CtrlStartTime.GetTime(time);	

	CTime StartTime = CTime(date.GetYear(), date.GetMonth(), date.GetDay(), time.GetHour(), time.GetMinute(), 0);
	m_CtrlEndDate.GetTime(date);
	m_CtrlEndTime.GetTime(time);
	CTime EndTime = CTime(date.GetYear(), date.GetMonth(), date.GetDay(), time.GetHour(), time.GetMinute(), 0);
	m_daoHistoryFree.Open();
		
	if (!(m_daoHistoryFree.IsBOF() && m_daoHistoryFree.IsEOF()))
	{
		m_daoHistoryFree.MoveLast();
		nCount = m_daoHistoryFree.GetRecordCount();
		m_daoHistoryFree.MoveFirst();
		int nIndex = 0;
		for(i = 0; i < nCount; i++)
		{
			time = CTime(m_daoHistoryFree.m_StartTime.GetYear(), m_daoHistoryFree.m_StartTime.GetMonth(), m_daoHistoryFree.m_StartTime.GetDay(), m_daoHistoryFree.m_StartTime.GetHour(), m_daoHistoryFree.m_StartTime.GetMinute(), 0);	
			if (StartTime <= time && time <= EndTime)
			{
				switch(m_CtrlComboBox.GetCurSel())
				{
				case 0: //所有机器
					m_daoHistoryFree.Delete();
					break;
				case 1: //某台机器
					if(m_daoHistoryFree.m_strName == m_strComputerName)
						m_daoHistoryFree.Delete();
					break;
				case 2: //所有会员
					if(m_daoHistoryFree.m_CardNum != "")
						m_daoHistoryFree.Delete();
					break;
				case 3: //某个会员
					if(m_daoHistoryFree.m_CardNum == m_strLeaguerName)
						m_daoHistoryFree.Delete();
					break;
				}
			}
			m_daoHistoryFree.MoveNext();
		}
		str.Format("%d", nIndex);
		GetDlgItem(IDC_COUNT_STATIC)->SetWindowText("0");
		str.Format("%.1f", fFree);
		GetDlgItem(IDC_MONEY_STATIC)->SetWindowText("0.0");
	}
	m_daoHistoryFree.Close();
}


void CHistoryFreeDlg::OnExit() 
{
	((CMainFrame*)m_pParent)->CloseHistoryFreewindow();
	DestroyWindow();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -