设为首页 加入收藏

TOP

4.6.3 考勤管理的实现(1)
2013-10-07 00:54:55 来源: 作者: 【 】 浏览:71
Tags:4.6.3 考勤管理 实现

4.6.3  考勤管理的实现(1)

创建一个对话框资源ID为IDD_CHECK_MANAGE_DLG,在对话框上添加如图4-26所示的控件。

 
(点击查看大图)图4-26  考勤管理界面设计

双击对话框为对话框创建一个新类CCheckManageDlg,通过类向导为控件关联相应的变量。添加WM_INITDIALOG消息响应函数OnInitDialog(),代码如下:

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

  1. 1  BOOL CCheckManageDlg::OnInitDialog()  
  2. 2  {  
  3. 3   CDialog::OnInitDialog();  
  4. 4   m_pRecordset.CreateInstance("ADODB.Recordset");  
  5. 5   GetDlgItem(IDC_CHECK1)->EnableWindow(FALSE);       
    //复选框没有选中  
  6. 6   GetDlgItem(IDC_CHECK2)->EnableWindow(FALSE);  
  7. 7   GetDlgItem(IDC_CHECK3)->EnableWindow(FALSE);  
  8. 8   GetDlgItem(IDC_CHECK4)->EnableWindow(FALSE);  
  9. 9   m_Radio.SetCheck(1);                              
    //第一个单选按钮被选中  
  10. 10      return TRUE 
  11. 11  } 

第5~8行代码设置复选框的状态。

第9行代码设置单选按钮的第一个为选中状态。

上述代码主要完成初始化工作,EnableWindow()函数控制空间的禁用与恢复, SetCheck()函数设置单选按钮处于选中的状态。给【确定】按钮添加消息响应函数,该函数的功能是完成职工考勤情况的添加,代码如下:

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

  1. 1  void CCheckManageDlg::OnSure()  
  2. 2  {  
  3. 3   UpdateData();                                      
    //数据的更新  
  4. 4   if(m_strID == "")                                   
    //条件的判断  
  5. 5   {  
  6. 6       MessageBox("请输入员工号!");                    
    //信息的输出  
  7. 7       return ;  
  8. 8   }  
  9. 9   CString strSQL;                                 
    //定义字符串变量  
  10. 10      _variant_t va;  
  11. 11      strSQL.Format("select count(*) from emp  where [id] = %s", m_strID);  
  12. 12      try  
  13. 13      {  
  14. 14          m_pRecordset = theApp.m_pConnection->
    Execute((_bstr_t)strSQL, NULL, adCmdText);  
  15. 15          va = m_pRecordset->GetCollect(_variant_t
    ((long)0)); //获取记录集的结果  
  16. 16          if(va.iVal == 0)  
  17. 17          {  
  18. 18              MessageBox("没有此员工!");  
  19. 19              return ;  
  20. 20          }  
  21. 21      }  
  22. 22      CATCH_ERROR; 

第4~8行代码实现是否输入员工号的判断。

第9~22行代码为从数据表中查询是否有当前输入的职工。

上述代码借助Format()函数,通过"select count(*) from 表名 where 条件",构造从表中查询符合条件数据总数的SQL语句。这是常用的查询总数的SQL语句,希望读者可以熟练地掌握运用。下面通过SQL语句实现向表中添加记录。实现代码参考如下:

  1. 23      CTime time = CTime::GetCurrentTime();    
    //获取当前的系统时间  
  2. 24      CString strTime = time.Format("%Y-%m-%d");  
  3. 25      CString strYM = time.Format("%Y-%m");  
  4. 26      if(m_nFlag == 1)            
    //标记的判断  
  5. 27      {  
  6. 28          if(m_Check1 == 1)  
  7. 29              m_strState[2] = "是";  
  8. 30          else 
  9. 31              m_strState[2] = "否";  
  10. 32          if(m_Check2 == 1)  
  11. 33              m_strState[1] = "是";  
  12. 34          else 
  13. 35              m_strState[1] = "否";  
  14. 36      }  
  15. 37      if(m_nFlag == 2)  
  16. 38      {  
  17. 39          if(m_Check3 == 1)  
  18. 40              m_strState[4] = "是";  
  19. 41          else 
  20. 42              m_strState[4] = "否";  
  21. 43          if(m_Check4 == 1)  
  22. 44              m_strState[6] = "是";  
  23. 45          else 
  24. 46              m_strState[6] = "否";  
  25. 47      }  
  26. 48      strSQL.Format("insert into checkinfo values 
    (
    '%s''%s''%s''%s', '  

    //构造插入的SQL语句  
  27. 49           %s', '%s', '%s', '%s', '%s', '%s', '%s', 0, 0, 0)",  
  28. 50          strTime, m_strID, m_strState[0], 
    m_strState[1], m_strState[2],  
  29. 51           m_strState[3], m_strState[4], 
    m_strState[5], m_strState[6], m_strMore, strYM);  
  30. 52      try  
  31. 53      {                                               //执行SQL语句  
  32. 54          theApp.m_pConnection->Execute((_bstr_t)strSQL, 
    NULL, adCmdText);  
  33. 55          m_strID = "";  
  34. 56          for(int i = 0; i < 7; i++)  
  35. 57              m_strState[i] = "否";  
  36. 58          MessageBox("添加成功!");  
  37. 59      }  
  38. 60      CATCH_ERROR;  
  39. 61      UpdateData(FALSE);                              //输出结果  
  40. 62  } 

第23~25行代码获取当前系统的时间,并格式化到字符串中。

第48~61行代码实现了职工考勤情况的添加。


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

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.6.3 考勤管理的实现(2) 下一篇4.6.2 考勤技术分析

评论

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