3.6.6 商品详细信息查询处理(1)
这里介绍查询商品详细信息的方法,此功能是为方便收银员和顾客及时了解当前商品的库存、规格大小、折扣等信息而增加的。具体代码如下:
代码位置:见光盘中本章源代码的CForeMange类。
- 1 void CForeMange::OnButton7()
- 2 {
- 3 CString str;
- 4 if(GetDlgItemText(IDC_BUTTON7,str),str=="查询商品")
- 5 {
- 6 SetDlgItemText(IDC_BUTTON7,"退出查询"); //修改按钮标题
- 7 }
- 8 else
- 9 {
- 10 SetDlgItemText(IDC_BUTTON7,"查询商品"); //修改按钮标题
- 11 }
- 12
- 13 if(rectlarge.IsRectNull()) //矩形所有坐标都是0
- 14 {
- 15 CRect rectseparator; //定义区域
- 16 GetDlgItem(IDC_SEPARATOR)->GetWindowRect(&rectseparator); //获取控件窗口大小
- 17 rectsmall.left=rectlarge.left;
- 18 rectsmall.top=rectlarge.top;
- 19 rectsmall.right=rectseparator.right;
- 20 rectsmall.bottom=rectseparator.bottom;
- 21 }
- 22 if(str=="退出查询")
- 23 {
- 24 SetWindowPos(NULL,0,0,rectsmall.Width(),rectsmall.Height(),SWP_NOMOVE|SWP_
- NOZORDER);
- 25 //设置窗口大小
- 26 }
- 27 else
- 28 {
- 29 SetWindowPos(NULL,0,0,rectlarge.Width(),rectlarge.Height(),SWP_NOMOVE|SWP_
- NOZORDER);
- 30 }
- 31 CString sqlstr;
- 32 UpdateData();
- 33 sqlstr.Format("select id,mercname,number,outprice,discount,spec //构造查询语句
- 34 from tb_merchangiseinfo where id='%s'",m_id);
- 35 SetList2Value(sqlstr); //执行查询语句,输出
- 36 }
第4~11行代码实现了按钮标题的动态更改,在输入商品信息后,按下回车键可实现购买的商品价格统计,输入实付金额后按下回车键可直接给出找零。
第13~30行代码实现了窗口的动态扩展,在需要显示查询的详细信息时展开,退出时自动收缩。关键函数是SetWindowPos(),调用这个成员函数可以改变子窗口、显示窗口和顶层窗口的大小、位置和Z轴次序。具体请参考MSDN。
第35行代码实现了商品详细信息的输出,通过List控件显示查询结果。