设为首页 加入收藏

TOP

3.7.5 入库明细界面的实现(2)
2013-10-07 14:51:48 来源: 作者: 【 】 浏览:58
Tags:3.7.5 入库 明细 面的 实现

3.7.5  入库明细界面的实现(2)

第31~53行代码实现了两个复选框都选中时用户所设定的查询条件,构造对应的SQL语句。

第54~61行代码实现了选中其中一个复选框时用户所设定的查询条件,执行对应的SQL语句。

上面的代码实现了根据用户选中复选框的不同情况,所设定的查询条件,构造不同的SQL语句,并执行查询。下面实现获取查询结果数据并插入到列表控件中。相关代码如下:

  1. 62                                                      //从记录集中取数据  
  2. 63      int row=0;  
  3. 64      while(!m_record->_EOF)  
  4. 65      {  
  5. 66          CString temp;  
  6. 67           temp=(LPCSTR)(_bstr_t)m_record->GetFields()->GetItem("merchandiseid") ->Value;  
  7. 68          m_list.InsertItem(row,temp);                    //插入merchandiseid  
  8.  
  9. 69          sqlstr.Format("select * from tb_merchangiseinfo where id='%s'",temp);  
  10. 70          GetMercRecord(sqlstr);  
  11. 71          temp=(LPCSTR)(_bstr_t)m_mercRecord->GetFields()->GetItem("mercname")   
  12.             ->Value;  
  13. 72          m_list.SetItemText(row,1,temp);                     //插入mercname  
  14. 73          temp=(LPCSTR)(_bstr_t)m_mercRecord->GetFields()->GetItem("inprice")->Value;  
  15. 74          m_list.SetItemText(row,2,temp);                     //插入inprice  
  16. 75          temp=(LPCSTR)(_bstr_t)m_record->GetFields()->GetItem("numbers")->Value;  
  17. 76          m_list.SetItemText(row,3,temp);                     //插入numbers  
  18. 77          temp=(LPCSTR)(_bstr_t)m_record->GetFields()->GetItem("paymoney")->Value;  
  19. 78          m_list.SetItemText(row,4,temp);                     //插入paymoney  
  20. 79          temp=(LPCSTR)(_bstr_t)m_mercRecord->GetFields()->GetItem("discount")   
  21.             ->Value;  
  22. 80          m_list.SetItemText(row,5,temp);                     //插入discount  
  23. 81          temp=(LPCSTR)(_bstr_t)m_record->GetFields()->GetItem("operid")->Value;  
  24. 82          m_list.SetItemText(row,6,temp);                     //插入operid  
  25. 83          temp=(LPCSTR)(_bstr_t)m_record->GetFields()->GetItem("storid")->Value;  
  26. 84          m_list.SetItemText(row,7,temp);                     //插入storid  
  27. 85          m_record->MoveNext();                               //记录后移  
  28. 86          row++;  
  29. 87      }  
  30. 88      CString str;  
  31. 89      str.Format("找到了%d条记录",row);  
  32. 90      MessageBox(str);  
  33. 91  }  

第64~90行代码主要执行SQL语句后把查询结果显示在列表控件中。

上面的代码中实现了根据字段取对应数据的操作。读者要注意关键函数GetFields()和GetItem()的使用方法。GetItem()中参数是待获取数据对应的字段名称。

该界面还实现了商品的详细信息显示,本系统把该功能封装成GetMerc()函数。给列表控件添加LVN_ITEMCHANGED消息,响应鼠标单击列表的动作,在该消息函数中执行函数GetMerc()。该函数具体实现代码如下:

代码位置:见光盘中本章源代码的CINDETAIL类。

  1. 1  CString CINDETAIL::GetMerc(CString sqlstr)  
  2. 2  {  
  3. 3   if( m_mercRecord!=NULL)  
  4. 4   {  
  5. 5       m_mercRecord=NULL;  
  6. 6       m_mercRecord.CreateInstance(__uuidof(Recordset));   //记录集初始化  
  7. 7   }  
  8. 8   for (int i=0;i < m_list2ctrl.GetCount();i++)            //删除列表控件列标题  
  9. 9   {  
  10. 10          m_list2ctrl.DeleteString(i);  
  11. 11      }  
  12. 12      m_list2ctrl.ResetContent();  
  13. 13      UpdateData(false);                                  //保存数据  
  14. 14      m_mercRecord->Open((_variant_t )sqlstr,theApp.m_connection.GetInterfacePtr(),  
  15. 15                          adOpenDynamic,adLockOptimistic,adCmdText);                                                                          //打开记录集  
  16. 16      CString str[10],returnstr;                          //字符串初始化  
  17. 17      str[0]="商品编号:";  
  18. 18      str[1]="商品名称:";  
  19. 19      str[2]="型号规格:";  
  20. 20      str[3]="单位: ";  
  21. 21      str[4]="进价:";  
  22. 22      str[5]="供应商:";  
  23. 23      str[6]="折扣:";  
  24. 24      str[7]="入库编号:";  
  25. 25      str[8]="入库类型:";  
  26. 26      str[9]="备注:";  
  27. 27      CString temp;  
  28. 28      int rows=0;  
  29. 29      int a=GetRecordCount(m_mercRecord);                     //获取记录个数  
  30. 30      for(int j=0;j<a;j++)  
  31. 31      {  
  32. 32          for(int i=0;i<10;i++)                               //获取记录数据  
  33. 33          {  
  34. 34              temp=(LPCSTR)(_bstr_t)m_mercRecord->Fields->GetItem((long)i)->Value;  
  35. 35              returnstr+=str[i]+temp+"\r\n   ";  
  36. 36          }  
  37. 37          m_list2ctrl.InsertString(rows,returnstr);           //插入到组合框中  
  38. 38          returnstr="";  
  39. 39          rows++;  
  40. 40          m_mercRecord->MoveNext();                           //记录后移  
  41. 41      }  
  42. 42      UpdateData(false);                                  //显示数据  
  43. 43      return returnstr;  
  44. 44  }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.7.5 入库明细界面的实现(3) 下一篇3.7.5 入库明细界面的实现(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: