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

📄 payprotectinfodlg.cpp

📁 VC++和ACCESS使用ADO连接
💻 CPP
字号:
// PayProtectInfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MinistryPerson.h"
#include "PayProtectInfoDlg.h"

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

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

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

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


BEGIN_MESSAGE_MAP(PayProtectInfoDlg, CDialog)
	//{{AFX_MSG_MAP(PayProtectInfoDlg)
	ON_BN_CLICKED(IDC_BUTTON_PP_SAVE, OnButtonPpSave)
	ON_BN_CLICKED(IDC_BUTTON_PP_MODIFY, OnButtonPpModify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// PayProtectInfoDlg message handlers

BOOL PayProtectInfoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if (!g_bQueryToShow)
	{
		GetDlgItem(IDC_BUTTON_PP_SAVE)->EnableWindow(TRUE);
		GetDlgItem(IDC_BUTTON_PP_MODIFY)->EnableWindow(FALSE);
		IniAllTimePicker();
		m_bSaveNotModify_ProPI = TRUE;
	}
	else
	{		
		GetDlgItem(IDC_BUTTON_PP_SAVE)->EnableWindow(FALSE);
		GetDlgItem(IDC_BUTTON_PP_MODIFY)->EnableWindow(TRUE);
		CtrlStatus_ProPI(FALSE);
		GetProPInfoFromDB();
		m_bSaveNotModify_ProPI = FALSE;
	}
	
	return TRUE;  
}

/*********************************************************************
函数说明:	  保存按钮
函数参数:	  
*********************************************************************/
void PayProtectInfoDlg::OnButtonPpSave() 
{
	if (!CheckAllInfo_PayP())
	{
		return;
	}

	if (!m_bSaveNotModify_ProPI)
	{
		if (g_bQueryToShow)
		{
			PpModify(g_nEmployee_ID, g_strEmployee_IDCard);
		}
		else
		{
			PpModify(g_In_nID, g_In_strIDCard);
		}		
	}
	else
	{
		PpSave(g_In_nID, g_In_strIDCard);		// 保存
	}
}

/*********************************************************************
函数说明:	  修改按钮
函数参数:	  
*********************************************************************/
void PayProtectInfoDlg::OnButtonPpModify() 
{
	CtrlStatus_ProPI(TRUE);
	m_bSaveNotModify_ProPI = FALSE;
	GetDlgItem(IDC_BUTTON_PP_SAVE)->EnableWindow(TRUE);
	GetDlgItem(IDC_BUTTON_PP_MODIFY)->EnableWindow(FALSE);
}

/*********************************************************************
函数说明:	  保存按钮
函数参数:	  
*********************************************************************/
BOOL PayProtectInfoDlg::PpSave(int nKeyID, CString strKeyIDCard) 
{
	CADOOperation ADOdbo;
	CString SQL;
	
 	SQL.Format("insert into Employee_PayProtect_Table values (%d, '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", nKeyID, strKeyIDCard,												
						PayP_OldProID, PayP_OldProBegT, PayP_OldProStopT,
						PayP_InjuryProID, PayP_InjuryBegT, PayP_InjuryStopT,
						PayP_BirthProID, PayP_BirthBegT, PayP_BirthStopT,
						PayP_TreatProID, PayP_TreatProBegT, PayP_TreatProStop,
						PayP_UnempProID, PayP_UnempProBegT, PayP_UnempProStop,
						PayP_AccumID, PayP_AccumBegT, PayP_AccumStopT,
						PayP_BasicPayment);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.CloseRecorset();	

	CtrlStatus_ProPI(FALSE);
	GetDlgItem(IDC_BUTTON_PP_SAVE)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON_PP_MODIFY)->EnableWindow(TRUE);	
	MessageBox("员工 【社保信息】 录入成功!", "成功", MB_OK | MB_ICONEXCLAMATION);
	return TRUE;
}

/*********************************************************************
函数说明:	  修改按钮
函数参数:	  
*********************************************************************/
BOOL PayProtectInfoDlg::PpModify(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_PayProtect_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")
	{
		PpSave(nKeyID, strKeyIDCard);
		return TRUE;
	}

 	SQL.Format("update Employee_PayProtect_Table \
		set PayProtect_OldProID = '%s', PayProtect_OldProBegT = '%s', PayProtect_OldProStopT = '%s', \
		PayProtect_InjuryProID = '%s', PayProtect_InjuryBegT = '%s', PayProtect_InjuryStopT = '%s', \
		PayProtect_BirthProID = '%s', PayProtect_BirthBegT = '%s', PayProtect_BirthStopT = '%s', \
		PayProtect_TreatProID  = '%s', PayProtect_TreatProBegT = '%s', PayProtect_TreatProStopT = '%s', \
		PayProtect_UnempProID  = '%s', PayProtect_UnempProBegT = '%s', PayProtect_UnempProStopT = '%s', \
		PayProtect_AccumID = '%s', PayProtect_AccumBegT = '%s', PayProtect_AccumStopT = '%s', \
		PayProtect_BasicPayment = '%s' \
		where employee_ID = %d AND employee_IDCard = '%s'",
		PayP_OldProID, PayP_OldProBegT, PayP_OldProStopT,
		PayP_InjuryProID, PayP_InjuryBegT, PayP_InjuryStopT,
		PayP_BirthProID, PayP_BirthBegT, PayP_BirthStopT,
		PayP_TreatProID, PayP_TreatProBegT, PayP_TreatProStop,
		PayP_UnempProID, PayP_UnempProBegT, PayP_UnempProStop,
		PayP_AccumID, PayP_AccumBegT, PayP_AccumStopT,
		PayP_BasicPayment, nKeyID, strKeyIDCard);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.CloseRecorset();

	CtrlStatus_ProPI(FALSE);
	GetDlgItem(IDC_BUTTON_PP_SAVE)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON_PP_MODIFY)->EnableWindow(TRUE);
	MessageBox("员工 【社保信息】 修改成功!", "成功", MB_OK | MB_ICONEXCLAMATION);
	return TRUE;
}

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

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_OPBT))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_OPST))->SetTime(&sysTime);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_IBT))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_IST))->SetTime(&sysTime);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_BBT))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_BST))->SetTime(&sysTime);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_TPBT))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_TPST))->SetTime(&sysTime);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_UPBT))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_UPST))->SetTime(&sysTime);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_ABT))->SetTime(&sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_AST))->SetTime(&sysTime);
}


/*********************************************************************
函数说明:	   使内容可以编辑
函数参数:	   
*********************************************************************/
void PayProtectInfoDlg::CtrlStatus_ProPI(BOOL bStatus)
{
	((CEdit*)GetDlgItem(IDC_EDIT_PP_BASICPAYMENT))->EnableWindow(bStatus);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_OPBT))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_OPST))->EnableWindow(bStatus);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_IBT))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_IST))->EnableWindow(bStatus);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_BBT))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_BST))->EnableWindow(bStatus);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_TPBT))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_TPST))->EnableWindow(bStatus);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_UPBT))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_UPST))->EnableWindow(bStatus);

	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_ABT))->EnableWindow(bStatus);
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_PP_AST))->EnableWindow(bStatus);

	((CEdit*)GetDlgItem(IDC_EDIT_PP_OPID))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PP_BPID))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PP_IPID))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PP_TPID))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PP_UPID))->EnableWindow(bStatus);
	((CEdit*)GetDlgItem(IDC_EDIT_PP_AID))->EnableWindow(bStatus);
}

/*********************************************************************
函数说明:	  显示社保信息
函数参数:	  nID 员工编号
*********************************************************************/
void PayProtectInfoDlg::GetProPInfoFromDB()
{
	CADOOperation ADOdbo;
	CString SQL;
	CString strFields[] = {""};
	CString strFieldsValue[21] = {""};	// 社保信息所有字段有21个
	int nFieldsCount = 21;	

	SQL.Format("select * from Employee_PayProtect_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_PP_NAME,   strGetName[0]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_ID,     strFieldsValue[0]);
	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_IDCARD, strFieldsValue[1]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_OPID, strFieldsValue[2]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_OPBT,  strFieldsValue[3]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_OPST,  strFieldsValue[4]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_IPID, strFieldsValue[5]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_IBT,   strFieldsValue[6]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_IST,   strFieldsValue[7]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_BPID, strFieldsValue[8]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_BBT,   strFieldsValue[9]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_BST,   strFieldsValue[10]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_TPID, strFieldsValue[11]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_TPBT,  strFieldsValue[12]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_TPST,  strFieldsValue[13]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_UPID, strFieldsValue[14]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_UPBT,  strFieldsValue[15]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_UPST,  strFieldsValue[16]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_AID, strFieldsValue[17]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_ABT,  strFieldsValue[18]);
	FunOper.SetFieldValueToCTime(this, IDC_DTP_PP_AST,  strFieldsValue[19]);

	FunOper.SetFieldValueToCEdit(this, IDC_EDIT_PP_BASICPAYMENT, strFieldsValue[20]);	
}

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

	CFuncOper FunOper;

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_BASICPAYMENT, "【基本工资】", PayP_BasicPayment, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_OPID, "【养老社保账号】", PayP_OldProID, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_OPBT, PayP_OldProBegT))
	{
		return FALSE;
	}	

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_OPST, PayP_OldProStopT))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_IPID, "【工伤社保账号】", PayP_InjuryProID, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_IBT, PayP_InjuryBegT))
	{
		return FALSE;
	}	

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_IST, PayP_InjuryStopT))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_BPID, "【生育社保账号】", PayP_BirthProID, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_BBT, PayP_BirthBegT))
	{
		return FALSE;
	}	

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_BST, PayP_BirthStopT))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_TPID, "【医疗社保账号】", PayP_TreatProID, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_TPBT, PayP_TreatProBegT))
	{
		return FALSE;
	}	

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_TPST, PayP_TreatProStop))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_UPID, "【失业社保账号】", PayP_UnempProID, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_UPBT, PayP_UnempProBegT))
	{
		return FALSE;
	}	

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_UPST, PayP_UnempProStop))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_PP_AID, "【公积金账号】", PayP_AccumID, TRUE))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_ABT, PayP_AccumBegT))
	{
		return FALSE;
	}	

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_PP_AST, PayP_AccumStopT))
	{
		return FALSE;
	}

	return TRUE;
}

⌨️ 快捷键说明

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