3.8.4 库存界面的实现
上一节主要完成了库存界面的设计,给各控件分别添加消息函数及变量,编写功能代码,本节将重点介绍如何实现构造查询语句函数的封装。函数Justify()的具体实现代码如下:
代码位置:见光盘中本章源代码的CSTOCKMANAGE类。
- 1 CString CSTOCKMANAGE::Justify()
- 2 {
- 3 UpdateData();
- 4 CString sqlstr;
- 5 if((m_check1.GetCheck()==true)&&(m_check2.GetCheck()==true)) //复选框都选中
- 6 {
- 7 MessageBox("请不要同时选择!");
- 8 return "";
- 9 }
- 10 else if((m_check1.GetCheck()==false)&&(m_check2.GetCheck()==true)) //其中一个复选框被选中
- 11
- 12 {
- 13 if(m_mercid=="")
- 14 {
- 15 MessageBox("请输入要查询的条件");
- 16 return "";
- 17 } //构造查询语句
- 18 sqlstr.Format("select a.mercid,b.mercname,b.inprice,a.downlimit,a.uplimit, a.nowvalues
- 19 from tb_storemanage a inner join tb_merchangiseinfo\
- 20 b on a.mercid=b.id where a.mercid='%s'",m_mercid);
- 21 }
- 22 else if((m_check1.GetCheck()==true)&&(m_check2.GetCheck()==false)) //另一个复选框被选中
- 23 {
- 24 sqlstr.Format("select a.mercid,b.mercname,b.inprice,a.downlimit,a.uplimit, a.nowvalues
- 25 from tb_storemanage a inner join tb_merchangiseinfo\
- 26 b on a.mercid=b.id where a.downlimit>=%.2f and a.uplimit<=%.2f",m_min, m_max);
- 27 }
- 28 else
- 29 {
- 30 MessageBox("请输入要查询的条件");
- 31 return "";
- 32 }
- 33 return sqlstr;
- 34 }
第1行代码可以看出该函数的返回值是字符串类型,返回的就是构造后的SQL语句。
第5、10、22、28行代码主要是判断用户查询选择的条件。具体是根据函数GetCheck()返回的值判断是否选中。
第18~20行代码实现根据商品名称查询库存信息的SQL语句构造。
第24~26行代码实现根据库存上、下限查询库存信息的SQL语句构造。
第33行代码返回最终构造好的SQL语句。