设为首页 加入收藏

TOP

4.6.4 考勤的统计、查询与删除(2)
2013-10-07 00:55:04 来源: 作者: 【 】 浏览:70
Tags:4.6.4 考勤 统计 查询 删除

4.6.4  考勤的统计、查询与删除(2)

上述代码通过鼠标单击列表控件的位置获取职工的ID与时间,将数据显示在编辑框中,其中涉及DateTimePicker控件时间的设置。通过字符串的截取,把年月日放在三个整型变量中,再通过函数SetDate()设置DateTimePicker控件的时间。自定义函数ShowListData()用来显示列表控件中的数据,代码如下:

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

  1. 1  void CCheckInfoDlg::ShowListData(const CString& sql)  
  2. 2  {  
  3. 3   m_ListCrtl.DeleteAllItems();                  
    //删除列表控件所有项  
  4. 4   try  
  5. 5   {  
  6. 6       m_pRecordset = theApp.m_pConnection->Execute
    ((_bstr_t)sql, NULL, adCmdText);  
  7. 7       int i = 0;  
  8. 8       while(!m_pRecordset->adoEOF)          
    //如果记录没有到末尾  
  9. 9       {  
  10. 10            m_ListCrtl.InsertItem(i,(char*)_bstr_t
    (m_pRecordset->GetCollect (_variant_t((long)0))));  
  11. 11            for(int j = 1; j < 9; j++)  
  12. 12            m_ListCrtl.SetItemText(i,j,(char*)_bstr_t
    (m_pRecordset->GetCollect (_variant_t((long)j))));  
  13. 13            i++;  
  14. 14            m_pRecordset->MoveNext();             
    //移动到下一条记录  
  15. 15          }  
  16. 16      }  
  17. 17      CATCH_ERROR;  
  18. 18  } 

第3行代码为删除列表控件中的所有子项。

第4~16行代码完成了列表控件数据的显示。

ShowListData()函数的参数为SQL语句,根据SQL语句查询相应的数据,将数据插入到列表控件中。将参数设定为SQL语句可以满足从不同的表中查询数据添加到一个列表控件中。给【查询】按钮添加消息响应函数,完成数据的查询,代码如下:

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

  1. 1  void CCheckInfoDlg::OnIndex()  
  2. 2  {  
  3. 3   UpdateData();                        
    //数据的获取  
  4. 4   if(m_strID == "")                       
    //条件的判断  
  5. 5   {  
  6. 6       MessageBox("请出入查询条件!");  
  7. 7       return ;  
  8. 8   }  
  9. 9   CString strSQL, strDate;                     
    //定义字符串变量  
  10. 10      strDate.Format("%d-%d-%d", m_Date.GetYear(), 
    m_Date.GetMonth(), m_Date. GetDay());  
  11. 11      strSQL.Format("select * from checkinfo where 
    id = %s and date = '%s'"
    , m_strID, strDate);  
  12. 12      ShowListData(strSQL);                       
    //显示列表控件中的数据  
  13. 13  } 

第4~6行代码完成了查询条件的判断。

第9~11行代码完成了SQL语句的构造。

上述代码借助Format()函数构造查询的SQL语句,将构造好的SQL语句通过参数的形式传递给ShowListData(),将数据添加到列表控件中。给【删除】按钮添加消息响应函数,该函数的功能是完成考勤记录的删除。

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

  1. 1  void CCheckInfoDlg::OnDel()  
  2. 2  {  
  3. 3   if(m_strID == "")                         
    //条件的判断  
  4. 4   {  
  5. 5       MessageBox("请选择一条记录!");      
    //信息提示  
  6. 6       return ;  
  7. 7   }  
  8. 8   if(MessageBox("确定删除吗?""注意", MB_YESNO) == IDYES)  
  9. 9   {  
  10. 10          CString strSQL, strDate;           
    //定义字符串变量  
  11. 11          strDate.Format("%d-%d-%d", m_Date.GetYear(),
    m_Date.GetMonth(), m_Date. GetDay());  
  12. 12          strSQL.Format("delete from checkinfo where 
    id = %s and date = '%s'"
    , m_strID, strDate);  
  13. 13          try  
  14. 14          {                                      
    //执行删除记录操作  
  15. 15              theApp.m_pConnection->Execute
    ((_bstr_t)strSQL, NULL, adCmdText);  
  16. 16              ShowListData("select * from checkinfo");  
    //列表更新显示  
  17. 17          }  
  18. 18          CATCH_ERROR;  
  19. 19      }  
  20. 20  } 

第4~6行代码完成了查询条件的判断。

第8~18行代码完成了考勤信息的删除。

上述代码借助Format()函数构造删除的SQL语句,通过Execute()函数执行SQL语句删除选择的数据,重新构造查询的SQL语句将所有数据显示在列表控件中。

……

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.6.1 考勤功能分析 下一篇4.6.4 考勤的统计、查询与删除(1..

评论

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