📄 merchandisesetdialog.cpp
字号:
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 + -