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

📄 hrview.cpp

📁 本程序实现了vc++访问DAO数据库的功能,对于操作数据库有很大的启发的.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// hrView.cpp : implementation of the CHrView class
//

#include "stdafx.h"
#include "hr.h"
#include "FindDlg.h"
#include "hrSet.h"
#include "hrDoc.h"
#include "hrView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CHrView

IMPLEMENT_DYNCREATE(CHrView, CDaoRecordView)

BEGIN_MESSAGE_MAP(CHrView, CDaoRecordView)
	//{{AFX_MSG_MAP(CHrView)
	ON_COMMAND(ID_RECORD_ADD, OnRecordAdd)
	ON_BN_CLICKED(IDC_SAVE_BUTTON, OnSaveButton)
	ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton)
	ON_UPDATE_COMMAND_UI(ID_RECORD_NEXT, OnUpdateRecordNext)
	ON_UPDATE_COMMAND_UI(ID_RECORD_PREV, OnUpdateRecordPrev)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_MODIFY_BUTTON, OnModifyButton)
	ON_BN_CLICKED(IDC_FIND_BUTTON, OnFindButton)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CDaoRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CDaoRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CDaoRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHrView construction/destruction

CHrView::CHrView()
	: CDaoRecordView(CHrView::IDD)
{
	//{{AFX_DATA_INIT(CHrView)
	m_pSet = NULL;
	m_bAdd=FALSE;
	m_iRecCount=0;
	m_strFresh="";
	m_bFresh=FALSE;
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CHrView::~CHrView()
{
}

void CHrView::DoDataExchange(CDataExchange* pDX)
{
	CDaoRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHrView)
	DDX_Control(pDX, IDC_HR_LIST, m_cHrList);
	DDX_FieldCBString(pDX, IDC_COMPANY_COMBO, m_pSet->m_company, m_pSet);
	DDX_FieldCBString(pDX, IDC_DEPARTMENT_COMBO, m_pSet->m_department, m_pSet);
	DDX_FieldText(pDX, IDC_DUTY_EDIT, m_pSet->m_duty, m_pSet);
	DDX_FieldText(pDX, IDC_NAME_EDIT, m_pSet->m_name, m_pSet);
	DDX_FieldText(pDX, IDC_WORKERNO_EDIT, m_pSet->m_ID, m_pSet);
	DDX_FieldText(pDX, IDC_OTHER_EDIT, m_pSet->m_detail, m_pSet);
	DDX_FieldText(pDX, IDC_DATA_EDIT, m_pSet->m_indata, m_pSet);
	//}}AFX_DATA_MAP
}

BOOL CHrView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CDaoRecordView::PreCreateWindow(cs);
}

void CHrView::OnInitialUpdate()
{
	m_pSet = &GetDocument()->m_hrSet;
	CEdit*pCtrl=(CEdit*)GetDlgItem(IDC_NAME_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DUTY_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DATA_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_WORKERNO_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_OTHER_EDIT);
	pCtrl->SetReadOnly(TRUE);
	CDaoRecordView::OnInitialUpdate();
	CButton*pButton=(CButton*)GetDlgItem(IDC_SAVE_BUTTON);
	pButton->EnableWindow(FALSE);
	CListCtrl*pListCtrl=(CListCtrl*)GetDlgItem(IDC_HR_LIST);
	CDC*pDC=GetDC();
	TEXTMETRIC tm;
	pDC->GetTextMetrics(&tm);
//	pListCtrl->SetBkColor(RGB(0,255,0));
//	pListCtrl->ModifyStyle(LVS_SMALLICON|LVS_LIST|LVS_REPORT,LVS_ICON,TRUE);
    pListCtrl->InsertColumn(0,"公司",LVCFMT_CENTER,10*tm.tmAveCharWidth,0);
	pListCtrl->InsertColumn(1,"部门",LVCFMT_CENTER,10*tm.tmAveCharWidth,1);
	pListCtrl->InsertColumn(2,"姓名",LVCFMT_CENTER,15*tm.tmAveCharWidth,2);
	pListCtrl->InsertColumn(3,"职位",LVCFMT_CENTER,15*tm.tmAveCharWidth,3);
	pListCtrl->InsertColumn(4,"入厂日期",LVCFMT_CENTER,15*tm.tmAveCharWidth,4);
	pListCtrl->InsertColumn(5,"工号",LVCFMT_CENTER,15*tm.tmAveCharWidth,5);
	pListCtrl->InsertColumn(6,"备注",LVCFMT_CENTER,50*tm.tmAveCharWidth,6);
	ResizeParentToFit();

}

/////////////////////////////////////////////////////////////////////////////
// CHrView printing

BOOL CHrView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CHrView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CHrView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CHrView diagnostics

#ifdef _DEBUG
void CHrView::AssertValid() const
{
	CDaoRecordView::AssertValid();
}

void CHrView::Dump(CDumpContext& dc) const
{
	CDaoRecordView::Dump(dc);
}

CHrDoc* CHrView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHrDoc)));
	return (CHrDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CHrView database support
CDaoRecordset* CHrView::OnGetRecordset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CHrView message handlers

void CHrView::OnRecordAdd() 
{
	m_pSet->AddNew();
	CEdit*pCtrl=(CEdit*)GetDlgItem(IDC_NAME_EDIT);
	pCtrl->SetReadOnly(FALSE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DUTY_EDIT);
	pCtrl->SetReadOnly(FALSE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DATA_EDIT);
	pCtrl->SetReadOnly(FALSE);
	pCtrl=(CEdit*)GetDlgItem(IDC_WORKERNO_EDIT);
	pCtrl->SetReadOnly(FALSE);
	pCtrl=(CEdit*)GetDlgItem(IDC_OTHER_EDIT);
	pCtrl->SetReadOnly(FALSE);
	CButton*pButton=(CButton*)GetDlgItem(IDC_SAVE_BUTTON);
	pButton->EnableWindow(TRUE);
	pButton=(CButton*)GetDlgItem(IDC_DELETE_BUTTON);
	pButton->EnableWindow(FALSE);
	pButton=(CButton*)GetDlgItem(IDC_MODIFY_BUTTON);
	pButton->EnableWindow(TRUE);
	pButton=(CButton*)GetDlgItem(IDC_ADD_BUTTON);
	pButton->EnableWindow(FALSE);
	m_bAdd=TRUE;
	UpdateData(FALSE);
	// TODO: Add your command handler code here
	
}

void CHrView::OnSaveButton() 
{
	if(m_bAdd)
	{
	
	UpdateData(TRUE);
	if(m_pSet->CanUpdate())
	{
		m_pSet->Update();
	    m_bAdd=FALSE;
	}
		if(!m_pSet->IsEOF())
	{
	m_pSet->MoveLast();
	UpdateData(FALSE);
	}
	CEdit*pCtrl=(CEdit*)GetDlgItem(IDC_NAME_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DUTY_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DATA_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_WORKERNO_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_OTHER_EDIT);
	pCtrl->SetReadOnly(TRUE);
	CButton*pButton=(CButton*)GetDlgItem(IDC_SAVE_BUTTON);
	pButton->EnableWindow(FALSE);
	pButton=(CButton*)GetDlgItem(IDC_DELETE_BUTTON);
	pButton->EnableWindow(TRUE);
    pButton=(CButton*)GetDlgItem(IDC_MODIFY_BUTTON);
	pButton->EnableWindow(TRUE);
	pButton=(CButton*)GetDlgItem(IDC_ADD_BUTTON);
	pButton->EnableWindow(TRUE);
	if(m_bFresh)
	{
	m_pSet->Close();
	m_pSet->m_strFilter=m_strFresh;
	m_pSet->Open();
	int recCount=m_pSet->GetRecordCount();
	if(recCount==0)
	{
	MessageBox("No Record!");
	m_pSet->Close();
	m_pSet->m_strFilter="";
	m_pSet->Open();
	}
	else
	InsertRecord();
    }
	else
	{
		InsertRecord();
	}

	UpdateData(FALSE);
	//	pButton=(CButton*)GetDlgItem(IDC_SAVE_BUTTON);
//	pButton->EnableWindow(TRUE);
	}
	else if(m_bModify)
	{
	m_pSet->Edit();
	m_bModify=FALSE;
	UpdateData(TRUE);
	if(m_pSet->CanUpdate())
	{
	m_pSet->Update();
	}
	CEdit*pCtrl=(CEdit*)GetDlgItem(IDC_NAME_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DUTY_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_DATA_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_WORKERNO_EDIT);
	pCtrl->SetReadOnly(TRUE);
	pCtrl=(CEdit*)GetDlgItem(IDC_OTHER_EDIT);
	pCtrl->SetReadOnly(TRUE);
	CButton*pButton=(CButton*)GetDlgItem(IDC_SAVE_BUTTON);
	pButton->EnableWindow(FALSE);
	pButton=(CButton*)GetDlgItem(IDC_DELETE_BUTTON);
	pButton->EnableWindow(TRUE);
	pButton=(CButton*)GetDlgItem(IDC_MODIFY_BUTTON);
	pButton->EnableWindow(TRUE);
	pButton=(CButton*)GetDlgItem(IDC_ADD_BUTTON);
	pButton->EnableWindow(TRUE);
	if(m_bFresh)
	{
	m_pSet->Close();
	m_pSet->m_strFilter=m_strFresh;
	m_pSet->Open();
	int recCount=m_pSet->GetRecordCount();
	if(recCount==0)
	{
	MessageBox("No Record!");
	m_pSet->Close();
	m_pSet->m_strFilter="";
	m_pSet->Open();
	}
	else
	InsertRecord();
    }
	else
	{
		InsertRecord();
	}
	UpdateData(FALSE);
	}
	// TODO: Add your control notification handler code here
	
}

void CHrView::OnDeleteButton() 
{
	try
	{
		m_pSet->Delete();
	}
	catch(CDaoException*e)
	{
	AfxMessageBox(e->m_pErrorInfo->m_strDescription);
	e->Delete();
	m_pSet->MoveFirst();
	UpdateData(FALSE);
	return;
	}
	if(m_pSet!=NULL)
	m_pSet->MoveNext();
//	if(m_pSet->IsEOF())
	//	m_pSet->MoveLast();
//	if(m_pSet->IsBOF())
//	{
//	m_pSet->SetFieldNull(NULL);
//	}
	m_pSet->Close();
	m_pSet->m_strFilter=m_strFresh;
	m_pSet->Open();
	int recCount=m_pSet->GetRecordCount();
	if(recCount==0)
	{
	MessageBox("No Record!");
	m_pSet->Close();
	m_pSet->m_strFilter="";

⌨️ 快捷键说明

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