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

📄 goodsmanagerdialog.cpp

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

#include "stdafx.h"
#include "SaleManager.h"
#include "GoodsManagerDialog.h"
#include ".\goodsmanagerdialog.h"


// CGoodsManagerDialog 对话框

const TCHAR CGoodsManagerDialog::m_szFilters[] = 
_T("存货管理(*.xls)|*.xls|All Files(*.*)|*.*||");

IMPLEMENT_DYNAMIC(CGoodsManagerDialog, CDialog)
CGoodsManagerDialog::CGoodsManagerDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CGoodsManagerDialog::IDD, pParent)
	, m_GoodsManNameofName(_T(""))
	, m_BookinNum(_T(""))
	, m_GoodsManRemark(_T(""))
	, m_GoodsManUnits(_T(""))
	, m_BookinTotalPrice(_T(""))
	, m_GoodsManNowStore(_T(""))
	, m_GoodsManSalePrice(_T(""))
	, m_Succeed(FALSE)
	, m_IndexList(0)
{
}

CGoodsManagerDialog::~CGoodsManagerDialog()
{
}

void CGoodsManagerDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_DATETIMEPICKER_GOODSMANAGERFROM, m_GoodsManagerTimeFrom);
	DDX_Control(pDX, IDC_DATETIMEPICKER_GOODSMANAGERTO, m_GoodsManagerTimeTo);
	DDX_Control(pDX, IDC_COMBO_GOODSMANOPERATOR, m_GoodsManagerOperate);
	DDX_Control(pDX, IDC_LIST_MANAGERACTIONLIST, m_GoodsManagerList);
	DDX_Control(pDX, IDC_COMBO_GOODSMANAGERTYPE, m_GoodsManType);
	DDX_Control(pDX, IDC_COMBO_GOODSMANAGER_GOODSNAME, m_GoodsManGoodsName);
	DDX_Text (pDX, IDC_EDIT_GOODSMANAGERNAMEOFNAME, m_GoodsManNameofName);
	DDX_Text (pDX, IDC_EDIT_MANAGERGOODSNUM, m_BookinNum);
	DDX_Text (pDX, IDC_EDIT_GOODSMANAGERREMARK, m_GoodsManRemark);
	DDX_Text (pDX, IDC_EDIT_GOODSMANAGERUNITS, m_GoodsManUnits);
	DDX_Text (pDX, IDC_EDIT_GOODSMANAGER_TOTALPRICE, m_BookinTotalPrice);
	DDX_Text (pDX, IDC_EDIT_GOODSMANAGER_NOWSTORE, m_GoodsManNowStore);
	DDX_Text (pDX, IDC_EDIT_GOODSMANAGER_SALEPRICE, m_GoodsManSalePrice);
}


BEGIN_MESSAGE_MAP(CGoodsManagerDialog, CDialog)
	ON_BN_CLICKED(IDC_BUTTON_GOODSMANAGEREXIT, OnBnClickedButtonGoodsmanagerexit)
	ON_CBN_SELCHANGE(IDC_COMBO_GOODSMANOPERATOR, OnCbnSelchangeComboGoodsmanoperator)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER_GOODSMANAGERFROM, OnDtnDatetimechangeDatetimepickerGoodsmanagerfrom)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER_GOODSMANAGERTO, OnDtnDatetimechangeDatetimepickerGoodsmanagerto)
	ON_BN_CLICKED(IDC_BUTTON_GOODSMANAGER, OnBnClickedButtonGoodsmanager)
	ON_BN_CLICKED(ID_MANAGER_CANCEL, OnBnClickedManagerCancel)
	ON_BN_CLICKED(ID_MANAGER_OK, OnBnClickedManagerOk)
	ON_CBN_SELCHANGE(IDC_COMBO_GOODSMANAGER_GOODSNAME, OnCbnSelchangeComboGoodsmanagerGoodsname)
	ON_EN_CHANGE(IDC_EDIT_GOODSMANAGERNAMEOFNAME, OnEnChangeEditGoodsmanagernameofname)
	ON_BN_CLICKED(IDC_BUTTON_GOODSMANlISTTOEXCEL, OnBnClickedButtonGoodsmanlisttoexcel)
END_MESSAGE_MAP()


// CGoodsManagerDialog 消息处理程序

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

	m_GoodsManagerList.InsertColumn (0, _T("登记日期"), LVCFMT_LEFT, 90,-1);
	m_GoodsManagerList.InsertColumn (1, _T("时间"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (2, _T("操作员"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (3, _T("类型"), LVCFMT_LEFT, 60, -1);
	m_GoodsManagerList.InsertColumn (4, _T("货品名称"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (5, _T("记前存量"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (6, _T("记前单价"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (7, _T("登记数量"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (8, _T("登记总价"), LVCFMT_LEFT, 80, -1);
	m_GoodsManagerList.InsertColumn (9, _T("登记备注"), LVCFMT_LEFT, 200, -1);

	m_GoodsManagerList.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

	OnConnection();
	OnInitComboBox();

	m_GoodsManType.InsertString (-1, _T("进货"));
	m_GoodsManType.InsertString (-1, _T("修改"));
    
	OnInitControl ();

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CGoodsManagerDialog::OnConnection()
{
	HRESULT hr;

	try
	{
		hr = m_pConnection.CreateInstance(__uuidof(Connection));

		if(SUCCEEDED(hr))
		{
			m_pConnection->ConnectionString = "File Name=SaleManagerdata.udl";
			m_pConnection->ConnectionTimeout = 20;

			hr = m_pConnection->Open("","","",adConnectUnspecified);

			if(FAILED(hr))
			{
				AfxMessageBox("打开失败");
				return;
			}
		}
		else
		{
			AfxMessageBox("创建连接实例失败!");
			return;
		}
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

void CGoodsManagerDialog::OnBnClickedButtonGoodsmanagerexit()
{
	m_pConnection->Close ();
	m_pConnection = NULL;
	CDialog::OnCancel ();
}

void CGoodsManagerDialog::OnInitControl ()
{

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

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

	CComboBox *pComboBox = (CComboBox*)GetDlgItem (IDC_COMBO_GOODSMANAGERTYPE);
	pComboBox->EnableWindow (FALSE);

	pComboBox = (CComboBox*)GetDlgItem (IDC_COMBO_GOODSMANAGER_GOODSNAME);
	pComboBox->EnableWindow (FALSE);

	pEdit = (CEdit*)GetDlgItem (IDC_EDIT_GOODSMANAGER_TOTALPRICE);
	pEdit->EnableWindow (FALSE);
   
	CButton *pButton = (CButton*)GetDlgItem (ID_MANAGER_OK);
	pButton->EnableWindow (FALSE);

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

void CGoodsManagerDialog::OnCancelControl()
{

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

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

	CComboBox *pComboBox = (CComboBox*)GetDlgItem (IDC_COMBO_GOODSMANAGERTYPE);
	pComboBox->EnableWindow (TRUE);

	pComboBox = (CComboBox*)GetDlgItem (IDC_COMBO_GOODSMANAGER_GOODSNAME);
	pComboBox->EnableWindow (TRUE);

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

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

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

void CGoodsManagerDialog::OnInitComboBox()
{
	_RecordsetPtr    m_pRecordsetP;
	_RecordsetPtr    m_pRecordsetG;
	HRESULT          hrP;
	HRESULT          hrG;
	try
	{
		hrG = m_pRecordsetG.CreateInstance (__uuidof(Recordset));
		hrP = m_pRecordsetP.CreateInstance (__uuidof(Recordset));
		if(FAILED(hrG) || FAILED(hrP))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}
		hrP = m_pRecordsetP->Open ("select * from PowTable",
									m_pConnection.GetInterfacePtr(),
									adOpenDynamic,
									adLockOptimistic,
									adCmdText);
		hrG = m_pRecordsetG->Open ("select * from GoodsTable",
			                        m_pConnection.GetInterfacePtr(),
									adOpenDynamic,
									adLockOptimistic,
									adCmdText);
		
		if(SUCCEEDED(hrP) && SUCCEEDED(hrG))
		{
			_variant_t    var;
			CString       strValue;

			m_GoodsManagerOperate.InsertString (-1, _T(""));

			while(!m_pRecordsetP->adoEOF)
			{
				var = m_pRecordsetP->GetCollect ("RealName");
				strValue = (LPCSTR)_bstr_t(var);

				m_GoodsManagerOperate.InsertString (-1, strValue);

				m_pRecordsetP->MoveNext ();
			}

			while(!m_pRecordsetG->adoEOF)
			{
				var = m_pRecordsetG->GetCollect ("GoodsName");
				strValue = (LPCSTR)_bstr_t(var);

				m_GoodsManGoodsName.InsertString (-1,strValue);
				
				m_pRecordsetG->MoveNext ();
			}

			m_pRecordsetG->Close ();
			m_pRecordsetP->Close ();
			m_pRecordsetG = NULL;
			m_pRecordsetP = NULL;
		}
	}
	catch(_com_error &e)
	{
		AfxMessageBox (e.ErrorMessage());
		return;
	}
}

void CGoodsManagerDialog::OnInitGoodsManList()
{
	CTime timeFrom , timeTo;
	m_GoodsManagerTimeFrom.GetTime (timeFrom);
	m_GoodsManagerTimeTo.GetTime (timeTo);

	if(timeFrom.GetMonth () > timeTo.GetMonth ())
		return;

	if(timeFrom.GetMonth () == timeTo.GetMonth ())
		if(timeFrom.GetDay () > timeTo.GetDay ())
			return;

	CString strDataFrom, strDataTo, OperatorName;
	m_GoodsManagerTimeFrom.GetWindowText (strDataFrom);
	m_GoodsManagerTimeTo.GetWindowText (strDataTo);
	m_GoodsManagerOperate.GetWindowText (OperatorName);

	HRESULT         hrGM;
	_RecordsetPtr   m_pRecordsetGM;

	try
	{
		hrGM = m_pRecordsetGM.CreateInstance (__uuidof(Recordset));
		if(FAILED(hrGM))
		{
			AfxMessageBox (_T("创建实例失败!"));
			return;
		}

		CString strSQL;
		if(OperatorName != _T("")) 
		    strSQL.Format ("select * from GoodsManagerTable where ActionData >= '%s' and ActionData <='%s'\
					       and OperatorName = '%s'", strDataFrom, strDataTo , OperatorName);
		else
			strSQL.Format ("select * from GoodsManagerTable where ActionData >= '%s' and ActionData <='%s'"
			               , strDataFrom, strDataTo);

		hrGM = m_pRecordsetGM->Open (_bstr_t(strSQL),
			                        m_pConnection.GetInterfacePtr(),
									adOpenDynamic,
									adLockOptimistic,
									adCmdText);
        
		m_GoodsManagerList.DeleteAllItems();

		if(SUCCEEDED(hrGM))
		{
			_variant_t var;
			CString    strValue;
			m_IndexList = 0;

			while(!m_pRecordsetGM->adoEOF)
			{
				var = m_pRecordsetGM->GetCollect ("ActionData");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsManagerList.InsertItem (m_IndexList, strValue);

				var = m_pRecordsetGM->GetCollect ("ActimeTime");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsManagerList.SetItemText (m_IndexList, 1, strValue);

				var = m_pRecordsetGM->GetCollect ("OperatorName");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsManagerList.SetItemText (m_IndexList, 2, strValue);

				var = m_pRecordsetGM->GetCollect ("Type");
                strValue = (LPCSTR)_bstr_t(var);
				m_GoodsManagerList.SetItemText (m_IndexList, 3, strValue);

				var = m_pRecordsetGM->GetCollect ("GoodsName");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsManagerList.SetItemText (m_IndexList, 4, strValue);

				var = m_pRecordsetGM->GetCollect ("OldStore");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsManagerList.SetItemText (m_IndexList, 5, strValue);

				var = m_pRecordsetGM->GetCollect ("BuyPrice");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsManagerList.SetItemText (m_IndexList, 6, strValue);

				var = m_pRecordsetGM->GetCollect ("TotalNum");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsManagerList.SetItemText (m_IndexList, 7, strValue);;

				var = m_pRecordsetGM->GetCollect ("TotalPrice");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsManagerList.SetItemText (m_IndexList, 8, strValue);

				var = m_pRecordsetGM->GetCollect ("Remark");
                strValue = (LPCSTR)_bstr_t(var);
                m_GoodsManagerList.SetItemText (m_IndexList, 9, strValue);

				m_IndexList++;
				m_pRecordsetGM->MoveNext ();
			}

			m_pRecordsetGM->Close ();
			m_pRecordsetGM = NULL;
		}                         
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage ());
		return;
	}
}

void CGoodsManagerDialog::OnCbnSelchangeComboGoodsmanoperator()
{
	OnInitGoodsManList();
}

void CGoodsManagerDialog::OnDtnDatetimechangeDatetimepickerGoodsmanagerfrom(NMHDR *pNMHDR, LRESULT *pResult)
{

⌨️ 快捷键说明

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