paychangeinfodlg.cpp

来自「VC++和ACCESS使用ADO连接」· C++ 代码 · 共 352 行

CPP
352
字号
// PayChangeInfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ministryperson.h"
#include "PayChangeInfoDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////

PayChangeInfoDlg::PayChangeInfoDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(PayChangeInfoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(PayChangeInfoDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void PayChangeInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(PayChangeInfoDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(PayChangeInfoDlg, CDialog)
	//{{AFX_MSG_MAP(PayChangeInfoDlg)
	ON_BN_CLICKED(IDC_BUTTON_PC_SAVE, OnButtonPcSave)
	ON_BN_CLICKED(IDC_BUTTON_PC_MODIFY, OnButtonPcModify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// PayChangeInfoDlg message handlers

BOOL PayChangeInfoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if (!g_bQueryToShow)
	{
		GetDlgItem(IDC_BUTTON_PC_SAVE)->EnableWindow(TRUE);
		GetDlgItem(IDC_BUTTON_PC_MODIFY)->EnableWindow(FALSE);
		IniAllTimePicker();
		m_bSaveNotModify_PayCI = TRUE;
	}
	else
	{		
		GetDlgItem(IDC_BUTTON_PC_SAVE)->EnableWindow(FALSE);
		GetDlgItem(IDC_BUTTON_PC_MODIFY)->EnableWindow(TRUE);
		CtrlStatus_PayCI(FALSE);		
		GetPayCInfoFromDB();
		m_bSaveNotModify_PayCI = FALSE;
	}
	
	return TRUE;  
}

/*********************************************************************
函数说明:	  保存按钮
函数参数:	  
*********************************************************************/
void PayChangeInfoDlg::OnButtonPcSave() 
{
	if (!CheckAllInfo_PayC())
	{
		return;
	}
	
	if (!m_bSaveNotModify_PayCI)
	{
		if (g_bQueryToShow)
		{
			PcModify(g_nEmployee_ID, g_strEmployee_IDCard);
		}
		else
		{
			PcModify(g_In_nID, g_In_strIDCard);
		}
	}
	else
	{
		PcSave(g_In_nID, g_In_strIDCard);
	}
}

/*********************************************************************
函数说明:	  修改按钮
函数参数:	  
*********************************************************************/
void PayChangeInfoDlg::OnButtonPcModify() 
{
	CtrlStatus_PayCI(TRUE);
	m_bSaveNotModify_PayCI = FALSE;
	GetDlgItem(IDC_BUTTON_PC_SAVE)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON_PC_MODIFY)->EnableWindow(FALSE);
}

/*********************************************************************
函数说明:	  保存按钮
函数参数:	  
*********************************************************************/
BOOL PayChangeInfoDlg::PcSave(int nKeyID, CString strKeyIDCard) 
{
	CADOOperation ADOdbo;
	CString SQL;
	
 	SQL.Format("insert into Employee_PayChange_Table \
				values (%d,  '%s', \
						'%s', '%s', '%s', '%s', '%s', '%s', \
						'%s', '%s', '%s', '%s', '%s', '%s', \
						'%s')",
						nKeyID, strKeyIDCard,
						PayC_Time1, PayC_Pay1, PayC_Time2, PayC_Pay2, PayC_Time3, PayC_Pay3, 
						PayC_Time4, PayC_Pay4, PayC_Time5, PayC_Pay5, PayC_Time6, PayC_Pay6,
						PayC_Remark);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.CloseRecorset();

	CtrlStatus_PayCI(FALSE);
	GetDlgItem(IDC_BUTTON_PC_SAVE)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON_PC_MODIFY)->EnableWindow(TRUE);
	MessageBox("员工 【薪酬异动明细信息】 录入成功!", "成功", MB_OK | MB_ICONEXCLAMATION);
	return TRUE;
}

/*********************************************************************
函数说明:	  修改按钮
函数参数:	  
*********************************************************************/
BOOL PayChangeInfoDlg::PcModify(int nKeyID, CString strKeyIDCard) 
{
	CADOOperation ADOdbo;
	CString SQL; 
	CString strFields[] = {"employee_ID", "employee_IDCard"};
	CString strRetValue[2];
	strRetValue[0] = "NOID";
	strRetValue[1] = "NOIDCARD";

	SQL.Format("select employee_ID, employee_IDCard from Employee_PayChange_Table \
				where employee_ID = %d and employee_IDCard = '%s'", nKeyID, strKeyIDCard);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.GetFieldsValue(strFields, 2, strRetValue, FALSE);
	ADOdbo.CloseRecorset();
	if (strRetValue[0] == "NOID" && strRetValue[1] == "NOIDCARD")
	{
		PcSave(nKeyID, strKeyIDCard);
		return TRUE;
	}

 	SQL.Format("update Employee_PayChange_Table \
				set PayChange_Time1 = '%s', PayChange_Time2 = '%s', PayChange_Time3 = '%s', PayChange_Time4 = '%s', PayChange_Time5 = '%s', PayChange_Time6 = '%s', \
				    PayChange_Pay1 = '%s',  PayChange_Pay2 = '%s',  PayChange_Pay3 = '%s',  PayChange_Pay4 = '%s',  PayChange_Pay5 = '%s',  PayChange_Pay6 = '%s', \
					PayChange_ChangeRemark = '%s' \
				 where employee_ID = %d AND employee_IDCard = '%s'",				 
				 PayC_Time1, PayC_Time2, PayC_Time3, PayC_Time4, PayC_Time5, PayC_Time6,
				 PayC_Pay1,  PayC_Pay2,  PayC_Pay3,  PayC_Pay4,  PayC_Pay5,  PayC_Pay6, 
				 PayC_Remark,
				 nKeyID, strKeyIDCard);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.CloseRecorset();

	CtrlStatus_PayCI(FALSE);
	GetDlgItem(IDC_BUTTON_PC_SAVE)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON_PC_MODIFY)->EnableWindow(TRUE);
	MessageBox("员工 【薪酬异动明细信息】 修改成功!", "成功", MB_OK | MB_ICONEXCLAMATION);
	return TRUE;
}

/*********************************************************************
函数说明:	  初始化时间显示
函数参数:	  
*********************************************************************/
void PayChangeInfoDlg::IniAllTimePicker()
{
	SYSTEMTIME sysTime = {0};
	sysTime.wYear  = 1900;
	sysTime.wMonth = 1;
	sysTime.wDay   = 1;

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T1))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T2))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T3))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T4))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T5))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T6))->SetTime(&sysTime);
}

/*********************************************************************
函数说明:	   使内容可以编辑
函数参数:	   
*********************************************************************/
void PayChangeInfoDlg::CtrlStatus_PayCI(BOOL bStatus)
{
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T1))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T2))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T3))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T4))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T5))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PC_T6))->EnableWindow(bStatus);

	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAY1))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAY2))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAY3))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAY4))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAY5))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAY6))->EnableWindow(bStatus);

	((CEdit*)GetDlgItem(IDC_EDIT_PC_PAYREMARK))->EnableWindow(bStatus);
}

/*********************************************************************
函数说明:	  显示薪酬异动信息
函数参数:	  nID 员工编号
*********************************************************************/
void PayChangeInfoDlg::GetPayCInfoFromDB()
{
	CADOOperation ADOdbo;
	CString SQL;
	CString strFields[] = {""};
	CString strFieldsValue[15] = {""};	// 薪酬异动明细信息所有字段有15个
	int nFieldsCount = 15;	

	SQL.Format("select * from Employee_PayChange_Table \
				where employee_ID = %d AND employee_IDCard = '%s'", 
				g_nEmployee_ID, g_strEmployee_IDCard);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.GetFieldsValue(strFields, nFieldsCount, strFieldsValue, TRUE);
	ADOdbo.CloseRecorset();

	CString strName[] = {"employee_Name"};
	CString strGetName[1];
	SQL.Format("select employee_Name from Employee_BasicInfor_Table \
				where employee_ID = %d AND employee_IDCard = '%s'", 
				g_nEmployee_ID, g_strEmployee_IDCard);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.GetFieldsValue(strName, 1, strGetName, FALSE);
	ADOdbo.CloseRecorset();

	CFuncOper FunOper;
	
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_NAME, strGetName[0]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_ID, strFieldsValue[0]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_IDCARD, strFieldsValue[1]);

	FunOper.SetFieldValueToCTime(this, IDC_DTP_PC_T1,    strFieldsValue[2]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAY1, strFieldsValue[3]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PC_T2,    strFieldsValue[4]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAY2, strFieldsValue[5]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PC_T3,    strFieldsValue[6]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAY3, strFieldsValue[7]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PC_T4,    strFieldsValue[8]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAY4, strFieldsValue[9]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PC_T5,    strFieldsValue[10]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAY5, strFieldsValue[11]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PC_T6,    strFieldsValue[12]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAY6, strFieldsValue[13]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PC_PAYREMARK, strFieldsValue[14]);
}

/*********************************************************************
函数说明:	   所有填写内容的 合法性 检查
函数参数:	   
*********************************************************************/
BOOL PayChangeInfoDlg::CheckAllInfo_PayC()
{
	if (!g_bQueryToShow)
	{
		if (g_In_nID == 0 && g_In_strIDCard == "")
		{
			MessageBox("按照正确的录入顺序,请您先填写【基本信息】页面内容          ", "提示", MB_OK | MB_ICONEXCLAMATION);
			return FALSE;
		}
	}

	CFuncOper FunOper;

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PC_T1, PayC_Time1))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAY1, "", PayC_Pay1, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PC_T2, PayC_Time2))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAY2, "", PayC_Pay2, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PC_T3, PayC_Time3))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAY3, "", PayC_Pay3, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PC_T4, PayC_Time4))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAY4, "", PayC_Pay4, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PC_T5, PayC_Time5))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAY5, "", PayC_Pay5, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PC_T6, PayC_Time6))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAY6, "", PayC_Pay6, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PC_PAYREMARK, "", PayC_Remark, TRUE))
	{
		return FALSE;
	}

	return TRUE;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?