📄 checkoutdialog.cpp
字号:
// CheckOutDialog.cpp : implementation file
//
#include "stdafx.h"
#include "Server.h"
#include "CheckOutDialog.h"
#include "math.h"
#include "DaoSaledFood.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCheckOutDialog dialog
CCheckOutDialog::CCheckOutDialog(CWnd* pParent /*=NULL*/)
: CDialog(CCheckOutDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckOutDialog)
m_editActualPay = _T("");
m_editBak = _T("");
//}}AFX_DATA_INIT
}
void CCheckOutDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckOutDialog)
DDX_Control(pDX, IDC_FOOD_LIST, m_CtrlList);
DDX_Control(pDX, IDC_STATIC_NETPAY, m_staticNetPay);
DDX_Control(pDX, IDC_STATIC_COUNT_PAY, m_staticCountPay);
DDX_Control(pDX, IDC_STATIC_ADDTIONALPAY, m_staticAddFree);
DDX_Control(pDX, IDC_STATIC_PREPAY, m_staticPrePay);
DDX_Control(pDX, IDC_STATIC_TOTAL_TIME, m_staticTotalTime);
DDX_Control(pDX, IDC_STATIC_START_TIME, m_staticStartTime);
DDX_Control(pDX, IDC_STATIC_NAME, m_staticName);
DDX_Control(pDX, IDC_STATIC_END_TIME, m_staticEndTime);
DDX_Control(pDX, IDC_STATIC_CARD_NUM, m_staticCardNum);
DDX_Text(pDX, IDC_EDIT_ACTUAL_PAY, m_editActualPay);
DDV_MaxChars(pDX, m_editActualPay, 10);
DDX_Text(pDX, IDC_EDIT_BAK, m_editBak);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCheckOutDialog, CDialog)
//{{AFX_MSG_MAP(CCheckOutDialog)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckOutDialog message handlers
//锁定计算机,不做任何操作\0重新启动计算机\0关闭计算机
BOOL CCheckOutDialog::OnInitDialog()
{
CDialog::OnInitDialog();
this->m_staticName.SetWindowText(this->m_strName);
this->m_staticStartTime.SetWindowText(this->m_strStartTime);
this->m_staticEndTime.SetWindowText(this->m_strEndTime);
this->m_staticCardNum.SetWindowText(this->m_strCardNum);
if(m_strCardNum != "" && m_strCardNum != "管理员")
{
GetDlgItem(IDC_EDIT_ACTUAL_PAY)->EnableWindow(false);
}
this->m_staticNetPay.SetWindowText(this->m_strNetPay);
this->m_staticPrePay.SetWindowText(this->m_strPrePay);
this->m_staticTotalTime.SetWindowText(this->m_strTotalTime);
this->m_staticAddFree.SetWindowText(this->m_strAddtionalFree);
float fTemp = (float)((atof(this->m_strNetPay) + atof(this->m_strAddtionalFree)) - atof(this->m_strPrePay));
CString str;
str.Format("%.1f",fTemp);
this->m_staticCountPay.SetWindowText(str);
UpdateData(false);
char * ItemName[] ={ "商品名称", "单价(元)", "数 量", "总价(元)"};
LV_COLUMN lv;
HICON hIcon = ::LoadIcon(AfxGetApp()->m_hInstance,
MAKEINTRESOURCE(IDI_UNKNOW));
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);
CDaoSaledFood m_daoSaledFood;
m_daoSaledFood.m_strFilter = "[机器名称]=\"";
m_daoSaledFood.m_strFilter += m_strComputerName;
m_daoSaledFood.m_strFilter += '\"';
m_daoSaledFood.Open();
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);
m_daoSaledFood.MoveNext();
}
}
return TRUE;
}
HBRUSH CCheckOutDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(m_staticName.m_hWnd == pWnd->m_hWnd ||
m_staticStartTime.m_hWnd == pWnd->m_hWnd ||
m_staticEndTime.m_hWnd == pWnd->m_hWnd ||
m_staticPrePay.m_hWnd == pWnd->m_hWnd ||
m_staticNetPay.m_hWnd == pWnd->m_hWnd ||
m_staticTotalTime.m_hWnd == pWnd->m_hWnd ||
m_staticCardNum.m_hWnd == pWnd->m_hWnd ||
m_staticAddFree.m_hWnd == pWnd->m_hWnd ||
m_staticCountPay.m_hWnd == pWnd->m_hWnd)
{
pDC->SetTextColor(RGB(250,0,238));
}
return hbr;
}
void CCheckOutDialog::OnOK()
{
UpdateData(true);
float fFree = (float)(atof(this->m_editActualPay) -((atof(this->m_strNetPay) + atof(this->m_strAddtionalFree)) - atof(this->m_strPrePay)));
CString str;
str.Format("%.1f",fFree);
CDialog::OnOK();
if(fFree != 0.0 && this->m_strCardNum == "")
AfxMessageBox("向客户找零:" + str + "元", MB_ICONINFORMATION | MB_OK);
CDaoSaledFood m_daoSaledFood;
m_daoSaledFood.m_strFilter = "[机器名称]=\"";
m_daoSaledFood.m_strFilter += m_strComputerName;
m_daoSaledFood.m_strFilter += '\"';
m_daoSaledFood.Open();
if (!(m_daoSaledFood.IsBOF() && m_daoSaledFood.IsEOF()))
{
m_daoSaledFood.MoveLast();
int nCount = m_daoSaledFood.GetRecordCount();
m_daoSaledFood.MoveFirst();
for (int i = 0; i < nCount; i++)
{
m_daoSaledFood.Delete();
m_daoSaledFood.MoveNext();
}
}
m_daoSaledFood.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -