商店管理系统源代码(十五)

本文介绍了一个商品信息管理系统的实现细节,包括系统的核心组件CCommodityInfo对话框的设计、数据交互方式及消息处理函数等。该系统能够进行商品信息的添加、更新、删除以及查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#if !defined(AFX_COMMODITYINFO_H__D5B7CE7F_B4BB_4035_B642_960A7819A0D7__INCLUDED_)
#define AFX_COMMODITYINFO_H__D5B7CE7F_B4BB_4035_B642_960A7819A0D7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CommodityInfo.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CCommodityInfo dialog

class CCommodityInfo : public CDialog
{
// Construction
public:
	CCommodityInfo(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CCommodityInfo)
	enum { IDD = IDD_COMMODITYINFO };
	CListCtrl	m_ctrlListMain;
	CString	m_strBarCode;
	CString	m_strClassify;
	CString	m_strCode;
	CString	m_strCommodityCode;
	int		m_iMaxNum;
	int		m_iMinNum;
	CString	m_strName;
	int		m_iNum;
	CString	m_strSpellCode;
	CString	m_strStandard;
	CString	m_strUnit;
	float	m_fltStockPrice;
	float	m_fltSalePrice;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCommodityInfo)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CCommodityInfo)
	virtual BOOL OnInitDialog();
	afx_msg void OnCommodityadd();
	afx_msg void OnUpdate();
	afx_msg void OnDel();
	afx_msg void OnClickListmain(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnClassifyfind();
	afx_msg void OnFind();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_COMMODITYINFO_H__D5B7CE7F_B4BB_4035_B642_960A7819A0D7__INCLUDED_)





// CommodityInfo.cpp : implementation file
//

#include "stdafx.h"
#include "SalesManagementSystem.h"
#include "CommodityInfo.h"
#include "ADOConn.h"
#include "DlgAll.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCommodityInfo dialog


CCommodityInfo::CCommodityInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CCommodityInfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCommodityInfo)
	m_strBarCode = _T("");
	m_strClassify = _T("");
	m_strCode = _T("");
	m_strCommodityCode = _T("");
	m_iMaxNum = 0;
	m_iMinNum = 0;
	m_strName = _T("");
	m_iNum = 0;
	m_strSpellCode = _T("");
	m_strStandard = _T("");
	m_strUnit = _T("");
	m_fltStockPrice = 0.0f;
	m_fltSalePrice = 0.0f;
	//}}AFX_DATA_INIT
}


void CCommodityInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCommodityInfo)
	DDX_Control(pDX, IDC_LISTMAIN, m_ctrlListMain);
	DDX_Text(pDX, IDC_BARCODE, m_strBarCode);
	DDX_Text(pDX, IDC_CLASSIFY, m_strClassify);
	DDX_Text(pDX, IDC_CODE, m_strCode);
	DDX_Text(pDX, IDC_COMMODITYCODE, m_strCommodityCode);
	DDX_Text(pDX, IDC_MAXNUM, m_iMaxNum);
	DDX_Text(pDX, IDC_MINNUM, m_iMinNum);
	DDX_Text(pDX, IDC_NAME, m_strName);
	DDX_Text(pDX, IDC_NUM, m_iNum);
	DDX_Text(pDX, IDC_SPELLCODE, m_strSpellCode);
	DDX_Text(pDX, IDC_STANDARD, m_strStandard);
	DDX_Text(pDX, IDC_UNIT, m_strUnit);
	DDX_Text(pDX, IDC_STOCKPRICE, m_fltStockPrice);
	DDX_Text(pDX, IDC_SALEPRICE, m_fltSalePrice);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCommodityInfo, CDialog)
	//{{AFX_MSG_MAP(CCommodityInfo)
	ON_BN_CLICKED(IDC_COMMODITYADD, OnCommodityadd)
	ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_NOTIFY(NM_CLICK, IDC_LISTMAIN, OnClickListmain)
	ON_BN_CLICKED(IDC_CLASSIFYFIND, OnClassifyfind)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCommodityInfo message handlers

BOOL CCommodityInfo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CADOConn adoCommodity;
	CString strSQL;
	
	strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, ";
	strSQL = strSQL + "StoreInfo.saleprice, StoreInfo.num FROM CommodityInfo INNER JOIN StoreInfo ON ";
	strSQL = strSQL + "CommodityInfo.barcode = StoreInfo.barcode";
	adoCommodity.Open(strSQL);
	adoCommodity.InitList(&m_ctrlListMain);
	adoCommodity.FillList(&m_ctrlListMain);
	adoCommodity.ExitConnect();
	
	m_ctrlListMain.SetColumnWidth(1, 100);
	m_ctrlListMain.SetColumnWidth(4, 100);

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


void CCommodityInfo::OnCommodityadd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CString strTemp;
	m_ctrlListMain.InsertItem(0, m_strClassify);
	m_ctrlListMain.SetItemText(0, 1, m_strBarCode);
	m_ctrlListMain.SetItemText(0, 2, m_strCommodityCode);
	m_ctrlListMain.SetItemText(0, 3, m_strSpellCode);
	m_ctrlListMain.SetItemText(0, 4, m_strName);
	m_ctrlListMain.SetItemText(0, 5, m_strStandard);
	m_ctrlListMain.SetItemText(0, 6, m_strUnit);
	strTemp.Format(_T("%d"), m_iMaxNum);
	m_ctrlListMain.SetItemText(0, 7, strTemp);
	strTemp.Format(_T("%d"), m_iMinNum);
	m_ctrlListMain.SetItemText(0, 8, strTemp);
	strTemp.Format(_T("%f"), m_fltStockPrice);
	m_ctrlListMain.SetItemText(0, 9, strTemp);
	strTemp.Format(_T("%f"), m_fltSalePrice);
	m_ctrlListMain.SetItemText(0, 10, strTemp);
	strTemp.Format(_T("%d"), m_iNum);
	m_ctrlListMain.SetItemText(0, 11, strTemp);
	m_strClassify = "";
	m_strBarCode = "";
	m_strCommodityCode = "";
	m_strSpellCode = "";
	m_strName = "";
	m_strStandard = "";
	m_strUnit = "";
	m_iNum = 0;
	m_iMaxNum = 0;
	m_fltStockPrice = 0;
	m_iMinNum = 0;
	m_fltSalePrice = 0;
	UpdateData(FALSE);
}

void CCommodityInfo::OnUpdate() 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	int index;
	CString strSQL, strTemp;
	CADOConn adoCommodity;

	pos = m_ctrlListMain.GetFirstSelectedItemPosition();
	index = m_ctrlListMain.GetNextSelectedItem(pos);
	strSQL = "SELECT * FROM CommodityInfo WHERE CommodityInfo.barcode = '";
	strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "'";
	adoCommodity.Open(strSQL);
	if (adoCommodity.adoEOF())
	{
		strSQL = "INSERT INTO CommodityInfo VALUES ('";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 0) + "', '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "', '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 2) + "', '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 3) + "', '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 4) + "', '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 5) + "', '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 6) + "', '";
		strTemp.Format(_T("%d"), m_iMaxNum);
		strSQL = strSQL + strTemp + "', '";
		strTemp.Format(_T("%d"), m_iMinNum);
		strSQL = strSQL + strTemp + "')";

		adoCommodity.ExitConnect();
		adoCommodity.ExecuteSQL(strSQL);

		strSQL = "INSERT INTO StoreInfo VALUES ('";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "', '";
		strTemp.Format(_T("%0.2f"), m_fltStockPrice);
		strSQL = strSQL + strTemp + "', '";
		strTemp.Format(_T("%0.2f"), m_fltSalePrice);
		strSQL = strSQL + strTemp + "', '";
		strTemp.Format(_T("%d"), m_iNum);
		strSQL = strSQL + strTemp + "')";

		adoCommodity.ExecuteSQL(strSQL);
	}
	else
	{
		strSQL = "UPDATE CommodityInfo SET typecode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 0) + "', barcode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "', commoditycode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 2) + "', spellcode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 3) + "', name = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 4) + "', standard = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 5) + "', unit = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 6) + "', maxnum = '";
		strTemp.Format(_T("%d"), m_iMaxNum);
		strSQL = strSQL + strTemp + "', minnum = '";
		strTemp.Format(_T("%d"), m_iMinNum);
		strSQL = strSQL + strTemp + "' WHERE barcode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "'";
		adoCommodity.ExitConnect();
		adoCommodity.ExecuteSQL(strSQL);

		strSQL = "UPDATE StoreInfo SET barcode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "', stockprice = '";
		strTemp.Format(_T("%0.2f"), m_fltStockPrice);
		strSQL = strSQL + strTemp + "', saleprice = '";
		strTemp.Format(_T("%0.2f"), m_fltSalePrice);
		strSQL = strSQL + strTemp + "', num = '";
		strTemp.Format(_T("%d"), m_iNum);
		strSQL = strSQL + strTemp + "' WHERE barcode = '";
		strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "'";
		adoCommodity.ExitConnect();
	}
}

void CCommodityInfo::OnDel() 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	int index;
	CADOConn adoCommodity;
	CString strSQL;
	
	pos = m_ctrlListMain.GetFirstSelectedItemPosition();
	index = m_ctrlListMain.GetNextSelectedItem(pos);
	strSQL = "DELETE * FROM CommodityInfo WHERE CommodityInfo.barcode ='";
	strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "'";
	adoCommodity.ExecuteSQL(strSQL);
	strSQL = "DELETE * FROM StoreInfo WHERE StoreInfo.barcode ='";
	strSQL = strSQL + m_ctrlListMain.GetItemText(index, 1) + "'";
	adoCommodity.ExecuteSQL(strSQL);
	m_ctrlListMain.DeleteItem(index);
}

void CCommodityInfo::OnClickListmain(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	int index;

	pos = m_ctrlListMain.GetFirstSelectedItemPosition();
	index = m_ctrlListMain.GetNextSelectedItem(pos);
	
	m_strClassify = m_ctrlListMain.GetItemText(index, 0);
	m_strBarCode = m_ctrlListMain.GetItemText(index, 1);
	m_strCommodityCode = m_ctrlListMain.GetItemText(index, 2);
	m_strSpellCode = m_ctrlListMain.GetItemText(index, 3);
	m_strName = m_ctrlListMain.GetItemText(index, 4);
	m_strStandard = m_ctrlListMain.GetItemText(index, 5);
	m_strUnit = m_ctrlListMain.GetItemText(index, 6);
	m_iMaxNum = atoi(m_ctrlListMain.GetItemText(index, 7));
	m_iMinNum = atoi(m_ctrlListMain.GetItemText(index, 8));
	m_fltStockPrice = atof(m_ctrlListMain.GetItemText(index, 9));
	m_fltSalePrice = atof(m_ctrlListMain.GetItemText(index, 10));
	m_iNum = atoi(m_ctrlListMain.GetItemText(index, 11));
	UpdateData(FALSE);

	*pResult = 0;
}

void CCommodityInfo::OnClassifyfind() 
{
	// TODO: Add your control notification handler code here
	CDlgAll dlgAll;
	CString strSQL;

	strSQL = "SELECT * FROM CommodityType";
	dlgAll.strTitle = "商品基本分类信息";
	dlgAll.strSQL = strSQL;
	dlgAll.intKey = 0;

	if (dlgAll.DoModal() == IDOK)
	{
		m_strClassify = dlgAll.strKey;
		UpdateData(FALSE);
	}
}

void CCommodityInfo::OnFind() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CADOConn adoFind;
	CDlgAll dlgAll;
	CString strSQL;
	
	strSQL = "SELECT CommodityInfo.barcode, CommodityInfo.name, CommodityInfo.standard, ";
	strSQL = strSQL + "CommodityInfo.unit, StoreInfo.saleprice, StoreInfo.num ";
	strSQL = strSQL + "FROM CommodityInfo INNER JOIN StoreInfo ON ";
	strSQL = strSQL + "CommodityInfo.barcode = StoreInfo.barcode WHERE CommodityInfo.barcode = '";
	strSQL = strSQL + m_strCode + "' OR CommodityInfo.commoditycode = '";
	strSQL = strSQL + m_strCode + "' OR CommodityInfo.spellcode = '";
	strSQL = strSQL + m_strCode + "'";
	dlgAll.strTitle = "商品基本信息";
	dlgAll.strSQL = strSQL;
	dlgAll.intKey = 0;

	if (dlgAll.DoModal() == IDOK)
	{
		strSQL = "SELECT CommodityInfo.*, StoreInfo.stockprice, StoreInfo.saleprice, StoreInfo.num FROM CommodityInfo INNER JOIN StoreInfo ON ";
		strSQL = strSQL + "CommodityInfo.barcode = StoreInfo.barcode WHERE CommodityInfo.barcode = '";
		strSQL = strSQL + dlgAll.strKey + "'";
		adoFind.Open(strSQL);
		adoFind.FillList(&m_ctrlListMain);
		m_ctrlListMain.SetItemText(0, 11, "1");
		
		UpdateData(FALSE);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值