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

📄 inactiveserinfodlg.cpp

📁 VC++和ACCESS使用ADO连接
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		return FALSE;
	}

	// 特殊工作岗位
	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_SPEP_ADRESS1, "", m_Sp_Address1, TRUE))
	{
		return FALSE;
	}

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

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

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

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

	if (!FunOper.CheckType_CEdit(this, IDC_EDIT_SPEP_POSITION3, "", m_Sp_Position3, TRUE))
	{
		return FALSE;
	}
	
	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_SPEP_JOINTIME1, m_Sp_JoinTime1))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_SPEP_JOINTIME2, m_Sp_JoinTime2))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_SPEP_JOINTIME3, m_Sp_JoinTime3))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_SPEP_LEAVETIME1, m_Sp_LeaveTime1))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_SPEP_LEAVETIME2, m_Sp_LeaveTime2))
	{
		return FALSE;
	}

	if (!FunOper.CheckType_CTimePicker(this, IDC_DTP_SPEP_LEAVETIME3, m_Sp_LeaveTime3))
	{
		return FALSE;
	}
	
	return TRUE;
}

/*********************************************************************
函数说明:	  计算工龄
函数参数:	  
*********************************************************************/
void InActiveSerInfoDlg::GetWorkYears(int nKeyID, CString strKeyIDCard)
{
	CADOOperation ADOdbo;
	CString SQL;
	CString strFields[] = {"employee_FirstJobTime"};
	CString strRetValue[1];
	strRetValue[0] = "1900-1-1";

	SQL.Format("select employee_FirstJobTime from Employee_BasicInfor_Table \
				where employee_ID = %d and employee_IDCard = '%s'", nKeyID, strKeyIDCard);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.GetFieldsValue(strFields, 1, strRetValue, FALSE);
	ADOdbo.CloseRecorset();
	if (strRetValue[0] == "1900-1-1")
	{
		SetDlgItemText(IDC_EDIT_IAS_WORKAGE, "【参加工作时间】有误");
	}
	else
	{
		int nPointYM = strRetValue[0].Find("-", 0);
		CString strYear = strRetValue[0].Left(nPointYM);
		int nPointMD = strRetValue[0].Find("-", nPointYM + 1);
		CString strDay = strRetValue[0].Right(strRetValue[0].GetLength() - nPointMD - 1);
		CString strMonth = strRetValue[0].Mid(nPointYM + 1, nPointMD - nPointYM - 1);
		int nYear  = atoi(strYear);
		int nMonth = atoi(strMonth);
		int nDay   = atoi(strDay);

		SYSTEMTIME SysTime = {0};
		GetSystemTime(&SysTime);
		int nNYear  = SysTime.wYear;
		int nNMonth = SysTime.wMonth;
		int nNDay   = SysTime.wDay;

		if ( (nYear > nNYear) ||
			((nYear == nNYear) && (nMonth > nNMonth )) ||
			((nYear == nNYear) && (nMonth == nNMonth) && (nDay > nNDay)))
		{
			SetDlgItemText(IDC_EDIT_IAS_WORKAGE, "【参加工作时间】有误");
		}
		else
		{
			int Year  = (((nNYear - nYear) * 12 - nMonth + nNMonth) / 12);
			int Month = (((nNYear - nYear) * 12 - nMonth + nNMonth) % 12);
			CString strWorAge;
			strWorAge.Format("%d年%d月(共:%d个月)", Year, Month, ((nNYear - nYear) * 12 - nMonth + nNMonth));
			SetDlgItemText(IDC_EDIT_IAS_WORKAGE, strWorAge);
		}
	}
}

/*********************************************************************
函数说明:	  计算合同剩余时间
函数参数:	  
*********************************************************************/
void InActiveSerInfoDlg::GetLeftContractT(int nKeyID, CString strKeyIDCard)
{
	CADOOperation ADOdbo;
	CString SQL;
	CString strFields[] = {"InActiveSer_ContractBegT", "InActiveSer_ContractEndT"};
	CString strRetValue[2];
	strRetValue[0] = "1900-1-1";
	strRetValue[1] = "1900-1-1";

	SQL.Format("select InActiveSer_ContractBegT, InActiveSer_ContractEndT \
				from Employee_InActiveSer_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] == strRetValue[1])
	{
		SetDlgItemText(IDC_EDIT_IAS_CONTRACTREMT, "【合同时间】信息有误");
	}
	else
	{
		CString strBegTime = strRetValue[0];
		int nPointYM = strBegTime.Find("-", 0);
		CString strBYear = strBegTime.Left(nPointYM);
		int nPointMD = strBegTime.Find("-", nPointYM + 1);
		CString strBDay = strBegTime.Right(strBegTime.GetLength() - nPointMD - 1);
		CString strBMonth = strBegTime.Mid(nPointYM + 1, nPointMD - nPointYM - 1);
		int nBDay   = atoi(strBDay);
		int nBYear  = atoi(strBYear);
		int nBMonth = atoi(strBMonth);	

		CString strEndTime = strRetValue[1];		
		nPointYM = strEndTime.Find("-", 0);
		CString strEYear = strEndTime.Left(nPointYM);
		nPointMD = strEndTime.Find("-", nPointYM + 1);
		CString strEDay = strEndTime.Right(strEndTime.GetLength() - nPointMD - 1);
		CString strEMonth = strEndTime.Mid(nPointYM + 1, nPointMD - nPointYM - 1);
		int nEDay   = atoi(strEDay);
		int nEYear  = atoi(strEYear);
		int nEMonth = atoi(strEMonth);		
		
		if ((nBYear > nEYear) || 
			((nBYear == nEYear) && (nBMonth > nEMonth )) ||
			((nBYear == nEYear) && (nBMonth == nEMonth) && (nBDay > nEDay)))
		{
			SetDlgItemText(IDC_EDIT_IAS_CONTRACTREMT, "【合同时间】信息有误");
		}
		else
		{
			SYSTEMTIME SysTime = {0};
			GetSystemTime(&SysTime);
			int nNYear  = SysTime.wYear;
			int nNMonth = SysTime.wMonth;
			int nNDay   = SysTime.wDay;
			CString strRem;
			
			if (nNYear > nEYear)	// 过期
			{ 
				int nYear = (((nNYear - nEYear) * 12 - nEMonth + nNMonth) / 12);
				int nMonth = (((nNYear - nEYear) * 12 - nEMonth + nNMonth) % 12);
				strRem.Format("已过期%d年%d月(共:%d个月)", nYear, nMonth, ((nNYear - nEYear) * 12 - nEMonth + nNMonth));
			}
			else if (nNYear == nEYear)	// 年份相同
			{
				if (nNMonth > nEMonth)
				{
					strRem.Format("已过期%d月", (nNMonth - nEMonth));
				}
				else if (nNMonth == nEMonth)
				{
					if (nNDay > nEDay)
					{
						strRem.Format("已过期%d天", (nNDay - nEDay));
					}
					else if (nNDay == nEDay)
					{
						strRem.Format("合同在今天到期!");
					}
					else
					{
						strRem.Format("剩余%d天", (nEDay - nNDay));
					}				
				}
				else
				{
					strRem.Format("剩余%d月", (nEMonth - nNMonth));
				}
			}
			else	// 没到期
			{
				int nYear  = (((nEYear - nNYear) * 12 - nNMonth + nEMonth) / 12);
				int nMonth = (((nEYear - nNYear) * 12 - nNMonth + nEMonth) % 12);
				strRem.Format("剩余%d年%d月(共:%d个月)", nYear, nMonth, ((nEYear - nNYear) * 12 - nNMonth + nEMonth));
			}		
			SetDlgItemText(IDC_EDIT_IAS_CONTRACTREMT, strRem);
		}
	}
}

/*********************************************************************
函数说明:	  有固定的合同日期
函数参数:	  
*********************************************************************/
void InActiveSerInfoDlg::OnRadioIasHave() 
{
	GetDlgItem(IDC_DTP_IAS_CONTRACTBEGT)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_DTP_IAS_CONTRACTENDT)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_DTP_IAS_CONTRACTREMT)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_IAS_CONET)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_IAS_CONRT)->ShowWindow(SW_SHOW);
	SYSTEMTIME sysTime = {0}; 
	sysTime.wYear  = 1900;
	sysTime.wMonth = 1;
	sysTime.wDay   = 1;	
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_IAS_CONTRACTENDT))->SetTime(&sysTime);
	SetDlgItemText(IDC_EDIT_IAS_CONTRACTREMT, "暂无合同剩余时间");
}

/*********************************************************************
函数说明:	  无固定的合同日期
函数参数:	  
*********************************************************************/
void InActiveSerInfoDlg::OnRadioIasNothave() 
{
	GetDlgItem(IDC_DTP_IAS_CONTRACTBEGT)->ShowWindow(SW_SHOW);
	GetDlgItem(IDC_DTP_IAS_CONTRACTENDT)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_DTP_IAS_CONTRACTREMT)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_IAS_CONET)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_STATIC_IAS_CONRT)->ShowWindow(SW_HIDE);
	SYSTEMTIME sysTime = {0};
	sysTime.wYear  = 1911;
	sysTime.wMonth = 11;
	sysTime.wDay   = 11;	
	((CDateTimeCtrl*)GetDlgItem(IDC_DTP_IAS_CONTRACTENDT))->SetTime(&sysTime);
	SetDlgItemText(IDC_EDIT_IAS_CONTRACTREMT, "无合同剩余时间");
}

/*********************************************************************
函数说明:	  职工属性选择变化响应
函数参数:	  
*********************************************************************/
void InActiveSerInfoDlg::OnSelchangeComboIasNewproperty() 
{
	CString strProperty;
	GetDlgItemText(IDC_COMBO_IAS_NEWPROPERTY, strProperty);
	if (strProperty == "退休" || strProperty == "病退")
	{
		MessageBox("该职工属性的员工,无合同信息!", "提示", MB_OK | MB_ICONEXCLAMATION);
		GetDlgItem(IDC_DTP_IAS_CONTRACTBEGT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_DTP_IAS_CONTRACTENDT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_DTP_IAS_CONTRACTREMT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_IAS_CONBT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_IAS_CONET)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_IAS_CONRT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO_IAS_HAVE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO_IAS_NOTHAVE)->ShowWindow(SW_HIDE);

		SYSTEMTIME sysTime = {0};
		sysTime.wYear  = 1900;
		sysTime.wMonth = 1;
		sysTime.wDay   = 1;	
		((CDateTimeCtrl*)GetDlgItem(IDC_DTP_IAS_CONTRACTENDT))->SetTime(&sysTime);

		sysTime.wYear  = 1911;
		sysTime.wMonth = 11;
		sysTime.wDay   = 11;	
		((CDateTimeCtrl*)GetDlgItem(IDC_DTP_IAS_CONTRACTENDT))->SetTime(&sysTime);
	}
	else
	{
		GetDlgItem(IDC_DTP_IAS_CONTRACTBEGT)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_DTP_IAS_CONTRACTENDT)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_DTP_IAS_CONTRACTREMT)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_IAS_CONBT)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_IAS_CONET)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_STATIC_IAS_CONRT)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_RADIO_IAS_HAVE)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_RADIO_IAS_NOTHAVE)->ShowWindow(SW_SHOW);
	}
}

⌨️ 快捷键说明

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