www.pudn.com > VC++访问DAO数据库.rar > hrView.cpp


// 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=""; 
	m_pSet->Open(); 
	} 
	else 
	InsertRecord(); 
	UpdateData(FALSE); 
	// TODO: Add your control notification handler code here 
	 
} 
 
BOOL CHrView::OnMove(UINT nIDMoveCommand)  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	if(m_bAdd) 
	{ 
	m_bAdd=FALSE; 
	UpdateData(TRUE); 
	if(m_pSet->CanUpdate()) 
	{ 
	m_pSet->Update(); 
	} 
	if(!m_pSet->IsEOF()) 
	{ 
	m_pSet->MoveLast(); 
	} 
	m_pSet->Requery(); 
	UpdateData(FALSE); 
	return TRUE; 
	} 
	else 
	{ 
	switch(nIDMoveCommand) 
	{ 
	case ID_RECORD_PREV: 
		m_pSet->MovePrev(); 
		if(!m_pSet->IsBOF()) 
			break; 
	case ID_RECORD_FIRST: 
		m_pSet->MoveFirst(); 
		break; 
	case ID_RECORD_NEXT: 
		m_pSet->MoveNext(); 
		if(!m_pSet->IsEOF()) 
		break; 
		if(!m_pSet->CanScroll()) 
		{ 
		m_pSet->SetFieldNull(NULL); 
		break; 
		} 
	case ID_RECORD_LAST: 
		m_pSet->MoveLast(); 
		break; 
	default: 
		ASSERT(FALSE); 
	} 
	UpdateData(FALSE); 
	return TRUE; 
	} 
 
	//return CDaoRecordView::OnMove(nIDMoveCommand); 
} 
 
void CHrView::OnUpdateRecordNext(CCmdUI* pCmdUI)  
{ 
	pCmdUI->Enable(!m_pSet->IsBOF()); 
	// TODO: Add your command update UI handler code here 
	 
} 
 
void CHrView::OnUpdateRecordPrev(CCmdUI* pCmdUI)  
{ 
		pCmdUI->Enable(!m_pSet->IsEOF()); 
	// TODO: Add your command update UI handler code here 
	 
} 
 
void CHrView::OnAddButton()  
{ 
	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(FALSE); 
	pButton=(CButton*)GetDlgItem(IDC_ADD_BUTTON); 
	pButton->EnableWindow(FALSE); 
    m_bAdd=TRUE; 
    UpdateData(FALSE); 
	// TODO: Add your control notification handler code here 
	 
} 
 
 
void CHrView::OnModifyButton()  
{ 
	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(FALSE); 
	pButton=(CButton*)GetDlgItem(IDC_ADD_BUTTON); 
	pButton->EnableWindow(FALSE); 
	if(m_pSet->m_ID=="") 
	{ 
	m_pSet->AddNew(); 
	m_bAdd=TRUE; 
	UpdateData(FALSE); 
	} 
	else 
	{ 
    m_bModify=TRUE; 
	} 
	// TODO: Add your control notification handler code here 
	 
} 
 
void CHrView::OnFindButton()  
{ 
	// TODO: Add your control notification handler code here 
	CFindDlg fdlg; 
	if(fdlg.DoModal()==IDOK) 
	{ 
		CString str=""; 
		CString and="and"; 
	if(fdlg.m_bDepartment) 
	{ 
		CString col="department"; 
		str=col+"='"+fdlg.m_strDepartment+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
	} 
    if(fdlg.m_bDate) 
	{ 
		if(str=="") 
		{ 
		CString col="indata";     
		str=col+"='"+fdlg.m_strName+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
		} 
		else 
		{ 
		CString col="indata";     
		str=str+and+" "+col+"='"+fdlg.m_strName+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
		} 
	} 
	if(fdlg.m_bDuty) 
	{ 
		if(str=="") 
		{ 
		CString col="duty";     
		str=col+"='"+fdlg.m_strDuty+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
		} 
		else 
		{ 
		CString col="duty";     
		str=str+and+" "+col+"='"+fdlg.m_strDuty+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
		} 
	} 
		if(fdlg.m_bName) 
	{ 
		if(str=="") 
		{ 
		CString col="name";     
		str=col+"='"+fdlg.m_strName+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
		} 
		else 
		{ 
		CString col="name";     
		str=str+and+" "+col+"='"+fdlg.m_strName+"'"; 
		m_strFresh=str; 
		m_bFresh=TRUE; 
		} 
	} 
	m_pSet->Close(); 
	m_pSet->m_strFilter=str; 
	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(); 
 
	UpdateData(FALSE); 
	} 
} 
 
void CHrView::InsertRecord() 
{ 
int recCount=m_pSet->GetRecordCount(); 
CListCtrl*pListCtrl=(CListCtrl*)GetDlgItem(IDC_HR_LIST); 
pListCtrl->DeleteAllItems(); 
m_iRecCount=0; 
pListCtrl->SendMessage(LVM_SETITEMCOUNT,(WPARAM)recCount,(LPARAM)LVSICF_NOINVALIDATEALL); 
for(int i=0;i<1000;i++) 
{ 
pListCtrl->SetTextColor(RGB(255,0,0)); 
pListCtrl->InsertItem(i,m_pSet->m_company); 
pListCtrl->SetItemText(i,1,m_pSet->m_department); 
pListCtrl->SetItemText(i,2,m_pSet->m_name); 
pListCtrl->SetItemText(i,3,m_pSet->m_duty); 
pListCtrl->SetItemText(i,4,m_pSet->m_indata); 
pListCtrl->SetItemText(i,5,m_pSet->m_ID); 
pListCtrl->SetItemText(i,6,m_pSet->m_detail); 
m_iRecCount++; 
if(!m_pSet->IsEOF()) 
m_pSet->MoveNext(); 
 
else 
{ 
m_pSet->MoveFirst(); 
return; 
} 
} 
} 
 
void CHrView::OnPrint(CDC* pDC, CPrintInfo* pInfo)  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	pDC->SetMapMode(MM_TWIPS); 
	CFont font; 
	font.CreateFont(-280,0,0,0,400,FALSE,FALSE,0, 
		ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, 
		DEFAULT_PITCH|FF_MODERN,"Arial"); 
	CFont*pOldFont=(CFont*)(pDC->SelectObject(&font)); 
	PrintHrHeader(pDC,pInfo); 
	 
	CPoint point(720,-1440); 
	for(int i=0;im_company; 
	int y=-1000-i*400; 
	pDC->TextOut(300,y,str); 
	str=m_pSet->m_department; 
	pDC->TextOut(1400,y,str); 
	str=m_pSet->m_name; 
	pDC->TextOut(2300,y,str); 
	str=m_pSet->m_duty; 
	pDC->TextOut(3600,y,str); 
	str=m_pSet->m_indata; 
	pDC->TextOut(5400,y,str); 
	str=m_pSet->m_ID; 
	pDC->TextOut(7400,y,str); 
	str=m_pSet->m_detail; 
	pDC->TextOut(9000,y,str); 
	if(!m_pSet->IsEOF()) 
	{ 
	m_pSet->MoveNext(); 
	} 
	else 
	{ 
	m_pSet->MoveFirst();	 
	} 
	}	 
	CDaoRecordView::OnPrint(pDC, pInfo); 
} 
 
void CHrView::PrintHrHeader(CDC* pDC, CPrintInfo* pInfo) 
{ 
 
CString str(""); 
CPoint point(3800,0); 
pDC->TextOut(point.x,point.y,"The Report of "+m_pSet->m_department); 
TEXTMETRIC textMetric; 
pDC->GetTextMetrics(&textMetric); 
int y=-350-2*textMetric.tmHeight; 
int x=-300-textMetric.tmHeight; 
pDC->MoveTo(0,y); 
pDC->LineTo(14400,y); 
str=CString("公司"); 
pDC->TextOut(300,x,str); 
str=CString("部门"); 
pDC->TextOut(1300,x,str); 
str=CString("姓名"); 
pDC->TextOut(2300,x,str); 
str=CString("职  位"); 
pDC->TextOut(3700,x,str); 
str=CString("入厂日期"); 
pDC->TextOut(5400,x,str); 
str=CString("工  号"); 
pDC->TextOut(7400,x,str); 
str=CString("备注"); 
pDC->TextOut(9000,x,str); 
} 
 
void CHrView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	//pDC->SetMapMode(MM_LOENGLISH); 
	CDaoRecordView::OnPrepareDC(pDC, pInfo); 
} 
 
void CHrView::OnDraw(CDC* pDC)  
{ 
	// TODO: Add your specialized code here and/or call the base class 
 
	 
}