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

📄 merchandisesetdialog.cpp

📁 VC+SQL SERVER 2000环境下开发的商品销售管理系统
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		return;
	}

	UpdateData (FALSE);
}

void CMerchandiseSetDialog::ModifyMer()
{
	CString OldMerName, OldMerID;
	OldMerName = m_MerName;
	OldMerID  = m_MerID;

	UpdateData(TRUE);
	if(m_MerName == "")
	{
		MessageBox (_T("商品名称不能为空!"),_T("商品设置"), MB_ICONERROR |MB_OK);
		CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_MERNAME);
		pEdit->SetFocus();
		return;
	}

	if(m_MerUnit == "")
	{
		MessageBox (_T("商品单位不能为空!"),_T("商品设置"), MB_ICONERROR |MB_OK);
        CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_MERUNIT);
		pEdit->SetFocus();
		return;
	}

	if(m_MerPrice == "" || (float)_variant_t(m_MerPrice) < 0)
	{
		MessageBox (_T("商品价钱输入错误!"),_T("商品设置"), MB_ICONERROR |MB_OK);
        CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_MERPRICE);
		pEdit->SetFocus();
		return;
	}

	_RecordsetPtr     m_pRecordsetMer;
	HRESULT           hrMer;

	try
	{
		hrMer = m_pRecordsetMer.CreateInstance (__uuidof(Recordset));
		if(FAILED(hrMer))
		{
			AfxMessageBox (_T("创建实例失败!"));
			return;
		}
		
		hrMer = m_pRecordsetMer->Open (_bstr_t("select * from MerChandiseSetTable"),
			                           m_pConnection.GetInterfacePtr(),
							           adOpenDynamic,
							           adLockOptimistic,
							           adCmdText);
		if(SUCCEEDED(hrMer))
		{
			_variant_t       var;
			CString          strValue;

			if(!m_pRecordsetMer->adoEOF)
			{
			   if(OldMerName != m_MerName)
			   {
					while(!m_pRecordsetMer->adoEOF)
					{
						var = m_pRecordsetMer->GetCollect ("MerchandiseName");
						strValue = (LPCSTR)_bstr_t(var);
						if( m_MerName == strValue)
						{
							MessageBox (_T("商品名称重复!"),_T("商品设置"), MB_ICONERROR |MB_OK);
							m_MerName = OldMerName;
							UpdateData (FALSE);
							CButton *pButton = (CButton*)GetDlgItem (IDC_EDIT_MERNAME);
							pButton->SetFocus ();
							return;
						}
						m_pRecordsetMer->MoveNext ();
					}//while
					   m_pRecordsetMer->MoveFirst ();
			   }//if
           
			   	if( OldMerID  != m_MerID)
				{
					while(!m_pRecordsetMer->adoEOF)
					{
						var = m_pRecordsetMer->GetCollect ("MerID");
						strValue = (LPCSTR)_bstr_t(var);

						if(m_MerID == strValue && m_MerID != "")
						{
							MessageBox (_T("商品ID号重复!"),_T("商品设置"), MB_ICONERROR |MB_OK);
							m_MerID = OldMerID;
							UpdateData(FALSE);
							CEdit *pEdit = (CEdit*)GetDlgItem (IDC_EDIT_MERID);
							pEdit->SetFocus ();
							return;
						}
						m_pRecordsetMer->MoveNext ();
					}
				}//if
				m_pRecordsetMer->Close ();
				
				CString strSQL; 
				strSQL.Format ("select * from MerchandiseSetTable where MerchandiseName = '%s'", OldMerName);
				hrMer = m_pRecordsetMer->Open (_bstr_t(strSQL),
												m_pConnection.GetInterfacePtr(),
												adOpenDynamic,
												adLockOptimistic,
												adCmdText);
				
				m_pRecordsetMer->PutCollect ("MerchandiseName", _variant_t(m_MerName));
				m_ListOfMer.SetItemText (m_InOfMerList,0, m_MerName);
	            
				m_pRecordsetMer->PutCollect ("MerID" , _variant_t(m_MerID));
				
				m_pRecordsetMer->PutCollect ("Units", _variant_t(m_MerUnit));
				m_ListOfMer.SetItemText (m_InOfMerList, 1, m_MerUnit);

				m_pRecordsetMer->PutCollect ("SalePrice", _variant_t(m_MerPrice));
				m_ListOfMer.SetItemText (m_InOfMerList, 2, m_MerPrice);
				
				m_pRecordsetMer->PutCollect ("LimitSaleNum", _variant_t(m_MerLimitNum));
				m_ListOfMer.SetItemText (m_InOfMerList, 3,m_MerLimitNum);
				
				m_pRecordsetMer->PutCollect ("Impower", _variant_t(m_MerPower));
				if(m_MerPower)
					m_ListOfMer.SetItemText (m_InOfMerList, 5, _T("需要"));
				else
					m_ListOfMer.SetItemText (m_InOfMerList, 5, _T("不需"));      
				
				m_pRecordsetMer->PutCollect ("FlageToSale", _variant_t(m_MerCanSale));
				if(m_MerCanSale)
					m_ListOfMer.SetItemText (m_InOfMerList, 6, _T("可售"));
				else
					m_ListOfMer.SetItemText (m_InOfMerList, 6, _T("禁售"));

				m_pRecordsetMer->Update ();
				m_pRecordsetMer->Close ();
                m_pRecordsetMer = NULL;

				m_Succeed = TRUE;
			}//if
		}//if
	}
	catch(_com_error &e)
	{
		AfxMessageBox (e.ErrorMessage());
		return;
	}
}

void CMerchandiseSetDialog::OnBnClickedButtonMerDel()
{
	int sel = m_ListOfMer.GetSelectionMark ();
	if(sel == LB_ERR)
	{
		MessageBox(_T("没有选择商品名称,请先选择商品组,然后双击所选商品组!"), 
			  _T("商品设置"), MB_ICONERROR | MB_OK);
		return;
	}
	m_MerName = m_ListOfMer.GetItemText (sel, 0);

	CString string;
	string.Format (_T("要删除商品%s吗?"), m_MerName);
    
	if(MessageBox (string, _T("商品设置"), MB_ICONEXCLAMATION | MB_OKCANCEL) == IDCANCEL)
		return;
	m_ListOfMer.DeleteItem (sel);

	HRESULT         hrMer;
	_RecordsetPtr   m_pRecordsetMer;

	try
	{
		hrMer = m_pRecordsetMer.CreateInstance(__uuidof(Recordset));
		if(FAILED(hrMer))
		{
			AfxMessageBox(_T("不能创建实例!"));
			return;
		}
		CString strSQL;
		strSQL.Format ("select * from MerchandiseSetTable where MerchandiseName = '%s'",m_MerName);

		hrMer = m_pRecordsetMer->Open (_bstr_t(strSQL),
			                            m_pConnection.GetInterfacePtr(),
							           adOpenDynamic,
							           adLockOptimistic,
							           adCmdText); 
		if(SUCCEEDED(hrMer))
		{
			_variant_t    RecordsAffected;
			m_pConnection->BeginTrans ();
			strSQL.Format ("delete from MerchandiseSetTable where MerchandiseName = '%s'",m_MerName);
			m_pConnection->Execute (_bstr_t(strSQL), &RecordsAffected, adCmdText);
			m_pConnection->CommitTrans();

			m_pRecordsetMer->Close ();
			m_pRecordsetMer = NULL;
		    MessageBox (_T("删除成功!"), _T("商品设置"), MB_ICONASTERISK | MB_OK);
		}

	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

void CMerchandiseSetDialog::OnEnChangeEditMerNameofname()
{
	// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
	// 发送该通知,除非重写 CDialog::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
	UpdateData (TRUE);
	if(m_MerNameofName.GetLength())
	{
        HRESULT        hrMer;
		_RecordsetPtr  m_pRecordsetMer;

		try
		{
			hrMer = m_pRecordsetMer.CreateInstance (__uuidof(Recordset));
			if(FAILED(hrMer))
			{
				AfxMessageBox(_T("不能创建实例"));
				return;
			}

			CString strSQL = "select * from MerchandiseSetTable where MerchandiseName like";
			strSQL += " '%";
			strSQL +=m_MerNameofName;
			strSQL += "%'";

			hrMer = m_pRecordsetMer->Open (_bstr_t(strSQL),
			                               m_pConnection.GetInterfacePtr(),
							               adOpenDynamic,
							               adLockOptimistic,
							               adCmdText);
			int         index = 0;
			CString     strValue;
			_variant_t  var;

			m_ListOfMer.DeleteAllItems ();

			while(!m_pRecordsetMer->adoEOF)
			{
				var = m_pRecordsetMer->GetCollect ("MerchandiseName");
				strValue = (LPCSTR)_bstr_t(var);
				m_ListOfMer.InsertItem (index, strValue);

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

				var = m_pRecordsetMer->GetCollect ("SalePrice");
				strValue = (LPCSTR)_bstr_t(var);
				m_ListOfMer.SetItemText (index, 2, strValue);

				var = m_pRecordsetMer->GetCollect ("LimitSaleNum");
				strValue = (LPCSTR)_bstr_t(var);
				m_ListOfMer.SetItemText (index, 3, strValue);

				var = m_pRecordsetMer->GetCollect ("SaledNum");
				strValue = (LPCSTR)_bstr_t(var);
				m_ListOfMer.SetItemText (index, 4, strValue);
				
				var = m_pRecordsetMer->GetCollect ("Impower");
				int flag = (int)_variant_t(var);
				if(flag)
					m_ListOfMer.SetItemText (index, 5, _T("需要"));
				else
					m_ListOfMer.SetItemText (index, 5, _T("不需")); 
				
				var = m_pRecordsetMer->GetCollect ("FlageToSale");
				flag = (int)_variant_t(var);
				if(flag)
					m_ListOfMer.SetItemText (index, 6, _T("可售"));
				else
					m_ListOfMer.SetItemText (index, 6, _T("禁售"));

				m_pRecordsetMer->MoveNext ();
			}//while
		}//try
		catch(_com_error &e)
		{
			AfxMessageBox (e.ErrorMessage());
			return;
		}
	}
	else
		m_ListOfMer.DeleteAllItems ();
}

void CMerchandiseSetDialog::MerSetGoodModuleSet()
{
	CButton *pButton = (CButton*)GetDlgItem (IDC_BUTTON_MERADD);
	pButton->EnableWindow (FALSE);

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

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

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

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

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

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

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

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

void CMerchandiseSetDialog:: MerSetGoodModuleClear()
{
    CButton *pButton = (CButton*)GetDlgItem (IDC_BUTTON_MERADD);
	pButton->EnableWindow (TRUE);

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

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

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

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

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

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

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

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

}

void CMerchandiseSetDialog::OnBnClickedButtonAddgoods()
{
	int sel = m_ListOfMer.GetSelectionMark ();
	if(sel == LB_ERR)
	{
		MessageBox(_T("没有选择商品名称,请先选择商品组,然后双击所选商品组!"), 
			  _T("商品设置"), MB_ICONERROR | MB_OK);
		return;
	}
	MerSel = sel;

    CString MerName;
	MerName = m_ListOfMer.GetItemText (sel, 0);
	m_MerName = MerName;
	
	MerSetGoodModuleSet();

	CButton *pButton = (CButton*)GetDlgItem (IDC_BUTTON_DELGOODS);
	pButton->EnableWindow (FALSE);
	
	m_AddGoods = TRUE;

	if(m_ListOfGoods.GetItemCount () >0)
		m_ListOfGoods.DeleteAllItems ();
	InitGoodsList (MerName, sel);

}

void CMerchandiseSetDialog::AddGoodsOfMer(CString MerName)
{
	UpdateData (TRUE);
	CString        GoodsName, strValue; 
	CEdit *pEdit = (CEdit*) GetDlgItem(IDC_COMBO_GOODSNAME);
	pEdit->GetWindowText (GoodsName);
	if(GoodsName == "")
	{
		MessageBox (_T("货品名不能为空!"), _T("商品设置"), MB_ICONHAND | MB_OK);
		pEdit->SetFocus ();
		return;
	}

	if(m_MerGoodsNum == "" )
	{
		MessageBox (_T("货品数量不能为空!"), _T("商品设置"),MB_ICONHAND | MB_OK);
		m_GoodsUnit = "";
		UpdateData(FALSE);
		return;
	}

	if(m_BuyPrice == "")
	{
		MessageBox (_T("货品价钱不能为空!"), _T("商品设置"),MB_ICONHAND | MB_OK);
		return;
	}

	if(m_SalePrice == "")
	{
		MessageBox (_T("货品预定售价不能为空!"), _T("商品设置"),MB_ICONHAND | MB_OK);
		return;
	}

	if( m_GoodsUnit == "")
	{
		MessageBox (_T("货品预定单位不能为空!"), _T("商品设置"),MB_ICONHAND | MB_OK);
		return;
	}
 
	_RecordsetPtr        m_pRecordsetMerG;
	_RecordsetPtr        m_pRecordsetG;
	HRESULT              hrMerG;
	HRESULT              hrG;
	try
	{
		hrMerG = m_pRecordsetMerG.CreateInstance (__uuidof(Recordset));
		hrG = m_pRecordsetG.CreateInstance (__uuidof(Recordset));

		if(FAILED(hrMerG) || FAILED(hrG))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}
		CString     strSQL, MerName;
		MerName = m_ListOfMer.GetItemText (MerSel, 0);
		strSQL.Format ("select * from MerGroupbyGoodsTable where MerchandiseName = '%s'\
					    and GoodsName = '%s'", MerName , GoodsName);
		hrMerG = m_pRecordsetMerG->Open (_bstr_t(strSQL),
                                       m_pConnection.GetInterfacePtr(),
							           adOpenDynamic,
							           adLockOptimistic,
							           adCmdText);

		if(SUCCEEDED(hrMerG))
		{
			_variant_t     var;
            CString strValue;

⌨️ 快捷键说明

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