4.6.3 考勤管理的实现(2)
上述代码将考勤的状态添加到数据库中,通过m_nFlag判断单击了哪个单选按钮,再通过m_strstate数组判断复选了几个复选框,构造SQL将数据插入到数据库中。
给【加班】按钮添加消息函数,实现加班对话框界面的显示,完成职工加班信息的统计,如图4-27所示。
|
| 图4-27 加班管理界面设计 |
双击此对话框为对话框创建一个新类COverTimeDlg,通过类向导为控件关联相应的变量。添加WM_INITDIALOG消息响应函数OnInitDialog,代码如下:
代码位置:见光盘中本章源代码的COverTimeDlg类。
- 1 BOOL COverTimeDlg::OnInitDialog()
- 2 {
- 3 CDialog::OnInitDialog();
- 4 m_Type.SetCurSel(0);
//获取组合框选项 - 5 return TRUE;
- 6 }
第4行代码初始设置组合框选中第一项。
此类中主要完成数据的获取,加班的具体实现在CCheckManageDlg中完成,加班按钮的消息响应函数如下:
代码位置:见光盘中本章源代码的CCheckManageDlg类。
- 1 void CCheckManageDlg::OnOvertime()
- 2 {
- 3 COverTimeDlg dlg;
//定义对话框对象 - 4 UpdateData();
//数据的获取 - 5 if(dlg.DoModal() == IDOK)
//如果单击确定按钮 - 6 {
- 7 CString strSQL;
//定义字符串变量 - 8 CTime time = CTime::GetCurrentTime();
//获取当前系统的时间 - 9 CString strTime = time.Format("%Y-%m-%d");
//将时间放到字符串中 - 10 switch(dlg.m_nType)
- 11 {
- 12 case 0:
- 13 strSQL.Format("update checkinfo set
ot1 = %d //构造修改操作语句 - 14 where id = %s and date = '%s'",
dlg.m_nHour, m_strID, strTime); - 15 break;
- 16 case 1:
- 17 strSQL.Format("update checkinfo set ot2 = %d
- 18 where id = %s and date = '%s'",
dlg.m_nHour, m_strID, strTime); - 19 break;
- 20 case 2:
- 21 strSQL.Format("update checkinfo set ot3 = %d
- 22 where id = %s and date = '%s'",
dlg.m_nHour, m_strID, strTime); - 23 break;
- 24 }
- 25 try
- 26 {
//执行SQL语句 - 27 theApp.m_pConnection->Execute
((_bstr_t)strSQL, NULL, adCmdText); - 28 }
- 29 CATCH_ERROR;
- 30 }
第8~9行代码完成了系统时间的获取。
第10~29行代码将加班信息添加到数据库中。
上述代码为职工加班时间的设定,通过GetCurrentTime()获取当前的系统时间。m_nType为加班的类型,根据用户选择加班的类型,设置相应的加班时间,将数据添加到数据库中,在这里插入数据时需要职工的ID及时间进行匹配。
【责任编辑:
云霞 TEL:(010)68476606】