⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ondutyeditdlg.cpp

📁 visual c++与sql Server数据库开发考勤管理系统
💻 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 + -