gusucode.com > VC+Access工程信息管理系统 > VC+Access工程信息管理系统/gusucode/IMS/PropPageAdd.cpp

    //Download by http://www.NewXing.com
// PropPageAdd.cpp : implementation file
//

#include "stdafx.h"
#include "IMS.h"
#include "PropPageAdd.h"
#include "IMSDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPropPageAdd property page

IMPLEMENT_DYNCREATE(CPropPageAdd, CPropertyPage)

CPropPageAdd::CPropPageAdd() : CPropertyPage(CPropPageAdd::IDD)
{
	//{{AFX_DATA_INIT(CPropPageAdd)
	m_strDataPosition = _T("");
	m_olecExpense = COleCurrency(0, 0);
	m_strLinkMan = _T("");
	m_strRemark = _T("");
	m_strTelNumber = _T("");
	m_strWorkAmount = _T("");
	m_strWorkContent = _T("");
	m_strWorkGroup = _T("");
	m_strWorkPosition = _T("");
	m_oletDataTime = COleDateTime::GetCurrentTime();
	m_oletWorkDate = COleDateTime::GetCurrentTime();
	m_strWorkUnit = _T("");
	//}}AFX_DATA_INIT
}

CPropPageAdd::~CPropPageAdd()
{
}

void CPropPageAdd::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPropPageAdd)
	DDX_Text(pDX, IDC_DATAPOSITION, m_strDataPosition);
	DDX_Text(pDX, IDC_EXPENSES, m_olecExpense);
	DDX_Text(pDX, IDC_LINKMAN, m_strLinkMan);
	DDX_Text(pDX, IDC_REMARK, m_strRemark);
	DDX_Text(pDX, IDC_TELNUMBER, m_strTelNumber);
	DDX_Text(pDX, IDC_WORKAMOUNT, m_strWorkAmount);
	DDX_CBString(pDX, IDC_WORKCONTENT, m_strWorkContent);
	DDX_CBString(pDX, IDC_WORKGROUP, m_strWorkGroup);
	DDX_Text(pDX, IDC_WORKPOSITION, m_strWorkPosition);
	DDX_DateTimeCtrl(pDX, IDC_DATATIME, m_oletDataTime);
	DDX_DateTimeCtrl(pDX, IDC_WORKDATE, m_oletWorkDate);
	DDX_Text(pDX, IDC_WORKUNIT, m_strWorkUnit);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPropPageAdd, CPropertyPage)
	//{{AFX_MSG_MAP(CPropPageAdd)
		// NOTE: the ClassWizard will add message map macros here
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPropPageAdd message handlers

BOOL CPropPageAdd::OnSetActive() 
{
	// TODO: Add your specialized code here and/or call the base class
	nActivePage = 0;	
	daoRecordset . m_strFilter = "";
	CIMSDlg *pCIMDlg = (CIMSDlg *)(AfxGetApp( )->m_pMainWnd);
	CWnd *pWnd = pCIMDlg->GetDlgItem(IDC_EXECUTE);
	pWnd->SetWindowText("增加记录(&A)");
	pCIMDlg->LoadRecordset();

	return CPropertyPage::OnSetActive();
}

BOOL CPropPageAdd::Execute()
{

	// all fields MUST contain a value
	try {
		if ( ! daoRecordset . IsOpen () ) // if the recordset isn't already open..
			daoRecordset . Open (); // open it
		daoRecordset . AddNew (); // begin the add
		UpdateData(TRUE);
		daoRecordset . m_strDataPosition = m_strDataPosition;
		daoRecordset . m_olecExpense = m_olecExpense;
		daoRecordset . m_strLinkMan = m_strLinkMan;
		daoRecordset . m_strRemark = m_strRemark;
		daoRecordset . m_strTelNumber = m_strTelNumber;
		daoRecordset . m_strWorkAmount = m_strWorkAmount;
		daoRecordset . m_strWorkContent = m_strWorkContent;
		daoRecordset . m_strWorkGroup = m_strWorkGroup;
		daoRecordset . m_strWorkPosition = m_strWorkPosition;
		daoRecordset . m_oletDataTime = m_oletDataTime;
		daoRecordset . m_oletWorkDate = m_oletWorkDate;
		daoRecordset . m_strWorkUnit = m_strWorkUnit;
		daoRecordset . Update (); // complete the add by doing an update
		daoRecordset . Close (); // close the recordset
	}
	catch ( CDaoException* e ) { // catch DAO exceptions
		char szBuffer [ 256 ];
		CString strExceptDesc =
			CString ( "JET Database Engine Error:\n\n Error Code: " ) +
			CString ( ltoa ( e -> m_pErrorInfo -> m_lErrorCode, szBuffer, 10 ) ) +
			CString ( "\nDescription: " ) +
			CString ( e -> m_pErrorInfo -> m_strDescription );
		AfxMessageBox ( strExceptDesc, MB_ICONEXCLAMATION );
		daoRecordset . Close ();
		return FALSE;
	}

	// after the user "adds" a record, re-set the form for another "add"
	Reset ();

	return TRUE;
}

void CPropPageAdd::Reset()
{
	m_strDataPosition = _T("");
	m_olecExpense = COleCurrency(0, 0);
	m_strLinkMan = _T("");
	m_strRemark = _T("");
	m_strTelNumber = _T("");
	m_strWorkAmount = _T("");
	m_strWorkContent = _T("");
	m_strWorkGroup = _T("");
	m_strWorkPosition = _T("");
	m_oletDataTime = COleDateTime::GetCurrentTime();
	m_oletWorkDate = COleDateTime::GetCurrentTime();
	m_strWorkUnit = _T("");
	UpdateData(FALSE);
}