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

📄 foodmanagedlg.cpp

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CFoodManageDlg dialog


CFoodManageDlg::CFoodManageDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFoodManageDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFoodManageDlg)
	m_strName = _T("");
	m_strNumbers = _T("");
	m_strPrice = _T("");
	m_pParent = pParent;
	m_nID = CFoodManageDlg::IDD;
	//}}AFX_DATA_INIT
}


void CFoodManageDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFoodManageDlg)
	DDX_Control(pDX, IDC_FOOD_LIST, m_CtrlList);
	DDX_Text(pDX, IDC_NAME_EDIT, m_strName);
	DDX_Text(pDX, IDC_NUMBERS_EDIT, m_strNumbers);
	DDX_Text(pDX, IDC_PRICE_EDIT, m_strPrice);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFoodManageDlg, CDialog)
	//{{AFX_MSG_MAP(CFoodManageDlg)
	ON_BN_CLICKED(IDC_ADD, OnAddFood)
	ON_BN_CLICKED(IDC_MODIFY, OnModifyFood)
	ON_BN_CLICKED(IDC_DELETE, OnDeleteFood)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_FOOD_LIST, OnItemchangedFoodList)
	ON_BN_CLICKED(IDC_SAVE, OnSaveFood)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFoodManageDlg message handlers

BOOL CFoodManageDlg::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_LEFT ;
	
	for (i = 0; i < 3; 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);
	
	DaoRecord.Open();
	if(!(DaoRecord.IsBOF() && DaoRecord.IsEOF()))
    {
		DaoRecord.MoveLast();
		int nCount = DaoRecord.GetRecordCount();
		DaoRecord.MoveFirst();
		for(i = 0; i < nCount; i++)
		{
			CString str;
			m_CtrlList.InsertItem(i, DaoRecord.m_Name);
			str.Format("%.1f",DaoRecord.m_Price);
			m_CtrlList.SetItemText(i, 1, str);
			str.Format("%d",DaoRecord.m_Numbers);
			m_CtrlList.SetItemText(i, 2, str);
			DaoRecord.MoveNext();
		}
	}
	DaoRecord.Close();
	this->m_strName = m_CtrlList.GetItemText(0,0);
	this->m_strPrice = m_CtrlList.GetItemText(0,1);
	this->m_strNumbers = m_CtrlList.GetItemText(0,2);
	UpdateData(false);
	return TRUE;  
}

//添加商品
void CFoodManageDlg::OnAddFood() 
{
	UpdateData(true);
	this->m_strName.TrimLeft();
	this->m_strName.TrimRight();

	LVFINDINFO info;
	info.flags = LVFI_STRING;
	info.psz = this->m_strName;
	int iRecordNum = m_CtrlList.FindItem(&info);
	if(iRecordNum != -1)
	{
		AfxMessageBox("不能添加同名的商品!", MB_ICONINFORMATION | MB_OK);
		return;
	}

	int nCount = m_CtrlList.GetItemCount();
	if(this->m_strName != "")
	{
		m_CtrlList.InsertItem(nCount, this->m_strName);
		m_CtrlList.SetItemText(nCount, 1, this->m_strPrice);
		m_CtrlList.SetItemText(nCount, 2, this->m_strNumbers);
		DaoRecord.Open();
		DaoRecord.AddNew();
		DaoRecord.m_Name = this->m_strName;
		DaoRecord.m_Numbers = atoi(this->m_strNumbers);
		DaoRecord.m_Price = (float)atof(this->m_strPrice);
		DaoRecord.Update();
		DaoRecord.Close();
	}
	else
	{
		AfxMessageBox("没有要添加的商品!", MB_ICONINFORMATION | MB_OK);
	}
}


//修改商品资料
void CFoodManageDlg::OnModifyFood() 
{
	UpdateData(true);
	LVFINDINFO info;
	info.flags = LVFI_STRING;

	this->m_strName.TrimLeft();
	this->m_strName.TrimRight();

	info.psz = this->m_strName;
	int iRecordNum = m_CtrlList.FindItem(&info);
	if(iRecordNum == -1)
	{
		AfxMessageBox("不能修改商品的名称!", MB_ICONINFORMATION | MB_OK);
		return;
	}
	m_CtrlList.SetItemText(iRecordNum, 1, this->m_strPrice);
	
	DaoRecord.Open();
	CString strFilter("[Name]=\"");
	strFilter += m_strName;
	strFilter += '\"';
	if (DaoRecord.FindFirst(strFilter))
	{
		DaoRecord.Edit();
		DaoRecord.m_Numbers += atoi(this->m_strNumbers);
		DaoRecord.m_Price = (float)atof(this->m_strPrice);
		DaoRecord.Update();
		CString str;
		str.Format("%d", DaoRecord.m_Numbers);
    	m_CtrlList.SetItemText(iRecordNum, 2, str);
		AfxMessageBox("商品资料修改成功!", MB_ICONINFORMATION | MB_OK);
	}
	DaoRecord.Close();
}


//删除商品
void CFoodManageDlg::OnDeleteFood() 
{
	POSITION pos = m_CtrlList.GetFirstSelectedItemPosition();		
	if(pos == NULL)
	{
		AfxMessageBox("请选择要删除的商品!", MB_ICONINFORMATION | MB_OK);
		return;
	}

	CString strName;
	int nIndex = m_CtrlList.GetNextSelectedItem(pos);
	strName = m_CtrlList.GetItemText(nIndex, 0);
	if(MessageBox("真的要删除 <" + strName + "> 商品?", "提示信息", MB_OKCANCEL | MB_ICONEXCLAMATION) == IDCANCEL)
		return;
	
	DaoRecord.Open();
	while(pos)
	{
		nIndex = m_CtrlList.GetNextSelectedItem(pos);
		CString str = m_CtrlList.GetItemText(nIndex, 0); 
		m_CtrlList.DeleteItem(nIndex);
		
		CString strFilter("[Name]=\"");
		strFilter += str;
		strFilter += '\"';
		if (DaoRecord.FindFirst(strFilter))
			DaoRecord.Delete();
	}
	DaoRecord.Close();
}


void CFoodManageDlg::OnItemchangedFoodList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

	POSITION pos = m_CtrlList.GetFirstSelectedItemPosition();
	while (pos)
	{
		int nIndex = m_CtrlList.GetNextSelectedItem(pos);
		this->m_strName = m_CtrlList.GetItemText(nIndex, 0);
		this->m_strPrice = m_CtrlList.GetItemText(nIndex, 1);
		this->m_strNumbers = m_CtrlList.GetItemText(nIndex, 2);
		UpdateData(false);
	}
	*pResult = 0;
}

//保存修改
void CFoodManageDlg::OnSaveFood() 
{
	DaoRecord.Open();
	if(!(DaoRecord.IsBOF() &&DaoRecord.IsEOF()))
	{
		DaoRecord.MoveLast();
		int nCount = DaoRecord.GetRecordCount();
		DaoRecord.MoveFirst();
		for(int i = 0; i < nCount; i++)
		{
			DaoRecord.Delete();
			DaoRecord.MoveNext();
		}
	}
	
	int nCount = m_CtrlList.GetItemCount();
	for(int i = 0; i < nCount; i++)
	{
		DaoRecord.AddNew();
		DaoRecord.m_Name = m_CtrlList.GetItemText(i, 0);
		DaoRecord.m_Price = (float)atof(m_CtrlList.GetItemText(i, 1));
		DaoRecord.m_Numbers = atoi(m_CtrlList.GetItemText(i, 2));
		DaoRecord.Update();
	}
	DaoRecord.Close();
	CDialog::OnOK();
}

void CFoodManageDlg::OnExit() 
{
	((CMainFrame*)m_pParent)->CloseFoodWindow();
	DestroyWindow();
}

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

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

⌨️ 快捷键说明

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