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

📄 vendmanage.cpp

📁 图书销售管理系统 1基本信息管理 主要是操作管理员信息管理
💻 CPP
字号:
// VendManage.cpp : implementation file
//

#include "stdafx.h"
#include "BookManage.h"
#include "VendManage.h"
#include "VendDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CVendManage dialog
extern _ConnectionPtr m_pCon;  
extern _RecordsetPtr m_pRs; 
extern _CommandPtr m_pCom;

extern int PID;

CVendManage::CVendManage(CWnd* pParent /*=NULL*/)
	: CDialog(CVendManage::IDD, pParent)
{
	//{{AFX_DATA_INIT(CVendManage)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CVendManage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CVendManage)
	DDX_Control(pDX, IDC_PUCHE_LIST, m_PucheList);
	DDX_Control(pDX, IDC_STORAGE_LIST, m_StorageList);
	//}}AFX_DATA_MAP
}

CVendManage p_vend;

BEGIN_MESSAGE_MAP(CVendManage, CDialog)
	//{{AFX_MSG_MAP(CVendManage)
	ON_COMMAND(ID_EXIT, OnExitVend)
	ON_COMMAND(ID_ADDBOOK, OnAddbook)
	ON_NOTIFY(NM_CLICK, IDC_STORAGE_LIST, OnClickStorageList)
	ON_NOTIFY(NM_CLICK, IDC_PUCHE_LIST, OnClickPucheList)
	ON_COMMAND(ID_MINUSBOOK, OnMinusbook)
	ON_COMMAND(ID_PUCHE, OnPuche)
	ON_COMMAND(ID_CLEAR, OnClear)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVendManage message handlers
BOOL CVendManage::OnInitDialog()
{
	CDialog::OnInitDialog();

	//初始化书单列表框...
	DWORD dwStyle=GetWindowLong(m_StorageList.GetSafeHwnd(),GWL_STYLE);
	dwStyle&=~LVS_TYPEMASK;
	dwStyle|=LVS_REPORT;
	SetWindowLong(m_StorageList.GetSafeHwnd(),GWL_STYLE,dwStyle);

	m_StorageList.InsertColumn(0,"ISBN",LVCFMT_LEFT,80);
	m_StorageList.InsertColumn(1,"书名",LVCFMT_LEFT,130);
	m_StorageList.InsertColumn(2,"作者",LVCFMT_LEFT,90);
	m_StorageList.InsertColumn(3,"出版社",LVCFMT_LEFT,130);
	m_StorageList.InsertColumn(4,"分类",LVCFMT_LEFT,90);
	m_StorageList.InsertColumn(5,"售价",LVCFMT_LEFT,80);
	m_StorageList.InsertColumn(6,"存货量",LVCFMT_LEFT,80);

	m_StorageList.SetExtendedStyle(LVS_EX_GRIDLINES);
    ::SendMessage(m_StorageList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,
      LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);

	//初始化选书单...
	dwStyle=GetWindowLong(m_PucheList.GetSafeHwnd(),GWL_STYLE);
	dwStyle&=~LVS_TYPEMASK;
	dwStyle|=LVS_REPORT;
	SetWindowLong(m_PucheList.GetSafeHwnd(),GWL_STYLE,dwStyle);

	m_PucheList.InsertColumn(0,"ISBN",LVCFMT_LEFT,80);
	m_PucheList.InsertColumn(1,"书名",LVCFMT_LEFT,130);
	m_PucheList.InsertColumn(2,"作者",LVCFMT_LEFT,90);
	m_PucheList.InsertColumn(3,"出版社",LVCFMT_LEFT,130);
	m_PucheList.InsertColumn(4,"分类",LVCFMT_LEFT,90);
	m_PucheList.InsertColumn(5,"售价",LVCFMT_LEFT,80);
	m_PucheList.InsertColumn(6,"购买量",LVCFMT_LEFT,80);

	m_PucheList.SetExtendedStyle(LVS_EX_GRIDLINES);
	::SendMessage(m_PucheList.m_hWnd,LVM_SETEXTENDEDLISTVIEWSTYLE,
		LVS_EX_FULLROWSELECT,LVS_EX_FULLROWSELECT);
	//显示现有图书
	ShowStorage();
	m_AddIndex = -1;
	m_DelIndex = -1;
	return TRUE;
}

void CVendManage::OnExitVend() 
{
	// TODO: Add your command handler code here
	EndDialog(0);
}

void CVendManage::ShowStorage()
{
	m_pRs->raw_Close();
	CString sql;
	sql.Format("select * from bm_BookStorage");
	m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
	int index = 0;
	m_StorageList.DeleteAllItems();
	while (!m_pRs->adoEOF)
	{
		index = m_StorageList.InsertItem(m_StorageList.GetItemCount(),
			(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)0)->Value);
		for (int col = 1;col <8;col++)
			m_StorageList.SetItemText(index,col,(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)col)->Value);
		m_pRs->MoveNext();
	}
}
//选书添加到选书单
void CVendManage::OnAddbook() 
{
	// TODO: Add your command handler code here
	if(m_AddIndex < 0)
		return;
	CVendDlg cv;
	cv.DoModal();
	if(!cv.getcount)
		return;
	if(str_to_int(cv.m_PucheCount) > str_to_int(m_StorageList.GetItemText(m_AddIndex,6)))
	{
		MessageBox("库存不够","错误!");
		return;
	}
	int index = m_PucheList.InsertItem(m_PucheList.GetItemCount(),
			m_StorageList.GetItemText(m_AddIndex,0));
	for(int i=1;i<6;i++)
		m_PucheList.SetItemText(index,i,m_StorageList.GetItemText(m_AddIndex,i));
	m_PucheList.SetItemText(index,6,cv.m_PucheCount);
}

void CVendManage::OnClickStorageList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	m_AddIndex = m_StorageList.GetSelectionMark();
	*pResult = 0;
}

void CVendManage::OnClickPucheList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	m_DelIndex = m_PucheList.GetSelectionMark();
	*pResult = 0;
}

void CVendManage::OnMinusbook() 
{
	// TODO: Add your command handler code here
	if(m_DelIndex < 0)
		return;
	m_PucheList.DeleteItem(m_DelIndex);
}
//确定购买
void CVendManage::OnPuche() 
{
	// TODO: Add your command handler code here
	if(m_PucheList.GetItemCount() < 1)
	{
		MessageBox("请先选择书籍","提示!");
		return;
	}
	CString sql;
	float cost = 0;
	for(int i=0;i<m_PucheList.GetItemCount();i++)
	{
		//更新库存
		sql.Format("select * from bm_BookStorage where ISBN='%s'",
			m_PucheList.GetItemText(i,0));
		m_pRs->raw_Close();
		m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
		int newcount = str_to_int((TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)6)->Value)-
			str_to_int(m_PucheList.GetItemText(i,6));
		sql.Format("update bm_BookStorage set storecount='%d' where ISBN='%s'",
			newcount,m_PucheList.GetItemText(i,0));
		m_pRs->raw_Close();
		m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
		//更新销售表
		CString time;
		GetDate(time);
		sql.Format("insert into bm_BookSold values (%d,%d,'%s','%s','%s','%s',%f,%d)",
			str_to_int(time),str_to_int(m_PucheList.GetItemText(i,0)),
			m_PucheList.GetItemText(i,1),
			m_PucheList.GetItemText(i,2),
			m_PucheList.GetItemText(i,3),
			m_PucheList.GetItemText(i,4),
			str_to_float(m_PucheList.GetItemText(i,5)),
			str_to_int(m_PucheList.GetItemText(i,6)));
		m_pRs->raw_Close();
		m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
		//更新销售榜
		sql.Format("select * from bm_BookSummry where ISBN='%s'",m_PucheList.GetItemText(i,0));
		m_pRs->raw_Close();
		m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);		
		if(m_pRs->RecordCount > 0)
		{
			int newcount = str_to_int((TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)6)->Value)
					+str_to_int(m_PucheList.GetItemText(i,6));
			float newsummry = (float)(str_to_float((TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)5)->Value)*newcount);
			sql.Format("update bm_BookSummry set soldcount='%d',soldsummry='%f' where ISBN='%s'",
				newcount,newsummry,m_PucheList.GetItemText(i,0));
			cost += (float)(str_to_float((TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)5)->Value)
				*str_to_int(m_PucheList.GetItemText(i,6)));
		}
		else
		{
			float x = (float)(str_to_float(m_PucheList.GetItemText(i,5))
				*str_to_int(m_PucheList.GetItemText(i,6)));
			cost += x;
			sql.Format("insert into bm_BookSummry values (%d,'%s','%s','%s','%s',%f,%d,%f)",
				str_to_int(m_PucheList.GetItemText(i,0)),
				m_PucheList.GetItemText(i,1),
				m_PucheList.GetItemText(i,2),
				m_PucheList.GetItemText(i,3),
				m_PucheList.GetItemText(i,4),
				str_to_float(m_PucheList.GetItemText(i,5)),
				str_to_int(m_PucheList.GetItemText(i,6)),x);
		}
		m_pRs->raw_Close();
		m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
	}
	m_StorageList.DeleteAllItems();
	ShowStorage();
	sql.Format("%f",cost);
	sql.TrimRight();
	MessageBox("交易成功...\n应付款为:"+sql+"元\n","提示!");
}

void CVendManage::OnClear() 
{
	// TODO: Add your command handler code here
	m_PucheList.DeleteAllItems();
}

⌨️ 快捷键说明

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