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

📄 goodssetdialog.cpp

📁 VC+SQL SERVER 2000环境下开发的商品销售管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// GoodsSetDialog.cpp : 实现文件
//

#include "stdafx.h"
#include "SaleManager.h"
#include "GoodsSetDialog.h"
#include ".\goodssetdialog.h"


// CGoodsSetDialog 对话框
const TCHAR CGoodsSetDialog::m_szFilters[] = 
_T("货品设置(*.xls)|*.xls|All Files(*.*)|*.*||");


IMPLEMENT_DYNAMIC(CGoodsSetDialog, CDialog)
CGoodsSetDialog::CGoodsSetDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CGoodsSetDialog::IDD, pParent),m_GoodAdd(FALSE),
	  m_GoodModify(FALSE)
	  , m_GoodsName(_T(""))
	  , m_GoodsUnit(_T(""))
	  , m_GoodsPrice(_T(""))
	  , m_Warn(_T(""))
	  , m_Index(0)
	  , m_Succeed(FALSE)
{
}

CGoodsSetDialog::~CGoodsSetDialog()
{
}

void CGoodsSetDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_GOODSMESSAGE, m_GoodsList);
	DDX_Text (pDX, IDC_EDIT_GOODS, m_GoodsName);
	DDX_Text (pDX, IDC_EDIT_UNIT, m_GoodsUnit);
	DDX_Text (pDX, IDC_EDIT_PERPRICE, m_GoodsPrice);
	DDX_Text (pDX, IDC_EDIT_WARN, m_Warn);
}


BEGIN_MESSAGE_MAP(CGoodsSetDialog, CDialog)
	ON_BN_CLICKED(IDC_BUTTON_EXIT, OnBnClickedButtonExit)
	ON_BN_CLICKED(IDC_BUTTON_ADD, OnBnClickedButtonAdd)
	ON_BN_CLICKED(IDC_BUTTON_GOODSCANCEL, OnBnClickedButtonGoodscancel)
	ON_BN_CLICKED(IDC_BUTTON_GOODSOK, OnBnClickedButtonGoodsok)
	ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnBnClickedButtonModify)
	ON_BN_CLICKED(IDC_BUTTON_DEL, OnBnClickedButtonDel)
	ON_EN_CHANGE(IDC_EDIT_GOODSNAME, OnEnChangeEditGoodsname)
	ON_BN_CLICKED(IDC_BUTTON_GOODSETTOEXCEL, OnBnClickedButtonGoodsettoexcel)
END_MESSAGE_MAP()


// CGoodsSetDialog 消息处理程序

void CGoodsSetDialog::OnBnClickedButtonExit()
{
	CDialog::OnCancel();
}

BOOL CGoodsSetDialog::OnInitDialog()
{
	CDialog::OnInitDialog();

	CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_GOODSNAME);
	pEdit->SetFocus();

	m_GoodsList.InsertColumn (0, _T("货品名称"), LVCFMT_LEFT, 100);
	m_GoodsList.InsertColumn (1, _T("单位"), LVCFMT_LEFT, 60);
    m_GoodsList.InsertColumn (2, _T("最近进价"), LVCFMT_LEFT, 80);
	m_GoodsList.InsertColumn (3, _T("预定售价"), LVCFMT_LEFT, 80);
	m_GoodsList.InsertColumn (4, _T("警告存量"), LVCFMT_LEFT, 80);
	m_GoodsList.InsertColumn (5, _T("当前存量"), LVCFMT_LEFT, 80);

    m_GoodsList.SetExtendedStyle (LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
	
	ControlCanNotUse();
	OnConnection();
    InitGoodsList();
	return TRUE;
}

void CGoodsSetDialog::OnConnection()
{
	HRESULT hr;
	try
	{
		hr = m_pConnection.CreateInstance (__uuidof(Connection));
		if(FAILED(hr))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}
		m_pConnection->ConnectionString = "File Name=SaleManagerdata.udl";
		m_pConnection->CommandTimeout = 20;

		hr = m_pConnection->Open ("", "", "", adConnectUnspecified);
		if(FAILED(hr))
		{
			AfxMessageBox(_T("打开失败!"));
			return;
		}
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

void CGoodsSetDialog::InitGoodsList()
{
	HRESULT         hrG;
	_RecordsetPtr   pRecordsetG;
	try
	{
		hrG = pRecordsetG.CreateInstance (__uuidof(Recordset));
		if(FAILED(hrG))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}
	    hrG = pRecordsetG->Open ("select * from GoodsTable",
			                     m_pConnection.GetInterfacePtr(),
			                     adOpenDynamic,
			                     adLockOptimistic,
			                     adCmdText); 

		if(SUCCEEDED(hrG))
		{
			if(!pRecordsetG->adoEOF)
			{
				_variant_t var;
				CString    strValue;
				int        index = 0;
                m_Index = 0;

				while(!pRecordsetG->adoEOF)
				{
					var = pRecordsetG->GetCollect ("GoodsName");
					strValue = (LPCSTR)_bstr_t(var);
					m_GoodsList.InsertItem (index, strValue);

					var = pRecordsetG->GetCollect ("Units");
					strValue = (LPCSTR)_bstr_t(var);
					m_GoodsList.SetItemText (index, 1, strValue);

					var = pRecordsetG->GetCollect ("BuyPrice");
					strValue = (LPCSTR)_bstr_t(var);
					m_GoodsList.SetItemText (index, 2, strValue);

					var = pRecordsetG->GetCollect ("SalePrice");
					strValue = (LPCSTR)_bstr_t(var);
					m_GoodsList.SetItemText (index, 3, strValue);

					var = pRecordsetG->GetCollect ("WarningStore");
					strValue = (LPCSTR)_bstr_t(var);
					m_GoodsList.SetItemText (index, 4, strValue);

					var = pRecordsetG->GetCollect ("NowStore");
					strValue = (LPCSTR)_bstr_t(var);
					m_GoodsList.SetItemText (index, 5, strValue);

					index ++;
					m_Index ++;
					pRecordsetG->MoveNext();
				}

				pRecordsetG->Close();
				pRecordsetG = NULL;
			}//if
		}//if
	
	}//try
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

void CGoodsSetDialog::ControlCanNotUse()
{
	CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODS);
	pEdit->EnableWindow(FALSE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_UNIT);
    pEdit->EnableWindow(FALSE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_WARN);
    pEdit->EnableWindow(FALSE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_PERPRICE);
    pEdit->EnableWindow(FALSE);

	CButton *pButton = (CButton*)GetDlgItem (IDC_BUTTON_GOODSOK);
	pButton->EnableWindow(FALSE);

    pButton = (CButton*)GetDlgItem (IDC_BUTTON_GOODSCANCEL);
	pButton->EnableWindow(FALSE);
}

void CGoodsSetDialog::ControlCanUse()
{
	CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODS);
	pEdit->EnableWindow(TRUE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_UNIT);
    pEdit->EnableWindow(TRUE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_WARN);
    pEdit->EnableWindow(TRUE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_PERPRICE);
    pEdit->EnableWindow(TRUE);

	CButton *pButton = (CButton*)GetDlgItem(IDC_BUTTON_GOODSOK);
	pButton->EnableWindow(TRUE);

    pButton = (CButton*)GetDlgItem(IDC_BUTTON_GOODSCANCEL);
	pButton->EnableWindow(TRUE);
}

void CGoodsSetDialog::OnBnClickedButtonAdd()
{
	m_GoodAdd = TRUE;
	ControlCanUse();

	CButton *pButton = (CButton*)GetDlgItem (IDC_BUTTON_MODIFY);
	pButton->EnableWindow(FALSE);

	pButton = (CButton*)GetDlgItem (IDC_BUTTON_DEL);
	pButton->EnableWindow(FALSE);

	pButton = (CButton*)GetDlgItem (IDC_BUTTON_GOODSETTOEXCEL);
	pButton->EnableWindow(FALSE);

	CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODSNAME);
	pEdit->EnableWindow(FALSE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODS);
	pEdit->SetFocus();


}


void CGoodsSetDialog::OnBnClickedButtonGoodscancel()
{
	if(m_GoodAdd)
	{
		CButton *pButton = (CButton*)GetDlgItem(IDC_BUTTON_MODIFY);
		pButton->EnableWindow(TRUE);

		pButton = (CButton*)GetDlgItem(IDC_BUTTON_DEL);
		pButton->EnableWindow(TRUE);

		pButton = (CButton*)GetDlgItem(IDC_BUTTON_GOODSETTOEXCEL);
		pButton->EnableWindow(TRUE);
  	
		CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_GOODSNAME);
	    pEdit->EnableWindow(TRUE);
		pEdit->SetFocus();

        ControlCanNotUse();
		m_GoodsName = "";
		m_GoodsUnit = "";
		m_GoodsPrice = "";
		m_Warn = "";
		UpdateData(FALSE);
		m_GoodAdd = FALSE;
		return;
	}
	if(m_GoodModify)
	{
		CButton *pButton = (CButton*)GetDlgItem (IDC_BUTTON_ADD);
		pButton->EnableWindow(TRUE);

		pButton = (CButton*)GetDlgItem (IDC_BUTTON_DEL);
		pButton->EnableWindow(TRUE);

		pButton = (CButton*)GetDlgItem (IDC_BUTTON_GOODSETTOEXCEL);
		pButton->EnableWindow(TRUE);

		CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODSNAME);
		pEdit->EnableWindow(TRUE);
	    pEdit->EnableWindow(TRUE);
		pEdit->SetFocus();

        ControlCanNotUse();
		m_GoodsName = "";
		m_GoodsUnit = "";
		m_GoodsPrice = "";
		m_Warn = "";
		UpdateData(FALSE);
		m_GoodModify = FALSE;
	}
}

void CGoodsSetDialog::OnBnClickedButtonGoodsok()
{
	if(m_GoodAdd)
	{
		UpdateData(TRUE);
		if(m_GoodsName == "")
		{
			MessageBox(_T("没有输入货品名称!"), _T("货品设置"), MB_ICONERROR |MB_OK);
			CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODS);
			pEdit->SetFocus();
			return;
		}

		if(m_GoodsUnit == "")
		{
			MessageBox(_T("没有输入货品单位!"),_T("货品设置"), MB_ICONERROR |MB_OK);
			CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_UNIT);
			pEdit->SetFocus();
			return;
		}

		AddNew();

		if(m_Succeed)
		{
			ControlCanNotUse();
			
			CButton *pButton = (CButton*)GetDlgItem(IDC_BUTTON_MODIFY);
			pButton->EnableWindow(TRUE);

			pButton = (CButton*)GetDlgItem(IDC_BUTTON_DEL);
			pButton->EnableWindow(TRUE);

			pButton = (CButton*)GetDlgItem(IDC_BUTTON_GOODSETTOEXCEL);
			pButton->EnableWindow(TRUE);
	  	
			CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_GOODSNAME);
			pEdit->EnableWindow(TRUE);
			pEdit->SetFocus();

			ControlCanNotUse();

			m_GoodsName = "";
			m_GoodsUnit = "";
			m_GoodsPrice = "";
			m_Warn = "";

			UpdateData(FALSE);
			m_GoodAdd = FALSE;
			m_Succeed = FALSE;
			
			MessageBox (_T("添加货品成功!"), _T("货品设置"), MB_ICONASTERISK | MB_OK);
		}//if
	}//if

	else if(m_GoodModify)
	{
		Modify();

		if(m_Succeed)
		{
			ControlCanNotUse();
			
			CButton *pButton = (CButton*)GetDlgItem(IDC_EDIT_GOODS);
			pButton->EnableWindow(TRUE);

			pButton = (CButton*)GetDlgItem(IDC_BUTTON_DEL);
			pButton->EnableWindow(TRUE);

			pButton = (CButton*)GetDlgItem(IDC_BUTTON_GOODSETTOEXCEL);
			pButton->EnableWindow(TRUE);

			pButton = (CButton*)GetDlgItem (IDC_BUTTON_ADD);
	        pButton->EnableWindow(TRUE);
	  	
			CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_GOODSNAME);
			pEdit->EnableWindow(TRUE);
			pEdit->SetFocus();

			ControlCanNotUse();

			m_GoodsName = "";
			m_GoodsUnit = "";
			m_GoodsPrice = "";
			m_Warn = "";

			UpdateData(FALSE);
			m_GoodModify = FALSE;
			m_Succeed = FALSE;
			MessageBox (_T("修改货品成功!"), _T("货品设置"), MB_ICONASTERISK | MB_OK);
		}
	}//else if
}

void CGoodsSetDialog::AddNew()
{
	_RecordsetPtr  pRecordsetG;
	HRESULT        hrG;
	try
	{
		hrG = pRecordsetG.CreateInstance (__uuidof(Recordset));
		if(FAILED(hrG))
		{
			AfxMessageBox (_T("不能创建实例!"));
			return;
		}
		hrG = pRecordsetG->Open ("select * from GoodsTable", 
			                     m_pConnection.GetInterfacePtr(),

⌨️ 快捷键说明

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