📄 ondutyeditdlg.cpp
字号:
// OnDutyEditDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CheckManage.h"
#include "OnDutyEditDlg.h"
#include "DepSelDlg.h"
#include "CheckInfo.h"
#include "COMDEF.H"
#include "Columns.h"
#include "Column.h"
#include "_Recordset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COnDutyEditDlg dialog
COnDutyEditDlg::COnDutyEditDlg(CWnd* pParent /*=NULL*/)
: CDialog(COnDutyEditDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(COnDutyEditDlg)
m_chidao = FALSE;
m_zaotui = FALSE;
m_DepName = _T("");
m_quanqin = -1;
m_checkdate = _T("");
//}}AFX_DATA_INIT
}
void COnDutyEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COnDutyEditDlg)
DDX_Control(pDX, IDC_ADODC1, m_Adodc);
DDX_Control(pDX, IDC_DATAGRID1, m_Datagrid);
DDX_Check(pDX, IDC_CHI_DAO_CHECK, m_chidao);
DDX_Check(pDX, IDC_ZAO_TUI_CHECK, m_zaotui);
DDX_Text(pDX, IDC_DEPNAME_STATIC, m_DepName);
DDX_Radio(pDX, IDC_QUAN_QIN_RADIO, m_quanqin);
DDX_Text(pDX, IDC_CHECKDATE_STATIC, m_checkdate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COnDutyEditDlg, CDialog)
//{{AFX_MSG_MAP(COnDutyEditDlg)
ON_BN_CLICKED(IDC_SEL_DEP_BUTTON, OnSelDepButton)
ON_BN_CLICKED(IDC_QUAN_QIN_RADIO, OnQuanQinRadio)
ON_BN_CLICKED(IDC_XIU_XI_RADIO, OnXiuXiRadio)
ON_BN_CLICKED(IDC_CHI_DAO_CHECK, OnChiDaoCheck)
ON_BN_CLICKED(IDC_ZAO_TUI_CHECK, OnZaoTuiCheck)
ON_BN_CLICKED(IDC_KUANG_GONG_RADIO, OnKuangGongRadio)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COnDutyEditDlg message handlers
BOOL COnDutyEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// 修改状态下不用选择部门信息
if(EmpId != "")
GetDlgItem(IDC_SEL_DEP_BUTTON)->EnableWindow(FALSE);
m_checkdate = CheckDate;
UpdateData(FALSE);
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
// 刷新数据
void COnDutyEditDlg::RefreshData()
{
UpdateData(TRUE);
//根据部门编号设置SELECT语句
CString cDepId;
cDepId.Format("%d", iDepId);
// 设置SELECT语句
CString cSource = "SELECT EmpId AS 员工编号, Name AS 姓名"
" FROM EmpInfo WHERE DepId = " + cDepId;
if(EmpId != "")
cSource += " AND EmpId=" + EmpId;
//刷新ADO Data控件的记录源
m_Adodc.SetRecordSource(cSource);
m_Adodc.Refresh();
//设置列宽度
_variant_t vIndex;
vIndex = long(0);
m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(1);
m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
}
// 选择部门
void COnDutyEditDlg::OnSelDepButton()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
//打开选择部门对话框
CDepSelDlg dlg;
dlg.DoModal();
//从对话框中读取选择部门的信息
iDepId = dlg.DepId;
m_DepName = dlg.DepName;
UpdateData(FALSE);
//根据选择的部门信息,刷新表格数据
RefreshData();
}
// 全勤
void COnDutyEditDlg::OnQuanQinRadio()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_chidao = false;
m_zaotui = false;
UpdateData(FALSE);
}
// 休息
void COnDutyEditDlg::OnXiuXiRadio()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_chidao = false;
m_zaotui = false;
UpdateData(FALSE);
}
// 旷工
void COnDutyEditDlg::OnKuangGongRadio()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_chidao = false;
m_zaotui = false;
UpdateData(FALSE);
}
// 迟到
void COnDutyEditDlg::OnChiDaoCheck()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_quanqin = -1;
UpdateData(FALSE);
}
// 早退
void COnDutyEditDlg::OnZaoTuiCheck()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_quanqin = -1;
UpdateData(FALSE);
}
void COnDutyEditDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
// 是否选择人员
if(m_Adodc.GetRecordset().GetEof())
{
MessageBox("请选择人员");
return;
}
// 是否进行添加考勤状态
if(m_quanqin == -1 && m_chidao == false && m_zaotui == false)
{
MessageBox("请选择出勤状态");
return;
}
// 赋值到CCheckInfo对象中
CCheckInfo cur;
cur.CheckDate = CheckDate;
cur.EmpId = atol(m_Datagrid.GetItem(0));
switch(m_quanqin)
{
case 0:
cur.QuanQin = "是";
cur.XiuXi = "否";
cur.KuangGong = "否";
cur.ChuChai = "否";
cur.BingJia = "否";
cur.ShiJia = "否";
break;
case 1:
cur.QuanQin = "否";
cur.XiuXi = "是";
cur.KuangGong = "否";
cur.ChuChai = "否";
cur.BingJia = "否";
cur.ShiJia = "否";
break;
case 2:
cur.QuanQin = "否";
cur.XiuXi = "否";
cur.KuangGong = "是";
cur.ChuChai = "否";
cur.BingJia = "否";
cur.ShiJia = "否";
break;
default:
cur.QuanQin = "否";
cur.XiuXi = "否";
cur.KuangGong = "否";
}
if(m_chidao)
{
cur.ChiDao = "是";
cur.ChuChai = "否";
cur.BingJia = "否";
cur.ShiJia = "否";
}
else
cur.ChiDao = "否";
if(m_zaotui)
{
cur.ZaoTui = "是";
cur.ChuChai = "否";
cur.BingJia = "否";
cur.ShiJia = "否";
}
else
cur.ZaoTui = "否";
cur.Memo = "";
if(EmpId == "")
{
// 在添加时,若人员有出勤记录,则不允许添加
if(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)))
{
MessageBox("已经有此员工的出勤信息,不能添加");
return;
}
// 插入记录
cur.SqlInsert();
}
else
{
// 修改CheckInfo表记录
cur.UpdateOnDuty(cur.CheckDate, EmpId);
}
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -