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

📄 menu_inputreminfodlg.cpp

📁 VC++和ACCESS使用ADO连接
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -