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

📄 cashieroperationdlg.cpp

📁 实现超市收银管理.能实现超市的正常收银情况........
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// CashierOperationDLg.cpp : implementation file
//

#include "stdafx.h"
#include "supermarketcahsier.h"
#include "CashierOperationDLg.h"
#include "SupermarketCahsierView.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCashierOperationDLg dialog


CCashierOperationDLg::CCashierOperationDLg(CWnd* pParent /*=NULL*/)
	: CDialog(CCashierOperationDLg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCashierOperationDLg)
	m_strEdit1 = _T("");
	m_strEdit2 = _T("");
	m_strEdit3 = _T("");
	m_strEdit4 = _T("");
	m_strEdit5 = _T("");
	m_strStatic1 = _T("");
	m_strStatic2 = _T("");
	m_strStatic3 = _T("");
	m_strStatic4 = _T("");
	m_strStatic5 = _T("");
	m_strEdit6 = _T("");
	m_strStatic6 = _T("");
	//}}AFX_DATA_INIT
}


void CCashierOperationDLg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCashierOperationDLg)
	DDX_Control(pDX, IDOK, m_strBtnLeft);
	DDX_Control(pDX, IDCANCEL, m_strBtnRight);
	DDX_Text(pDX, IDC_EDIT1, m_strEdit1);
	DDX_Text(pDX, IDC_EDIT2, m_strEdit2);
	DDX_Text(pDX, IDC_EDIT3, m_strEdit3);
	DDX_Text(pDX, IDC_EDIT4, m_strEdit4);
	DDX_Text(pDX, IDC_EDIT5, m_strEdit5);
	DDX_Text(pDX, IDC_STATIC1, m_strStatic1);
	DDX_Text(pDX, IDC_STATIC2, m_strStatic2);
	DDX_Text(pDX, IDC_STATIC3, m_strStatic3);
	DDX_Text(pDX, IDC_STATIC4, m_strStatic4);
	DDX_Text(pDX, IDC_STATIC5, m_strStatic5);
	DDX_Text(pDX, IDC_EDIT6, m_strEdit6);
	DDX_Text(pDX, IDC_STATIC6, m_strStatic6);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCashierOperationDLg, CDialog)
	//{{AFX_MSG_MAP(CCashierOperationDLg)
	ON_BN_CLICKED(IDOK, OnOKBtnClicked)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCashierOperationDLg message handlers

void CCashierOperationDLg::setStype(STYPE stype)
{
	this->stype = stype;
}

BOOL CCashierOperationDLg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CString strWinText;
	UINT nCount;
	BOOL bQuery = FALSE;

	CMainFrame * m_Frm=(CMainFrame *)::AfxGetMainWnd();
	m_Frm->m_ListView->ctl->DeleteAllItems();	

	CListCtrl* pmyListCtrl = m_Frm->m_ListView->ctl; 

	int nColumnCount = pmyListCtrl->GetHeaderCtrl()->GetItemCount(); 

	// Delete all of the columns. 
	for (int i=0;i < nColumnCount;i++) 
	{ 
		pmyListCtrl->DeleteColumn(0); 
	} 		

	switch(stype)
	{
	case CASHIER_ADD:
		strWinText=_T("添加新收银员信息");
		m_strStatic1=_T("收银员编号");
		m_strStatic2=_T("收银员姓名");
		m_strStatic3=_T("收银员性别");
		m_strStatic4=_T("收银员用户名");
		m_strStatic5=_T("密码");
		m_strStatic6=_T("确认密码");
		m_strEdit3 = _T("男");
		strSQL.Format("select * from Cashier");
		break;
	case CASHIER_DELETE:
		strWinText=_T("删除收银员信息");
		m_strStatic1=_T("收银员编号");
		m_strStatic2=_T("收银员姓名");
		m_strStatic3=_T("收银员性别");
		m_strStatic4=_T("收银员用户名");
		m_strStatic5=_T("");
		m_strStatic6=_T("");
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Cashier");
		break;
	case CASHIER_EDIT:
		strWinText=_T("修改收银员信息");
		m_strStatic1=_T("收银员编号");
		m_strStatic2=_T("收银员姓名");
		m_strStatic3=_T("收银员性别");
		m_strStatic4=_T("收银员用户名");
		m_strStatic5=_T("密码");
		m_strStatic6=_T("确认密码");
		strSQL.Format("select * from Cashier");
		break;
	case CASHIER_QUERY:
		strWinText=_T("收银员信息");
		m_strStatic1=_T("收银员编号");
		m_strStatic2=_T("收银员姓名");
		m_strStatic3=_T("收银员性别");
		m_strStatic4=_T("收银员用户名");
		m_strStatic5=_T("");
		m_strStatic6=_T("");
		bQuery = TRUE;
		nCount = 4 ;
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Cashier");
		break;


	case CUSTOMER_ADD:
		strWinText=_T("添加新客户信息");
		m_strStatic1=_T("客户编号");
		m_strStatic2=_T("客户姓名");
		m_strStatic3=_T("客户性别");
		m_strStatic4=_T("");
		m_strStatic5=_T("");
		m_strStatic6=_T("");
		m_strEdit3 = _T("男");
		GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Customer");
		break;
	case CUSTOMER_DELETE:
		strWinText=_T("删除客户信息");
		m_strStatic1=_T("客户编号");
		m_strStatic2=_T("客户姓名");
		m_strStatic3=_T("客户性别");
		m_strStatic4=_T("");
		m_strStatic5=_T("");
		m_strStatic6=_T("");
		GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Customer");
		break;
	case CUSTOMER_EDIT:
		strWinText=_T("修改客户信息");
		m_strStatic1=_T("客户编号");
		m_strStatic2=_T("客户姓名");
		m_strStatic3=_T("客户性别");
		m_strStatic4=_T("消费金额");
		m_strStatic5=_T("");
		m_strStatic6=_T("");
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Customer");
		break;
	case CUSTOMER_QUERY:
		bQuery = TRUE;
		strWinText=_T("查询客户信息");
		m_strStatic1=_T("客户编号");
		m_strStatic2=_T("客户姓名");
		m_strStatic3=_T("客户性别");
		m_strStatic4=_T("注册时间");
		m_strStatic5=_T("会员");
		m_strStatic6=_T("消费金额");
		GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		nCount = 6 ;
		strSQL.Format("select * from Customer");
		break;

	case GOODS_ADD:
		strWinText=_T("添加商品信息");
		m_strStatic1=_T("商品编号");
		m_strStatic2=_T("商品名称");
		m_strStatic3=_T("商品单价");
		m_strStatic4=_T("剩余库存");
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Goods");
		break;
	case GOODS_DELETE:
		strWinText=_T("删除商品信息");
		m_strStatic1=_T("商品编号");
		m_strStatic2=_T("商品名称");
		m_strStatic3=_T("商品单价");
		m_strStatic4=_T("剩余库存");
		GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT3)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Goods");
		break;
	case GOODS_EDIT:
		strWinText=_T("修改商品信息");
		m_strStatic1=_T("商品编号");
		m_strStatic2=_T("商品名称");
		m_strStatic3=_T("商品单价");
		m_strStatic4=_T("剩余库存");
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Goods");
		break;
	case GOODS_QUERY:
		bQuery = TRUE;
		strWinText=_T("查询商品信息");
		m_strStatic1=_T("商品编号");
		m_strStatic2=_T("商品名称");
		m_strStatic3=_T("商品单价");
		m_strStatic4=_T("剩余库存");
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		nCount = 4 ;
		strSQL.Format("select * from Goods");
		break;
		
	case CASHINFO_ADD:
		strWinText=_T("添加收银信息");
		m_strStatic1=_T("收款金额");
		m_strStatic2=_T("收银员编号");
		m_strStatic3=_T("上班时间");
		m_strStatic4=_T("下班时间");
		GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT2)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT3)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Cashinfo");
		break;
	case CASHINFO_QUERY:
		bQuery = TRUE;
		strWinText=_T("查询收银信息");
		m_strStatic1=_T("收银员编号");
		m_strStatic2=_T("收银员姓名");
		m_strStatic3=_T("收款金额");
		m_strStatic4=_T("上班时间");
		m_strStatic5=_T("下班时间");
		GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		nCount = 5 ;
		strSQL.Format("select * from Query_Cashinfo");
		break;
		
	case TRADE_ADD:
		strWinText=_T("添加交易信息");
		m_strStatic1=_T("顾客编号");
		m_strStatic2=_T("商品编号");
		m_strStatic3=_T("交易数量");
		m_strStatic4=_T("交易时间");
		GetDlgItem(IDC_STATIC4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		strSQL.Format("select * from Tradeinfo");
		break;
	case TRADE_QUERY:
		bQuery = TRUE;
		strWinText=_T("查询交易信息");
		m_strStatic1=_T("顾客编号");
		m_strStatic2=_T("顾客姓名");
		m_strStatic3=_T("商品编号");
		m_strStatic4=_T("商品名称");
		m_strStatic5=_T("交易数量");
		m_strStatic6=_T("交易时间");
		GetDlgItem(IDC_STATIC5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_STATIC6)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT5)->ShowWindow(SW_HIDE);
        GetDlgItem(IDC_EDIT6)->ShowWindow(SW_HIDE);
		nCount = 6 ;
		strSQL.Format("select * from Query_Tradeinfo");
		break;
	}

	SetWindowText(strWinText);

	if(bQuery)
	{
		CString strColumns[6];
		strColumns[0]=(m_strStatic1);
		strColumns[1]=(m_strStatic2);
		strColumns[2]=(m_strStatic3);
		strColumns[3]=(m_strStatic4);
		strColumns[4]=(m_strStatic5);
		strColumns[5]=(m_strStatic6);

		CRect rect;
		m_Frm->m_ListView->GetClientRect(&rect);
		int width = rect.Width() / nCount;
		for (UINT i=0; i<nCount; ++i)
		{
			m_Frm->m_ListView->ctl->InsertColumn(i, strColumns[i], 
				LVCFMT_LEFT, width);
		}
		m_Frm->m_ListView->ctl->SetExtendedStyle(m_Frm->m_ListView->ctl->GetExtendedStyle() | \
			LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	}

	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CCashierOperationDLg::OnOKBtnClicked() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CMainFrame * m_Frm=(CMainFrame *)::AfxGetMainWnd();
	int i,j=0;
	BOOL bRet;
	BOOL bFirst = FALSE;
	CString strFilter = _T("");
	double dMoney = 0;
	char cMoney[10] = _T("");

	m_Frm->m_ListView->ctl->DeleteAllItems();

	switch(stype)
	{
	case CASHIER_ADD:
		if (m_strEdit1.IsEmpty())
		{
			AfxMessageBox("请输入收银员编号!");
			return;
		}
		if (m_strEdit2.IsEmpty())
		{
			AfxMessageBox("请输入收银员姓名!");
			return;
		}
		if (m_strEdit3 != "男" && m_strEdit3 != "女")
		{
			AfxMessageBox("请正确输入收银员性别!");
			return;
		}
		if (m_strEdit5.GetLength() < 6)
		{
			AfxMessageBox("密码必须是6位以上!");
			return;		
		}

		try
		{
			if(m_Cashier.IsOpen())
				m_Cashier.Close();
			
			m_Cashier.m_strFilter.Format("Cno = '%s'",m_strEdit1);

			m_Cashier.Open(CCashierRecordSet::snapshot,NULL,CCashierRecordSet::none);
			if(!m_Cashier.IsEOF())
			{
				m_Cashier.Close();
				AfxMessageBox("收银员编号已经存在!");
				return;
			}
			if(m_Cashier.IsOpen())
				m_Cashier.Close();

			m_Cashier.m_strFilter.Format("Clogname = '%s'",m_strEdit4);

			m_Cashier.Open(CCashierRecordSet::snapshot,NULL,CCashierRecordSet::none);
			if(!m_Cashier.IsEOF())
			{
				m_Cashier.Close();
				AfxMessageBox("收银员登录名已经被使用,请更换!");
				return;
			}

			if(m_strEdit5 == m_strEdit6)
			{
				m_Cashier.AddNew();
				m_Cashier.m_Cno = m_strEdit1;
				m_Cashier.m_Cname = m_strEdit2;
				m_Cashier.m_Csex = m_strEdit3;
				m_Cashier.m_Clogname = m_strEdit4;
				m_Cashier.m_Clogpass = m_strEdit5;

				if(m_Cashier.CanUpdate())
				{
					bRet = m_Cashier.Update();
					AfxMessageBox("新收银员信息添加成功!");
				}
			}
			else
			{
				AfxMessageBox("密码输入不一致!");
				return;
			}

			if(m_Cashier.IsOpen())
					m_Cashier.Close();
		}
		catch (CDBException* e)
		{
			e->ReportError();
			//e->Delete();
			return;
		}

		break;
	case CASHIER_DELETE:
		if (m_strEdit3 != "男" && m_strEdit3 != "女" && m_strEdit3.GetLength())
		{
			AfxMessageBox("请正确输入收银员性别!");
			return;
		}
		try{
			if(m_Cashier.IsOpen())
				m_Cashier.Close();

			if(m_strEdit1.GetLength())
			{
				if(bFirst)
					m_Cashier.m_strFilter += " and ";
				strFilter.Format("Cno = '%s'",m_strEdit1);
				m_Cashier.m_strFilter += strFilter;
				bFirst = TRUE;
			}

			if(m_strEdit2.GetLength())
			{
				if(bFirst)
					m_Cashier.m_strFilter += " and ";
				strFilter.Format("Cname = '%s'",m_strEdit2);
				m_Cashier.m_strFilter += strFilter;
				bFirst = TRUE;
			}

			if(m_strEdit3.GetLength())
			{
				if(bFirst)
					m_Cashier.m_strFilter += " and ";
				strFilter.Format("Csex = '%s'",m_strEdit3);
				m_Cashier.m_strFilter += strFilter;
				bFirst = TRUE;
			}

			if(m_strEdit4.GetLength())
			{
				if(bFirst)
					m_Cashier.m_strFilter += " and ";
				strFilter.Format("Clogname = '%s'",m_strEdit4);
				m_Cashier.m_strFilter += strFilter;
				bFirst = TRUE;
			}

			m_Cashier.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
			

			if (m_Cashier.IsOpen() && !m_Cashier.IsEOF())
			{
				m_Cashier.Delete();
				if(m_Cashier.IsOpen())
					m_Cashier.Close();
				AfxMessageBox("删除成功!");
			}
			else
			{

⌨️ 快捷键说明

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