📄 menu_inputreminfodlg.cpp
字号:
// Menu_InputRemInfoDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ministryperson.h"
#include "Menu_InputRemInfoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "msword9.h"
/////////////////////////////////////////////////////////////////////////////
// Menu_InputRemInfoDlg dialog
Menu_InputRemInfoDlg::Menu_InputRemInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(Menu_InputRemInfoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(Menu_InputRemInfoDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void Menu_InputRemInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Menu_InputRemInfoDlg)
DDX_Control(pDX, IDC_INPUTREM_CMB_NEWDEPART, m_InputRem_Cmb_Depart);
DDX_Control(pDX, IDC_INPUTREM_CMB_NEWCOMPANY, m_InputRem_Cmb_Company);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Menu_InputRemInfoDlg, CDialog)
//{{AFX_MSG_MAP(Menu_InputRemInfoDlg)
ON_CBN_SELCHANGE(IDC_INPUTREM_CMB_NEWCOMPANY, OnSelchangeInputremCmbNewcompany)
ON_BN_CLICKED(IDC_INPUTREM_BTN_SAVE, OnInputremBtnSave)
ON_BN_CLICKED(IDC_INPUTREM_BTN_MODIFY, OnInputremBtnModify)
ON_BN_CLICKED(IDC_INPUTREM_BTN_WORD, OnInputremBtnWord)
ON_BN_CLICKED(IDC_INPUTREM_BTN_PATH, OnInputremBtnPath)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Menu_InputRemInfoDlg message handlers
BOOL Menu_InputRemInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_bModifyDB = FALSE;
m_bSaveNotModify = TRUE;
m_bMakeWord = FALSE;
GetDlgItem(IDC_INPUTREM_BTN_MODIFY)->EnableWindow(FALSE);
GetOldInfoToShow();
InitCompanyToSelect(&m_InputRem_Cmb_Company);
InitDepartToSelect(&m_InputRem_Cmb_Depart);
InitSavePath();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/*********************************************************************
函数说明: 初始化时显示原来的信息
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::GetOldInfoToShow()
{
SetDlgItemText(IDC_INPUTREM_EDIT_NAME, m_strName);
SetDlgItemText(IDC_INPUTREM_EDIT_IDCARD, m_strIDCard);
SetDlgItemText(IDC_INPUTREM_EDIT_OLDCOMPANY, m_strOldCompany);
SetDlgItemText(IDC_INPUTREM_EDIT_OLDDEPART, m_strOldDepart);
SetDlgItemText(IDC_INPUTREM_EDIT_OLDDUTY, m_strOldDuty);
GetDlgItem(IDC_INPUTREM_BTN_WORD)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_BTN_PATH)->EnableWindow(FALSE);
SYSTEMTIME SysTime = {0};
GetSystemTime(&SysTime);
m_strAlterTime.Format("%d-%d-%d", SysTime.wYear, SysTime.wMonth, SysTime.wDay);
CFuncOper FunOper;
CString strShowTime;
strShowTime = FunOper.FormatDataToShow(m_strAlterTime);
SetDlgItemText(IDC_INPUTREM_EDIT_ALTERTIME, "调动时间为今天:" + strShowTime);
}
/*********************************************************************
函数说明: 初始化时单位
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::InitCompanyToSelect(CComboBox *pCombox)
{
CADOOperation ADOdbo;
CString strComp;
ADOdbo.OpenTable("Search_Table"); // 打开“搜索”表
if (ADOdbo.IsLastRow())
{
ADOdbo.CloseTable();
return;
}
// 得到单位名
pCombox->ResetContent();
pCombox->AddString("请选择单位");
ADOdbo.MoveFirst();
ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);
pCombox->AddString(strComp);
DWORD dwRecCount = (ADOdbo.GetRecordCount() - 1);
ADOdbo.CloseTable();
CString SQL;
SQL.Format("SELECT Search_Company FROM Search_Table WHERE 1=1");
ADOdbo.OpenRecordset(SQL);
ADOdbo.MoveFirst();
for (DWORD i = 2; i <= dwRecCount; i++)
{
CString strCompOne;
ADOdbo.MoveTo(i - 1);
ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);
strCompOne = strComp;
// 拿出MoveTo的内容,依次和其前面的比较
ADOdbo.MoveFirst();
for (DWORD j = 2; j <= i; j++)
{
ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);
if (strCompOne == strComp)
{
ADOdbo.MoveFirst();
break;
}
else
{
ADOdbo.MoveNext();
}
}
if (j > i)
{
pCombox->AddString(strCompOne);
}
ADOdbo.MoveFirst();
}
ADOdbo.CloseRecorset();
pCombox->SetCurSel(0);
for (int n = 0; n < pCombox->GetCount(); n++)
{
CString strFindCom;
int nLen = pCombox->GetLBTextLen(n);
pCombox->GetLBText( n, strFindCom.GetBuffer(nLen) );
strFindCom.ReleaseBuffer();
if (m_strOldCompany == strFindCom.GetBuffer(0))
{
pCombox->SetCurSel(n);
return;
}
}
return;
}
/*********************************************************************
函数说明: 初始化时部门
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::InitDepartToSelect(CComboBox *pDept)
{
CADOOperation ADODepart;
CString strDepart;
CString strComp;
CString strIndex;
CString SQL;
int nIndex = m_InputRem_Cmb_Company.GetCurSel(); // 选中的“单位”的项数
int nBuff = m_InputRem_Cmb_Company.GetLBTextLen(nIndex); // 该项内容大小
m_InputRem_Cmb_Company.GetLBText(nIndex, strComp.GetBuffer(nBuff)); // 获取该项内容
strComp.ReleaseBuffer();
strIndex = strComp.GetBuffer(0);
SQL.Format("SELECT Search_Depart FROM Search_Table WHERE Search_Company = '%s'", strIndex);
ADODepart.OpenRecordset(SQL);
if (ADODepart.IsLastRow())
{
ADODepart.CloseRecorset();
return;
}
pDept->AddString("请选择部门");
ADODepart.MoveFirst();
do
{
ADODepart.GetItemContentStr("Search_Depart", CADOOperation::ADO_TYPE_STRING, &strDepart);
pDept->AddString(strDepart);
ADODepart.MoveNext();
} while (!ADODepart.IsLastRow());
ADODepart.CloseRecorset();
pDept->SetCurSel(0);
return;
}
/*********************************************************************
函数说明: 单位选择变化时,部门选择的显示也响应变化
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::OnSelchangeInputremCmbNewcompany()
{
m_InputRem_Cmb_Depart.ResetContent(); // 清空“部门”组合框的内容
InitDepartToSelect(&m_InputRem_Cmb_Depart);
}
/*********************************************************************
函数说明: [按钮] 保存信息
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::OnInputremBtnSave()
{
GetDlgItemText(IDC_INPUTREM_CMB_NEWCOMPANY, m_strNewCompany);
GetDlgItemText(IDC_INPUTREM_CMB_NEWDEPART, m_strNewDepart);
GetDlgItemText(IDC_INPUTREM_EDIT_NEWDUTY, m_strNewDuty);
GetDlgItemText(IDC_INPUTREM_DTP_PAYOLDET, m_strPayOldEndT);
GetDlgItemText(IDC_INPUTREM_DTP_PAYNEWBT, m_strPayNewBegT);
GetDlgItemText(IDC_INPUTREM_EDIT_REMARK, m_strRemark);
if (m_strOldDepart == m_strNewDepart)
{
MessageBox("【原】部门和【新】部门不能相同!\t", "错误", MB_OK | MB_ICONERROR);
m_InputRem_Cmb_Depart.SetFocus();
return;
}
if ("请选择部门" == m_strNewDepart)
{
MessageBox("请选择一个【新】部门!\t", "错误", MB_OK | MB_ICONERROR);
m_InputRem_Cmb_Depart.SetFocus();
return;
}
WORD wPayOldET[3];
WORD wPayNewBT[3];
CFuncOper FunOper;
FunOper.strTimeTowTime(m_strPayOldEndT, wPayOldET);
FunOper.strTimeTowTime(m_strPayNewBegT, wPayNewBT);
if ((wPayOldET[0] > wPayNewBT[0]) ||
((wPayOldET[0] == wPayNewBT[0]) && (wPayOldET[1] > wPayNewBT[1])) ||
((wPayOldET[0] == wPayNewBT[0]) && (wPayOldET[1] == wPayNewBT[1]) && (wPayOldET[2] > wPayNewBT[2])))
{
MessageBox("【工资截止日期】晚于【工资起薪日期】!", "错误", MB_OK | MB_ICONERROR);
GetDlgItem(IDC_INPUTREM_DTP_PAYOLDET)->SetFocus();
return;
}
if (m_bSaveNotModify)
{
SaveAlterInfo();
}
else
{
ModifyAlterInfo();
}
}
/*********************************************************************
函数说明: [按钮]修改
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::OnInputremBtnModify()
{
GetDlgItem(IDC_INPUTREM_BTN_SAVE)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_BTN_MODIFY)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_CMB_NEWCOMPANY)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_CMB_NEWDEPART)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_EDIT_NEWDUTY)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_DTP_PAYOLDET)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_DTP_PAYNEWBT)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_EDIT_REMARK)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_BTN_WORD)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_BTN_PATH)->EnableWindow(FALSE);
}
/*********************************************************************
函数说明: 保存信息
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::SaveAlterInfo()
{
CADOOperation ADOdbo;
CString SQL;
SQL.Format("Insert into Employee_PersonAlter_Table \
(employee_Name , employee_IDCard, \
PersonAlter_OldCompany, PersonAlter_NewCompany, \
PersonAlter_OldDepart, PersonAlter_NewDepart, \
PersonAlter_OldDuty, PersonAlter_NewDuty, \
PersonAlter_PayOldEndT, PersonAlter_PayNewBegT, \
PersonAlter_AlterTime, PersonAlter_Remark) \
values ('%s', '%s', \
'%s', '%s', '%s', '%s', '%s', '%s', \
'%s', '%s', '%s', '%s')",
m_strName, m_strIDCard,
m_strOldCompany, m_strNewCompany, m_strOldDepart, m_strNewDepart, m_strOldDuty, m_strNewDuty,
m_strPayOldEndT, m_strPayNewBegT, m_strAlterTime, m_strRemark);
ADOdbo.OpenRecordset(SQL);
ADOdbo.CloseRecorset();
m_bModifyDB = TRUE;
m_bSaveNotModify = FALSE;
GetDlgItem(IDC_INPUTREM_BTN_SAVE)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_BTN_MODIFY)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_CMB_NEWCOMPANY)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_CMB_NEWDEPART)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_EDIT_NEWDUTY)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_DTP_PAYOLDET)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_DTP_PAYNEWBT)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_EDIT_REMARK)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_BTN_WORD)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_BTN_PATH)->EnableWindow(TRUE);
CString strMsg;
strMsg.Format("员工【%s】的调动信息添加成功!\t", m_strName);
MessageBox(strMsg, "提示", MB_OK | MB_ICONEXCLAMATION);
}
/*********************************************************************
函数说明: 修改信息
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::ModifyAlterInfo()
{
CFuncOper FunOper;
WORD wAlterTime[3];
FunOper.strTimeTowTime(m_strAlterTime, wAlterTime);
CADOOperation ADOdbo;
CString SQL;
SQL.Format("update Employee_PersonAlter_Table \
set PersonAlter_NewCompany = '%s', PersonAlter_NewDepart = '%s', PersonAlter_NewDuty = '%s' ,\
PersonAlter_PayOldEndT = '%s', PersonAlter_PayNewBegT = '%s', PersonAlter_Remark = '%s' \
where employee_IDCard = '%s' and PersonAlter_AlterTime = #%d-%d-%d#",
m_strNewCompany, m_strNewDepart, m_strNewDuty,
m_strPayOldEndT, m_strPayNewBegT, m_strRemark,
m_strIDCard, wAlterTime[0], wAlterTime[1], wAlterTime[2]);
ADOdbo.OpenRecordset(SQL);
ADOdbo.CloseRecorset();
GetDlgItem(IDC_INPUTREM_BTN_SAVE)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_BTN_MODIFY)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_CMB_NEWCOMPANY)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_CMB_NEWDEPART)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_EDIT_NEWDUTY)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_DTP_PAYOLDET)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_DTP_PAYNEWBT)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_EDIT_REMARK)->EnableWindow(FALSE);
GetDlgItem(IDC_INPUTREM_BTN_WORD)->EnableWindow(TRUE);
GetDlgItem(IDC_INPUTREM_BTN_PATH)->EnableWindow(TRUE);
CString strMsg;
strMsg.Format("员工【%s】的调动信息修改成功!\t", m_strName);
MessageBox(strMsg, "提示", MB_OK | MB_ICONEXCLAMATION);
}
/*********************************************************************
函数说明: 退出时,去修改7个大表中任职表的信息,如果职务没写~就不修改~
函数参数:
*********************************************************************/
void Menu_InputRemInfoDlg::OnCancel()
{
if (m_bModifyDB)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -