📄 productinfo.cpp
字号:
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
CString str;
m_pRecordset->PutCollect("productName",_variant_t(m_productName));//产品名称
m_pRecordset->PutCollect("standard",_variant_t(m_standard));//规格
m_pRecordset->PutCollect("model",_variant_t(m_model));//型号
str.Format("%f",m_price); //单价
m_pRecordset->PutCollect("price",_variant_t(str));
str.Format("%d",m_qualityGuarantee);//保质期
m_pRecordset->PutCollect("qualityGuarantee",_variant_t(str));
str.Format("%d",m_maintance);//维护期
m_pRecordset->PutCollect("maintance",_variant_t(str));
m_pRecordset->PutCollect("unit",_variant_t(m_unit));//计量单位
m_pRecordset->PutCollect("colorType",_variant_t(m_colorType));//颜色类别
m_pRecordset->PutCollect("qualityLevel",_variant_t(m_qualityLevel));//质量等级
str.Format("%d",m_finishRate);//成品率
m_pRecordset->PutCollect("finishRate",_variant_t(str));
m_pRecordset->PutCollect("storeHouse",_variant_t(m_storeHouse));//存放仓库
str.Format("%d",m_taxRate);//税率
m_pRecordset->PutCollect("taxRate",_variant_t(str));
str.Format("%d",m_numMax);//库存上限
m_pRecordset->PutCollect("numMax",_variant_t(str));
str.Format("%d",m_numMin);//库存下限
m_pRecordset->PutCollect("numMin",_variant_t(str));
m_pRecordset->PutCollect("remark",_variant_t(m_remark));//备注
m_pRecordset->Update();//更新数据库
AfxMessageBox("修改成功!");//提示信息
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建记录集失败!","错误");
}
}
Refresh();
//设定按钮的可用性
bt_add->EnableWindow(true);//添加按钮可用
bt_delete->EnableWindow(true);//删除按钮可用
bt_modify->EnableWindow(true);//修改按钮可用
bt_save->EnableWindow(false);//保存按钮不可用
//所有的编辑控件均不可用
tx_productID->EnableWindow(false);
tx_productName->EnableWindow(false);
tx_standard->EnableWindow(false);
tx_model->EnableWindow(false);
tx_price->EnableWindow(false);
tx_qualityGuarantee->EnableWindow(false);
tx_maintance->EnableWindow(false);
tx_unit->EnableWindow(false);
tx_colorType->EnableWindow(false);
tx_qualityLevel->EnableWindow(false);
tx_finishRate->EnableWindow(false);
tx_taxRate->EnableWindow(false);
tx_storeHouse->EnableWindow(false);
tx_remark->EnableWindow(false);
tx_numMax->EnableWindow(false);
tx_numMin->EnableWindow(false);
UpdateData(false);//将数据更新到对话框
}
BOOL CProductInfo::OnInitDialog()
{
CDialog::OnInitDialog();
//设置列表框控件的样式
DWORD style;
style=m_list.GetExStyle();
style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
m_list.SetExtendedStyle(style);
//为列表框控件添加列,并设定列标题
m_list.InsertColumn(0,"商品编号",LVCFMT_LEFT,100);
m_list.InsertColumn(1,"商品名称",LVCFMT_LEFT,100);
m_list.InsertColumn(2,"规格",LVCFMT_LEFT,100);
m_list.InsertColumn(3,"型号",LVCFMT_LEFT,100);
m_list.InsertColumn(4,"单价",LVCFMT_LEFT,100);
m_list.InsertColumn(5,"保质期",LVCFMT_LEFT,100);
m_list.InsertColumn(6,"维护期",LVCFMT_LEFT,100);
m_list.InsertColumn(7,"计量单位",LVCFMT_LEFT,100);
m_list.InsertColumn(8,"颜色类别",LVCFMT_LEFT,100);
m_list.InsertColumn(9,"质量等级",LVCFMT_LEFT,100);
m_list.InsertColumn(10,"成品率",LVCFMT_LEFT,100);
m_list.InsertColumn(11,"存放仓库",LVCFMT_LEFT,100);
m_list.InsertColumn(12,"税率",LVCFMT_LEFT,100);
m_list.InsertColumn(13,"库存上限",LVCFMT_LEFT,100);
m_list.InsertColumn(14,"库存下限",LVCFMT_LEFT,100);
m_list.InsertColumn(15,"备注",LVCFMT_LEFT,100);
_RecordsetPtr m_pListRecordset; //用于创建一个查询记录集
CString strSQL;
HRESULT hTRes;
//为存放仓库组合框添加可选项
strSQL="select * from storeHouse"; //构造查询语句
_RecordsetPtr m_pStoreHouseRecordset;
hTRes = m_pStoreHouseRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pStoreHouseRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
while(!(m_pStoreHouseRecordset->adoEOF))
{
m_storeHouseCombo.AddString(((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pStoreHouseRecordset->GetCollect("storeHouseName")));//插入组合框
m_pStoreHouseRecordset->MoveNext();//记录集指针向后移动
}
}
}
m_pStoreHouseRecordset->Close(); //关闭记录集
//将目前数据库中已经存在的产品信息添加到产品列表框中
strSQL="SELECT * FROM product";//构造查询语句
try
{
HRESULT hTRes;
hTRes = m_pListRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pListRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
if (!(m_pListRecordset->adoEOF))
{
int i=0;
while(!(m_pListRecordset->adoEOF))
{
m_list.InsertItem(i,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("productID")));//产品编号
m_list.SetItemText(i,1,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("productName"))); //产品名称
m_list.SetItemText(i,2,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("standard"))); //规格
m_list.SetItemText(i,3,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("model"))); //型号
m_list.SetItemText(i,4,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("price"))); //单价
m_list.SetItemText(i,5,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("qualityGuarantee")));//保质期
m_list.SetItemText(i,6,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("maintance"))); //维护期
m_list.SetItemText(i,7,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("unit"))); //计量单位
m_list.SetItemText(i,8,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("colorType"))); //颜色类别
m_list.SetItemText(i,9,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("qualityLevel")));//质量等级
m_list.SetItemText(i,10,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("finishRate")));//成品率
m_list.SetItemText(i,11,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("storeHouse")));//存放仓库
m_list.SetItemText(i,12,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("taxRate")));//税率
m_list.SetItemText(i,13,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("numMax"))); //库存上限
m_list.SetItemText(i,14,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("numMin"))); //库存下限
m_list.SetItemText(i,15,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("remark"))); //备注
if (!(m_pListRecordset->adoEOF))
{
m_pListRecordset->MoveNext(); //记录集指针向后移动
i++;
}
}
}
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建记录集失败!","错误");
}
flag=0;
//为对话框控件可用性控制变量赋值
tx_productID=GetDlgItem(IDC_productID);
tx_productName=GetDlgItem(IDC_productName);
tx_standard=GetDlgItem(IDC_standard);
tx_model=GetDlgItem(IDC_model);
tx_price=GetDlgItem(IDC_price);
tx_qualityGuarantee=GetDlgItem(IDC_qualityGuarantee);
tx_maintance=GetDlgItem(IDC_maintance);
tx_unit=GetDlgItem(IDC_unit);
tx_colorType=GetDlgItem(IDC_colorType);
tx_qualityLevel=GetDlgItem(IDC_qualityLevel);
tx_finishRate=GetDlgItem(IDC_finishRate);
tx_taxRate=GetDlgItem(IDC_taxRate);
tx_storeHouse=GetDlgItem(IDC_storeHouse);
tx_remark=GetDlgItem(IDC_remark);
tx_numMax=GetDlgItem(IDC_numMax);
tx_numMin=GetDlgItem(IDC_numMin);
bt_delete=GetDlgItem(IDC_delete);
bt_add=GetDlgItem(IDC_add);
bt_save=GetDlgItem(IDC_save);
bt_modify=GetDlgItem(IDC_modify);
//设定按钮的可用性
bt_save->EnableWindow(false);
bt_modify->EnableWindow(false);
bt_delete->EnableWindow(false);
//初始情况下,所有的编辑框不可用
tx_productID->EnableWindow(false);
tx_productName->EnableWindow(false);
tx_standard->EnableWindow(false);
tx_model->EnableWindow(false);
tx_price->EnableWindow(false);
tx_qualityGuarantee->EnableWindow(false);
tx_maintance->EnableWindow(false);
tx_unit->EnableWindow(false);
tx_colorType->EnableWindow(false);
tx_qualityLevel->EnableWindow(false);
tx_finishRate->EnableWindow(false);
tx_taxRate->EnableWindow(false);
tx_storeHouse->EnableWindow(false);
tx_remark->EnableWindow(false);
tx_numMax->EnableWindow(false);
tx_numMin->EnableWindow(false);
UpdateData(false); //更新对话框数据
return TRUE;
}
void CProductInfo::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(true);
POSITION pos = m_list.GetFirstSelectedItemPosition();//获取单击的位置
if(pos)
{
int nFirstSelItem = m_list.GetNextSelectedItem(pos);//获取单击的条目
m_productID=m_list.GetItemText(nFirstSelItem,0);//产品编号
m_productName=m_list.GetItemText(nFirstSelItem,1);//产品名称
m_standard=m_list.GetItemText(nFirstSelItem,2);//规格
m_model=m_list.GetItemText(nFirstSelItem,3);//型号
m_price=atof(m_list.GetItemText(nFirstSelItem,4));//单价
m_qualityGuarantee=atoi(m_list.GetItemText(nFirstSelItem,5));//保质期
m_maintance=atoi(m_list.GetItemText(nFirstSelItem,6));//维护期
m_unit=m_list.GetItemText(nFirstSelItem,7);//计量单位
m_colorType=m_list.GetItemText(nFirstSelItem,8);//颜色类别
m_qualityLevel=m_list.GetItemText(nFirstSelItem,9);//质量等级
m_finishRate=atoi(m_list.GetItemText(nFirstSelItem,10));//成品率
m_storeHouse=m_list.GetItemText(nFirstSelItem,11);//存放仓库
m_taxRate=atoi(m_list.GetItemText(nFirstSelItem,12));//税率
m_numMax=atoi(m_list.GetItemText(nFirstSelItem,13));//库存上限
m_numMin=atoi(m_list.GetItemText(nFirstSelItem,14));//库存下限
m_remark=m_list.GetItemText(nFirstSelItem,13);//备注
}
bt_modify->EnableWindow(true); //修改按钮可用
bt_delete->EnableWindow(true); //删除按钮可用
UpdateData(false); //将数据更新到对话框
*pResult = 0;
}
void CProductInfo::Refresh()
{
_RecordsetPtr m_pListRecordset; //用于创建一个查询记录集
CString strSQL;
HRESULT hTRes;
m_list.DeleteAllItems();
//将目前数据库中已经存在的产品信息添加到产品列表框中
strSQL="SELECT * FROM product";//构造查询语句
try
{
HRESULT hTRes;
hTRes = m_pListRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pListRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CStoreApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
if (!(m_pListRecordset->adoEOF))
{
int i=0;
while(!(m_pListRecordset->adoEOF))
{
m_list.InsertItem(i,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("productID")));//产品编号
m_list.SetItemText(i,1,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("productName"))); //产品名称
m_list.SetItemText(i,2,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("standard"))); //规格
m_list.SetItemText(i,3,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("model"))); //型号
m_list.SetItemText(i,4,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("price"))); //单价
m_list.SetItemText(i,5,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("qualityGuarantee")));//保质期
m_list.SetItemText(i,6,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("maintance"))); //维护期
m_list.SetItemText(i,7,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("unit"))); //计量单位
m_list.SetItemText(i,8,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("colorType"))); //颜色类别
m_list.SetItemText(i,9,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("qualityLevel")));//质量等级
m_list.SetItemText(i,10,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("finishRate")));//成品率
m_list.SetItemText(i,11,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("storeHouse")));//存放仓库
m_list.SetItemText(i,12,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("taxRate")));//税率
m_list.SetItemText(i,13,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("numMax"))); //库存上限
m_list.SetItemText(i,14,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("numMin"))); //库存下限
m_list.SetItemText(i,15,((CStoreApp*)AfxGetApp())->GetStringFromVariant(m_pListRecordset->GetCollect("remark"))); //备注
if (!(m_pListRecordset->adoEOF))
{
m_pListRecordset->MoveNext(); //记录集指针向后移动
i++;
}
}
}
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建记录集失败!","错误");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -