设为首页 加入收藏

TOP

7.6.4 单个站点维护的实现(1)
2013-10-07 14:53:01 来源: 作者: 【 】 浏览:62
Tags:7.6.4 单个 站点 维护 实现

7.6.4  单个站点维护的实现(1)

单个站点的维护包括删除单个站点和修改单个站点的信息。下面先介绍单个站点删除的实现。添加一个对话框资源,将ID改为IDD_DELSINGLESTATION,添加如图7-23所示的控件。

 
图7-23  【删除单个站点】界面

在该对话框空白区域双击,进入添加类对话框。为对话框资源创建一个新类DelSingleStation,通过类向导为控件关联相关的变量,并给对话框添加WM_INITDIALOG初始化消息。该消息函数中的代码如下:

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

  1. 1  BOOL DelSingleStation::OnInitDialog()  
  2. 2  {  
  3. 3   CDialog::OnInitDialog();  
  4. 4   int i=0;                                                //定义整型变量  
  5. 5   CString str;                                            //定义字符串变量  
  6. 6      CBusSet m_busset;                                    //定义记录集对象  
  7. 7   if(!m_busset.IsOpen())  
  8. 8       m_busset.Open();  
  9. 9   m_busset.MoveFirst();                                   //移动到首条记录  
  10. 10      while(!m_busset.IsEOF())                                //遍历记录集  
  11. 11      {  
  12. 12          m_roadway.InsertString(i++,m_busset.m_ID_BUS);      //插入数据  
  13. 13          m_busset.MoveNext();  
  14. 14      }  
  15. 15      m_roadway.SetCurSel(0);                             //设置选中项  
  16. 16      m_roadway.GetLBText(0,str);  
  17. 17      m_list.InsertColumn(0,"车次");                            //插入数据到列表控件  
  18. 18      m_list.InsertColumn(1,"站点");  
  19. 19      RECT rect;  
  20. 20      m_list.GetWindowRect(&rect);                            //获取控件的区域  
  21. 21      int wid=rect.right-rect.left;  
  22. 22      m_list.SetColumnWidth(0,wid/3);  
  23. 23      m_list.SetColumnWidth(1,2*wid/3);  
  24. 24      m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);          //设置列表控件的风格  
  25. 25      i=0;  
  26. 26      CStationSet m_StationSet;                           //定义记录集对象  
  27. 27      if(!m_StationSet.IsOpen())  
  28. 28          m_StationSet.Open();  
  29. 29      m_StationSet.MoveFirst();                               //移动到首条记录  
  30. 30      while(!m_StationSet.IsEOF())  
  31. 31      {  
  32. 32          if(m_StationSet.m_ID==str)                          //查找匹配数据  
  33. 33          {  
  34. 34              m_list.InsertItem(i,str);                       //插入数据到列表中  
  35. 35              m_list.SetItemText(i++,1,m_StationSet.m_STATION);  
  36. 36  
  37. 37          }  
  38. 38          m_StationSet.MoveNext();                            //移动到下一条记录  
  39. 39      }  
  40. 40      return TRUE;  
  41. 41  }  

第6~14行代码将车次的信息插入到下拉列表框中。

第17~24行代码设置列表控件的信息。

第26~39行代码在列表控件中输出一些初始信息。

上述代码完成初始化工作,首先将线路的信息插入到下拉列表框中,然后对列表控件进行设置,并根据列表框中的车次读取出该车次经过的所有站点,填充到列表控件中。给【删除】按钮添加消息响应函数,对应的代码如下:

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

  1. 1  void DelSingleStation::OnDel()  
  2. 2  {  
  3. 3   CStationSet m_StationSet;                               //定义记录集对象  
  4. 4   CString str;                                            //定义字符串变量  
  5. 5   m_roadway.GetLBText(m_roadway.GetCurSel(),str);         //获取文本  
  6. 6   if(!m_StationSet.IsOpen())                              //打开记录集  
  7. 7       m_StationSet.Open();  
  8. 8   m_StationSet.MoveFirst();                               //移动到首条记录  
  9. 9   while(!m_StationSet.IsEOF())                            //遍历记录集  
  10. 10      {  
  11. 11          if(m_StationSet.m_ID==str&&m_StationSet.m_STATION==m_str)  
  12. 12          {  
  13. 13              m_StationSet.Delete();                      //删除数据  
  14. 14              AfxMessageBox("删除记录成功!");  
  15. 15              CMapPublicApp *app=(CMapPublicApp *)AfxGetApp();    //获取应用类指针  
  16. 16              CAction_Time_Set *m_ActionSet;  
  17. 17              CDatabase *db;  
  18. 18              db=new CDatabase;  
  19. 19              m_ActionSet=new CAction_Time_Set(db);  
  20. 20              CString strSql;  
  21. 21              CTime time=CTime::GetCurrentTime();             //获取当前的时间  
  22. 22              CString strtime=time.Format("%Y-%m-%d %H:%M:%S");   //将时间格式化  
  23. 23              m_ActionSet->Open();  
  24. 24              CString straction="删除一个站点";  
  25. 25              strSql="insert into Action_Log(USER_ID,ACTION,COME_LEAVE_TIME)  
  26. 26                  values('" +app->m_User_ID+"','"+straction+"','"+strtime+"')";  
  27. 27              db->ExecuteSQL(strSql);                         //执行SQL语句  
  28. 28              m_ActionSet->Requery();                         //刷新记录集  
  29. 29              m_ActionSet->Close();  
  30. 30              break;  
  31. 31          }  
  32. 32          m_StationSet.MoveNext();  
  33. 33      }  
  34. 34      Refresh();  
  35. 35  }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇7.6.4 单个站点维护的实现(2) 下一篇7.7.1 地图信息模块功能分析

评论

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