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 + -
显示快捷键?