3.6.4 编号信息的动态获取
上一节主要完成了界面的设计,由于功能代码均没添加,所以单击界面上的控件都不会起作用,本节将介绍如何实现前台销售功能。
首先,在对话框上的空白区域双击,给该前台销售对话框建立一个类CForeMange,通过类向导给各个编辑框、List控件添加变量,给7个按钮添加单击消息函数,给商品编号对应的编辑框添加EN_KILLFOCUS消息,动态获取编号商品信息。在CForeMange类中编写代码实现模块功能。这里将介绍编辑框数据输入时动态显示查找结果的方法,具体代码如下:
代码位置:见光盘中本章源代码的CForeMange类。
- 1 void CForeMange::OnKillfocusMercid()
- 2 {
- 3 CString sqlstr;
- 4 UpdateData(); //保存用户输入数据
- 5 if(m_id=="")return;
- 6 sqlstr.Format("select * from tb_merchangiseinfo where id='%s'",m_id); //构造打开表SQL语句
- 7 if(GetRecord(sqlstr)==0) //如果没有记录
- 8 {
- 9 MessageBox("没有该商品");
- 10 GetDlgItem(IDC_MERCID)->SetFocus(); //设置编辑框焦点
- 11 return;
- 12 }
- 13 }
注意:此处只是实现了编号输入时商品有无的动态判断,判断的依据就是用编号构造SQL语句查询,若返回的结果为0,则没有该商品信息。其中第7行所用到的函数GetRecord()具体代码和前面第3.5.4节一样,在此不再介绍。要实现编号对应的商品信息,还需要添加PreTranslateMessage()消息,对键盘的各种消息进行处理。