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

📄 selldlg.cpp

📁 赛克思书店销售管理系统.可用于二次开发,以C++与sql 写.
💻 CPP
字号:
// SellDlg.cpp : implementation file
//

#include "stdafx.h"
#include "resource.h"
#include "SellDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSellDlg dialog
static int i = 0;
static 	BOOL stocknum;

/////////////////////////////////////////////////////////////////////////////
// CSellDlg dialog

CSellDlg::CSellDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSellDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSellDlg)
	m_SellISBN = _T("");
	m_SellVip = _T("");
	m_SellNum = 1;
	m_SellDis = 1;
	stocknum = TRUE;
	//}}AFX_DATA_INIT
}

CSellDlg::~CSellDlg()
{
}

void CSellDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSellDlg)
	DDX_Control(pDX, IDC_SPINNUM, m_Spin);
	DDX_Control(pDX, IDC_SELLLIST, m_SellList);
	DDX_Text(pDX, IDC_SELLISBN, m_SellISBN);
	DDX_Text(pDX, IDC_SELLVIP, m_SellVip);
	DDX_Text(pDX, IDC_SELLNUM, m_SellNum);
	DDX_Text(pDX, IDC_SELLDISCOUNT, m_SellDis);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSellDlg, CDialog)
	//{{AFX_MSG_MAP(CSellDlg)
	ON_BN_CLICKED(IDC_SELLSAVECONTINUE, OnSellsavecontinue)
	ON_WM_LBUTTONDOWN()
	ON_BN_CLICKED(IDC_SELLDELETE, OnSelldelete)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSellDlg message handlers

BOOL CSellDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	i = 0;
	///初始化列表框
	m_SellList.SetTextColor(RGB (0, 0, 0));
	m_SellList.SetBkColor(RGB(255,255,255));
	m_SellList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);	

	m_SellList.InsertColumn(0,_T("ISBN"),LVCFMT_CENTER,100);
	m_SellList.InsertColumn(1,_T("书名"),LVCFMT_CENTER,100);
	m_SellList.InsertColumn(2,_T("作者"),LVCFMT_CENTER,80);
	m_SellList.InsertColumn(3,_T("数量"),LVCFMT_CENTER,60);
	m_SellList.InsertColumn(4,_T("类别"),LVCFMT_CENTER,80);
	m_SellList.InsertColumn(5,_T("出版社"),LVCFMT_CENTER,100);
	m_SellList.InsertColumn(6,_T("版本"),LVCFMT_CENTER,60);
	m_SellList.InsertColumn(7,_T("册数"),LVCFMT_CENTER,60);
	m_SellList.InsertColumn(8,_T("折扣"),LVCFMT_CENTER,60);
	m_SellList.InsertColumn(9,_T("价格"),LVCFMT_CENTER,60);

	m_Spin.SetRange(0,1000);
	m_Spin.SetPos(1);

	return TRUE;
}

BOOL CSellDlg::OnSellsavecontinue() 
{
	this->UpdateData(true);
	if(m_SellISBN!="")
	{
		SHOP::_RecordsetPtr pRst,pRst1;
		CString _sql;
		CString _sql1;
		int m_num = 0;

		_sql.Format("select * from BOOK where ISBN = \'%s\'",m_SellISBN);
		_sql1.Format("select NUM from STOCK where ISBN = \'%s\'",m_SellISBN);
		_bstr_t sql = _sql;
		_bstr_t sql1 = _sql1;
		try
		{
			pRst1 = pConn->Execute(sql1,NULL,SHOP::adCmdText);
			while(!pRst1->End)
			{
				_variant_t vNUM = pRst1->Fields->GetItem("NUM")->Value;
				m_num = vNUM.iVal;
				if(m_num < m_SellNum)
				{
					AfxMessageBox("对不起,库存数量不足!");
					stocknum = FALSE;
					return FALSE;
				}
				pRst1->MoveNext();
			}
			pRst1->Close();
			pRst1.Release();

			pRst = pConn->Execute(sql,NULL,SHOP::adCmdText);
			while(!pRst->End)
			{
				_variant_t vISBN = pRst->Fields->GetItem("ISBN")->Value;
				_variant_t vNAME = pRst->Fields->GetItem(long(1))->Value; 
				_variant_t vCLASS = pRst->Fields->GetItem(long(2))->Value;
				_variant_t vAUTHOR = pRst->Fields->GetItem(long(3))->Value;
				_variant_t vPRESS = pRst->Fields->GetItem(long(4))->Value;
				_variant_t vVER = pRst->Fields->GetItem(long(6))->Value;
				_variant_t vPRICE = pRst->Fields->GetItem(long(7))->Value;
				_variant_t vVOLUME = pRst->Fields->GetItem(long(9))->Value;
				
				CString m_isbn = vISBN.bstrVal;
				CString m_name = vNAME.bstrVal;
				CString m_class = vCLASS.bstrVal;
				CString m_author = vAUTHOR.bstrVal;
				CString m_press = vPRESS.bstrVal;
				
				int m_ver = vVER.iVal;
				int m_price = vPRICE.iVal;
				int m_volume = vVOLUME.iVal;
				
				CString version,price,volume,num,dis;
				version.Format("%d",m_ver);
				price.Format("%d",m_price);
				volume.Format("%d",m_volume);
				num.Format("%d",m_SellNum);
				dis.Format("%d",m_SellDis);
				
				price.Insert(price.GetLength()-2,".");
				
				sell s;
				s.isbn = m_isbn;
				s.name = m_name;
				s.author = m_author;
				s.classes = m_class;
				s.press = m_press;
				s.version = version;
				s.volume = volume;
				s.price = m_price/100;
				s.discount = m_SellDis;
				s.num = m_SellNum;
				s.vipid = m_SellVip;
				s.empid = "1000";
				sells.push_back(s);
				
				m_SellList.InsertItem(i,s.isbn);
				m_SellList.SetItemText(i,1,s.name);
				m_SellList.SetItemText(i,2,s.author);
				m_SellList.SetItemText(i,3,num);
				m_SellList.SetItemText(i,4,s.classes);
				m_SellList.SetItemText(i,5,s.press);
				m_SellList.SetItemText(i,6,s.version);
				m_SellList.SetItemText(i,7,s.volume);
				m_SellList.SetItemText(i,8,dis);
				m_SellList.SetItemText(i,9,price);
				i++;
				pRst->MoveNext();
			}
			
			pRst->Close();
			pRst.Release();
		}
		catch(_com_error& e)
		{
			AfxMessageBox(e.Description());
		}
		m_SellISBN = "";
		m_SellVip = "";
		m_SellNum = 1;
		m_SellDis = 1;
		this->UpdateData(false);
	}
	else
		AfxMessageBox("请输入图书号!");
	return TRUE;
}

void CSellDlg::OnOK()
{
	if(stocknum == FALSE)
	{
		AfxMessageBox("对不起,库存数量不足!");
		return;
	}
	if(!sells.size() == 0)
	{
		for(int in = 0; in < sells.size(); in++)
		{
			CString _sql;
			_sql.Format("insert into SELL values(sysdate,\'%s\',\'%s\',%d,%d,%d,\'%s\',\'%s\',\'%s\')",sells[in].isbn,sells[in].name,sells[in].num,sells[in].price,sells[in].discount,sells[in].empid,sells[in].author,sells[in].classes);
			_bstr_t sql = _sql;
			try
			{
				pConn->Execute(sql,NULL,SHOP::adCmdText);	
			}
			catch(_com_error& e)
			{
				AfxMessageBox(e.Description());
			}
		}
		AfxMessageBox("交易成功!");
		sells.clear();
		CDialog::OnOK();
		
	}
	else
		AfxMessageBox("未选定图书,请选择!");
}

void CSellDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y));
	CDialog::OnLButtonDown(nFlags, point);
}

void CSellDlg::OnSelldelete() 
{
	int j = m_SellList.GetSelectionMark();
	if(j >= 0)
		sells.erase(sells.begin()+j);
	m_SellList.DeleteItem(j);
	i--;
}

void CSellDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
}

⌨️ 快捷键说明

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