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

📄 dlgstock.cpp

📁 小商店管理助手软件
💻 CPP
字号:
// DlgStock.cpp : implementation file
//

#include "stdafx.h"
#include "Project.h"
#include "DlgStock.h"
#include "DlgLogin.h"

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

CString GetTime();
/////////////////////////////////////////////////////////////////////////////
// CDlgStock dialog
static int i = 0;

CDlgStock::CDlgStock(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgStock::IDD, pParent)
{
	bIfAdd = FALSE;
	//{{AFX_DATA_INIT(CDlgStock)
	m_Manufacturer =_T("");
	m_StockAmount  =0;
	m_StockPrice   =0.0 ;	
	//}}AFX_DATA_INIT
}


void CDlgStock::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgStock)
	DDX_Control(pDX, IDC_Stock_BtnAdd, m_BtnAdd);
	DDX_Control(pDX, IDC_STOCKLIST,    m_StockList);
	DDX_Text(pDX, IDC_GoodsID,     m_GoodsID);
	DDX_Text(pDX, IDC_GoodsName,   m_GoodsName);
	DDX_Text(pDX, IDC_StockAmount, m_StockAmount);
	DDX_Text(pDX, IDC_StockPrice,  m_StockPrice);
	DDX_Text(pDX, IDC_Manufacturer, m_Manufacturer);
	DDV_MaxChars(pDX, m_Manufacturer, 20);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgStock, CDialog)
	//{{AFX_MSG_MAP(CDlgStock)
	ON_BN_CLICKED(IDC_Stock_BtnAdd,    OnStockBtnAdd)
	ON_BN_CLICKED(IDC_Stock_BtnDelete, OnStockBtnDelete)
	ON_BN_CLICKED(IDC_OK, OnOk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

	m_StockList.InsertColumn(0,_T("货品ID"),   LVCFMT_CENTER,50);
	m_StockList.InsertColumn(1,_T("货品名"),   LVCFMT_CENTER,70);
	m_StockList.InsertColumn(2,_T("生产商"),   LVCFMT_CENTER,100);
	m_StockList.InsertColumn(3,_T("进货量"),   LVCFMT_CENTER,55);
	m_StockList.InsertColumn(4,_T("进价"),     LVCFMT_CENTER,60);
	m_StockList.InsertColumn(5,_T("进货日期"), LVCFMT_CENTER,140);

	return TRUE;  
}

void CDlgStock::OnStockBtnAdd()         //添加按钮响应
{	
	this->UpdateData(true);
	if(m_GoodsID!="")				    //必须有货号
	{
		if(m_GoodsName != "")			//必须有货名
		{
			if(m_StockPrice>0)			//必须有进价
			{
				CString  sDateTime;
				sDateTime= GetTime();                   //获取当前时间

				Stock goods;
				goods.sGoodID       = m_GoodsID;
				goods.sGoodName     = m_GoodsName;
				goods.sManufacturer = m_Manufacturer;
				goods.iAmounts      = m_StockAmount;
				goods.fPrice        = m_StockPrice;
				goods.sStockTime    = sDateTime;		
				stocks.push_back(goods);               //加入进货数组
				int k= stocks.size();
				
				CString sAmounts,sPrice,sDate;					
				sAmounts.Format("%i",m_StockAmount);
				sPrice.Format("%f",  m_StockPrice);
				
				m_StockList.InsertItem(i, m_GoodsID);    //列表显示
				m_StockList.SetItemText(i,1,m_GoodsName);
				m_StockList.SetItemText(i,2,m_Manufacturer);
				m_StockList.SetItemText(i,3,sAmounts);
				m_StockList.SetItemText(i,4,sPrice);
				m_StockList.SetItemText(i,5,sDateTime);
				i++;
			}
			else   AfxMessageBox("缺进价");
		}
		else  AfxMessageBox("缺货名");
	}
	else  AfxMessageBox("缺货号");
	m_GoodsID = m_GoodsName = m_Manufacturer = "";   //清空控件
	m_StockAmount = m_StockPrice = 0;
	this->UpdateData(false);
}


void CDlgStock::OnOk() 
{
	CDlgLogin dlgLogin;
	try
	{   //连接数据源
		_bstr_t Conn = "DSN="+_bstr_t(dlgLogin.m_LoginDSN)+";";   
		pConn.CreateInstance(__uuidof(Connection));
		HRESULT hr=pConn->Open(Conn,_bstr_t(""),_bstr_t(""),adModeUnknown);  //
	}
	catch(_com_error& ex)
	{
		AfxMessageBox(ex.Description());
	}	

	if(stocks.size()!=0)
	{
		for(int j=0; j<stocks.size(); j++)
		{
			CString sql;
			sql.Format("insert into TableStock values(\'%s\',\'%s\',\'%s\',\'%f\',\'%i\',\'%s\')",
				stocks[j].sGoodID,	stocks[j].sGoodName,  stocks[j].sManufacturer,
				stocks[j].fPrice,	stocks[j].iAmounts,	  stocks[j].sStockTime  );
		    try
			{
				HRESULT hr = pConn->Execute(_bstr_t(sql),NULL, adCmdText);   //向TableStock插入新记录
			}
			catch(_com_error& e)
			{	
				AfxMessageBox(e.Description());	
			}
		}
	}
	stocks.clear();    //向数据库保存后清除数组
	pConn.Release();
}

void CDlgStock::OnCancel() 
{
	CDialog::OnCancel();
}


void CDlgStock::OnStockBtnDelete() 
{
	int j = m_StockList.GetSelectionMark();
	if(j >= 0)
		stocks.erase(stocks.begin()+j);      //从stock数组中删除被取消的项
	m_StockList.DeleteItem(j);
	i--;
}





⌨️ 快捷键说明

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