📄 salefooddlg.cpp
字号:
// SaleFoodDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Server.h"
#include "SaleFoodDlg.h"
#include "AddFoodDlg.h"
#include "DaoFood.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSaleFoodDlg dialog
CSaleFoodDlg::CSaleFoodDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSaleFoodDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSaleFoodDlg)
m_strCountFree = _T("");
//}}AFX_DATA_INIT
}
void CSaleFoodDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSaleFoodDlg)
DDX_Control(pDX, IDC_ADD_BUTTON, m_CtrlAddButton);
DDX_Control(pDX, IDC_COUNT_FREE_STATIC, m_staticCount);
DDX_Control(pDX, IDC_FOOD_LIST, m_CtrlList);
DDX_Text(pDX, IDC_COUNT_FREE_STATIC, m_strCountFree);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSaleFoodDlg, CDialog)
//{{AFX_MSG_MAP(CSaleFoodDlg)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSaleFoodDlg message handlers
BOOL CSaleFoodDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CMenu* pSysMenu = GetSystemMenu(FALSE);
pSysMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );
char * ItemName[] ={ "商品名称", "单价(元)", "数 量", "总价(元)"};
LV_COLUMN lv;
HICON hIcon = ::LoadIcon(AfxGetApp()->m_hInstance,
MAKEINTRESOURCE(IDI_UNKNOW));
this->m_CtrlAddButton.SetIcon(hIcon);
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 < 4; 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);
float fCountFree = 0.0;
CDaoSaledFood m_daoSaledFood;
m_daoSaledFood.m_strFilter = "[机器名称]=\"";
m_daoSaledFood.m_strFilter += m_strComputerName;
m_daoSaledFood.m_strFilter += '\"';
m_daoSaledFood.Open();
SetWindowText("给 " + m_strComputerName + " 机器出售商品");
/* if (!(m_daoSaledFood.IsBOF() && m_daoSaledFood.IsEOF()))
{
m_daoSaledFood.MoveLast();
int nCount = m_daoSaledFood.GetRecordCount();
m_daoSaledFood.MoveFirst();
int nIndex = 0;
for (int i = 0; i < nCount; i++)
{
m_CtrlList.InsertItem(i,m_daoSaledFood.m_FoodName);
CString str;
str.Format("%.1f",m_daoSaledFood.m_fPrice);
m_CtrlList.SetItemText(i, 1, str);
str.Format("%d",m_daoSaledFood.m_nCount);
m_CtrlList.SetItemText(i, 2, str);
float nFree = m_daoSaledFood.m_fPrice * m_daoSaledFood.m_nCount;
str.Format("%.1f", nFree);
m_CtrlList.SetItemText(i, 3, str);
fCountFree += nFree;
m_daoSaledFood.MoveNext();
}
CString str;
str.Format("%.1f",fCountFree);
m_staticCount.SetWindowText(str);
}*/
return TRUE;
}
void CSaleFoodDlg::OnAddButton()
{
CAddFoodDlg dlg;
if(dlg.DoModal() == IDOK)
{
LVFINDINFO info;
info.flags = LVFI_STRING;
info.psz = dlg.m_strName;
int iRecordNum = m_CtrlList.FindItem(&info);
if (iRecordNum == -1)
{
int nCount = m_CtrlList.GetItemCount();
m_CtrlList.InsertItem(nCount,dlg.m_strName);
m_CtrlList.SetItemText(nCount, 1, dlg.m_strPrice);
m_CtrlList.SetItemText(nCount, 2, dlg.m_strNumbers);
CString str;
str.Format("%.1f",atof(dlg.m_strNumbers) * atof(dlg.m_strPrice));
m_CtrlList.SetItemText(nCount, 3, str);
}
else
{
CString str = m_CtrlList.GetItemText(iRecordNum, 2);
int nCount = atoi(str);
nCount = nCount + atoi(dlg.m_strNumbers);
str.Format("%d", nCount);
m_CtrlList.SetItemText(iRecordNum, 2, str);
float nFree;
nFree = (float)atof(dlg.m_strPrice) * nCount;
str.Format("%.1f", nFree);
m_CtrlList.SetItemText(iRecordNum, 3, str);
}
}
int nCount = m_CtrlList.GetItemCount();
float nFree = 0;
for(int i = 0; i < nCount; i++)
{
CString strFree = m_CtrlList.GetItemText(i, 3);
nFree += (float)atof(strFree);
strFree.Format("%.1f",nFree);
m_staticCount.SetWindowText(strFree);
}
}
void CSaleFoodDlg::OnDeleteButton()
{
POSITION pos = m_CtrlList.GetFirstSelectedItemPosition();
if(pos == NULL)
{
AfxMessageBox("请选择要删除的商品!");
}
while(pos)
{
int nIndex = m_CtrlList.GetNextSelectedItem(pos);
CString strFree;
strFree = m_CtrlList.GetItemText(nIndex, 3);
CString strCountFree;
m_staticCount.GetWindowText(strCountFree);
float fFree = float(atof(strCountFree) - atof(strFree));
strFree.Format("%.1f",fFree);
m_staticCount.SetWindowText(strFree);
m_CtrlList.DeleteItem(nIndex);
}
}
void CSaleFoodDlg::OnOK()
{
int nCount;
CDaoFood m_daoFood;
m_daoFood.Open();
nCount = m_CtrlList.GetItemCount();
for (int i = 0; i < nCount; i++)
{
CString m_strName = m_CtrlList.GetItemText(i, 0);
CString m_strNumbers = m_CtrlList.GetItemText(i, 2);
CString strFilter("[Name]=\"");
strFilter += m_strName;
strFilter += '\"';
if (m_daoFood.FindFirst(strFilter))
{
m_daoFood.Edit();
m_daoFood.m_Numbers -= atoi(m_strNumbers);
m_daoFood.Update();
}
}
CDaoSaledFood m_daoSaledFood;
m_daoSaledFood.Open();
nCount = m_CtrlList.GetItemCount();
CString strFoodName, strFilter;
for (i = 0; i < nCount; i++)
{
strFoodName = m_CtrlList.GetItemText(i, 0);
strFilter = "[商品名称]=\"";
strFilter += strFoodName;
strFilter += '\"';
strFilter += " and [机器名称]=\"";
strFilter += m_strComputerName;
strFilter += '\"';
if (m_daoSaledFood.FindFirst(strFilter) != 0)
{
m_daoSaledFood.Edit();
m_daoSaledFood.m_fPrice = (float)atof(m_CtrlList.GetItemText(i, 1));
m_daoSaledFood.m_nCount += atoi(m_CtrlList.GetItemText(i, 2));
m_daoSaledFood.Update();
}
else
{
m_daoSaledFood.AddNew();
m_daoSaledFood.m_FoodName = m_CtrlList.GetItemText(i, 0);
m_daoSaledFood.m_fPrice = (float)atof(m_CtrlList.GetItemText(i, 1));
m_daoSaledFood.m_nCount = atoi(m_CtrlList.GetItemText(i, 2));
m_daoSaledFood.m_ComputerName = m_strComputerName;
m_daoSaledFood.Update();
}
}
m_daoSaledFood.Close();
m_daoFood.Close();
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -