设为首页 加入收藏

TOP

7.6.5 整条线路维护的实现(1)
2013-10-07 14:53:10 来源: 作者: 【 】 浏览:59
Tags:7.6.5 线路 维护 实现

7.6.5  整条线路维护的实现(1)

整条线路的维护包括添加一条线路和删除一条线路,先介绍添加一条线路的实现。添加一个对话框资源并将ID改为IDD_ADD_ROADWAY,添加如图7-25所示的控件。

 
图7-25  添加线路界面

双击对话框界面为对话框资源创建一个新类AddOneRoadway,通过类向导为控件关联相关的变量。给【确定】按钮添加消息响应函数,该函数实现线路的添加操作。函数中代码如下:

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

  1. 1  void AddOneRoadway::OnOk()  
  2. 2  {  
  3. 3   UpdateData(true);                                           //数据的更新  
  4. 4   if(!firstflag)                                          //是否第一次添加  
  5. 5   {  
  6. 6       if(m_roadway!=""&&m_station!=""&&m_startstation!=""&&  
  7. 7           m_endstation!=""&&m_sendtime!=""&&m_stoptime!="")   //条件的判断  
  8. 8       {  
  9. 9           stationflag=!stationflag;  
  10. 10              CBusSet m_busset;                                   //定义记录集对象  
  11. 11              if(!m_busset.IsOpen())                          //打开记录集  
  12. 12                  m_busset.Open();  
  13. 13              m_busset.AddNew();                              //添加新的记录  
  14. 14              m_busset.m_ID_BUS=m_roadway;                        //各字段赋值  
  15. 15              m_busset.m_BEGIN=m_startstation;  
  16. 16              m_busset.m_END=m_endstation;  
  17. 17              m_busset.m_AMTIME=m_sendtime;  
  18. 18              m_busset.m_PMTIME=m_stoptime;  
  19. 19              m_busset.Update();                              //记录的更新  
  20. 20              m_busset.Requery();  
  21. 21              m_busset.Close();                                   //关闭记录集  
  22. 22              CStationSet m_StationSet;                           //定义记录集对象  
  23. 23              if(!m_StationSet.IsOpen())  
  24. 24                  m_StationSet.Open();  
  25. 25              m_StationSet.AddNew();                          //添加新的记录  
  26. 26              m_StationSet.m_ID=m_roadway;                        //记录的赋值  
  27. 27              m_StationSet.m_STATION=m_station;  
  28. 28              m_StationSet.Update();  
  29. 29              m_StationSet.Requery();  
  30. 30              m_StationSet.Close();  
  31. 31              m_station="";  
  32. 32              UpdateData(false);                              //更新数据  
  33. 33              firstflag=true;  
  34. 34              CWnd *pwnd;  
  35. 35              pwnd=GetDlgItem(IDC_EDIT_ROADWAY);                  //获取控件的指针  
  36. 36              pwnd->EnableWindow(false);                          //禁用控件  
  37. 37              pwnd=GetDlgItem(IDC_EDIT_START);  
  38. 38              pwnd->EnableWindow(false);  
  39. 39              pwnd=GetDlgItem(IDC_EDIT_SEND);  
  40. 40              pwnd->EnableWindow(false);  
  41. 41              pwnd=GetDlgItem(IDC_EDIT_END);  
  42. 42              pwnd->EnableWindow(false);  
  43. 43              pwnd=GetDlgItem(IDC_EDIT_STOP);  
  44. 44              pwnd->EnableWindow(false);  
  45. 45              GetDlgItem(ID_OK)->SetFocus();  
  46. 46          }  
  47. 47          else  
  48. 48              MessageBox("信息不能为空!");                          //消息提示  
  49. 49      }  

第4~32行代码为新记录的添加。

第33~45行代码实现了部分控件的禁用。

上述代码中通过调用函数AddNew()将用户输入的数据添加到数据库中,这样添加的线路的信息只有起始站和终点站两个站点,这时禁用除了站点外的其他编辑框。上述代码实现了第一次添加线路时的操作。下面代码实现了当线路数据表中有数据时的对应操作,代码如下:

  1. 50      else  
  2. 51      {  
  3. 52          UpdateData(true);                                   //数据的更新  
  4. 53          CStationSet m_StationSet;                           //定义记录集  
  5. 54          if(!m_StationSet.IsOpen())                          //打开记录集  
  6. 55              m_StationSet.Open();  
  7. 56          m_StationSet.MoveLast();                            //移动到最后一条记录  
  8. 57          m_StationSet.AddNew();                          //添加新的记录  
  9. 58          m_StationSet.m_ID=m_roadway;  
  10. 59          m_StationSet.m_STATION=m_station;  
  11. 60          m_StationSet.Update();  
  12. 61          m_StationSet.Requery();  
  13. 62          m_StationSet.Close();                               //关闭记录集  
  14. 63          m_station="";  
  15. 64          UpdateData(false);  
  16. 65          GetDlgItem(IDC_EDIT_STATION)->SetFocus();           //设置焦点  
  17. 66          addroadflag=true;  
  18. 67      }  
  19. 68  }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇7.6.5 整条线路维护的实现(2) 下一篇7.6.3 管理员登录的实现

评论

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