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

📄 dlgemployee.cpp

📁 航空公司简单考勤系统:主要运用指纹管理深圳航空公司的会议签到管理系统
💻 CPP
字号:
// DlgEmployee.cpp : implementation file
//

#include "stdafx.h"
#include "Demo_airline.h"
#include "DlgEmployee.h"
#include "DlgMeetDefine.h"
#include "DlgEmpInfo.h"
#include "DlgDepart.h"

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

extern CDemo_airlineApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CDlgEmployee property page

IMPLEMENT_DYNCREATE(CDlgEmployee, CPropertyPage)

CDlgEmployee::CDlgEmployee() : CPropertyPage(CDlgEmployee::IDD)
{
	//{{AFX_DATA_INIT(CDlgEmployee)
	m_strEmpNo = _T("");
	//}}AFX_DATA_INIT
}

CDlgEmployee::~CDlgEmployee()
{
}

void CDlgEmployee::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgEmployee)
	DDX_Control(pDX, IDC_PIC, m_Pic);
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Text(pDX, IDC_EDT_EMPID, m_strEmpNo);
	DDV_MaxChars(pDX, m_strEmpNo, 6);
	DDX_Control(pDX, IDC_TREE_DEPARTMENT, m_c_tcDepartment);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgEmployee, CPropertyPage)
	//{{AFX_MSG_MAP(CDlgEmployee)
	ON_BN_CLICKED(IDC_BTNLOW, OnBtnsm)
	ON_BN_CLICKED(IDC_BTN_EMP_ADD, OnBtnEmpAdd)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_BTN_FINDEMP, OnBtnFindemp)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_DEPARTMENT, OnClickTreeDepartment)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgEmployee message handlers

void CDlgEmployee::OnBtnsm() 
{
	// TODO: Add your control notification handler code here
    CDlgDepart dlg;
    if(IDOK == dlg.DoModal())
    {
		char szParentID[10] = {0};
        if(TRUE == m_oDepartmentTree.FindDepartmentID(dlg.m_strDepartID))
        {
            MessageBox("输入部门ID错误或者重复,请检查后再输入。", "错误");
            return;
        }
        m_oDepartmentTree.GetSelDepartmentID(&m_c_tcDepartment, szParentID);
        m_oDepartmentTree.InsertDepartment(szParentID, dlg.m_strDepartID, dlg.m_strDepartName);
        m_oDepartmentTree.ReadDepartment(&m_c_tcDepartment);
    }
}

BOOL CDlgEmployee::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	DWORD dwStyle = GetWindowLong(m_list.GetSafeHwnd(),GWL_STYLE);
	dwStyle |= LVS_REPORT;
	SetWindowLong(m_list.GetSafeHwnd(),GWL_STYLE,dwStyle);
	m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_TRACKSELECT);

    CRect rectList;
	m_list.GetClientRect(&rectList);
	m_list.InsertColumn(0,"编号",LVCFMT_CENTER,rectList.Width()/5);
	m_list.InsertColumn(1,"姓名",LVCFMT_CENTER,rectList.Width()/5);
	m_list.InsertColumn(2,"性别",LVCFMT_CENTER,rectList.Width()/5);
	m_list.InsertColumn(3,"职务",LVCFMT_CENTER,rectList.Width()/5);
	m_list.InsertColumn(4,"民族",LVCFMT_CENTER,rectList.Width()/5);
	
	m_pRecordEmp.CreateInstance(__uuidof(Recordset));
	m_oDepartmentTree.InitImageList(&m_c_tcDepartment);
	m_oDepartmentTree.ReadDepartment(&m_c_tcDepartment);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgEmployee::OnBtnEmpAdd() 
{
    CDlgEmpInfo dlg;
	dlg.DoModal();
}

void CDlgEmployee::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	LPNMLISTVIEW temp = (LPNMLISTVIEW)pNMHDR;
	int nIndex = -1;
	nIndex = temp->iItem ;

	//取出员工图片
	if(nIndex >= 0)
	{
      CString strEmpNo = m_list.GetItemText(nIndex,0);
	  if(!strEmpNo.IsEmpty())
	  {
		  try
		  {
			  CString strSql;
			  strSql.Format("select PicPath from Employee where EmployeeID = '%s'",strEmpNo);

			  m_pRecordEmp->Open(strSql.AllocSysString(),
			                    theApp.m_pConnection.GetInterfacePtr(),
								adOpenDynamic,
								adLockOptimistic,
								adCmdText);
			  _variant_t var = m_pRecordEmp->GetCollect("PicPath");
			  if(VT_NULL != var.vt)
			  {
                m_strPicPath = (LPCSTR)_bstr_t(var);
				if(m_Pic.Load(m_strPicPath))
					m_Pic.Draw();
			  }

			  m_pRecordEmp->Close();
		  }
		  catch(_com_error e)
		  {
			  e.Description();
		  }
		  
		  
	  }
	}
	*pResult = 0;
}

void CDlgEmployee::OnBtnFindemp() 
{
   UpdateData(TRUE);
   
   m_list.DeleteAllItems();
   try
   {
	   CString strSql;
	   strSql.Format("select * from Employee where EmployeeID = '%s'",m_strEmpNo);
       m_pRecordEmp->Open(strSql.AllocSysString(),
			                    theApp.m_pConnection.GetInterfacePtr(),
								adOpenDynamic,
								adLockOptimistic,
								adCmdText);
	   _variant_t var = m_pRecordEmp->GetCollect("EmployeeID");
	   if(VT_NULL != var.vt)
	   {
		   CString strItem;
		   LVITEM lvi;
		   lvi.mask = LVIF_TEXT;
		   lvi.iItem = m_list.GetItemCount();
		   lvi.iSubItem = 0;
		   strItem = (LPCSTR)_bstr_t(var);
		   lvi.pszText = (LPSTR)(LPCTSTR)strItem;
		   m_list.InsertItem(&lvi);

		   lvi.iSubItem = 1;
		   strItem = _T("");
		   var = m_pRecordEmp->GetCollect("EmployeeName");
		   if(VT_NULL != var.vt )
		    strItem = (LPCSTR)_bstr_t(var); 
		   lvi.pszText = (LPSTR)(LPCTSTR)strItem;
		   m_list.SetItem(&lvi);

		   lvi.iSubItem = 2;
		   strItem = _T("");
		   var = m_pRecordEmp->GetCollect("Sex");
		   if(VT_NULL != var.vt )
		     strItem = (LPCSTR)_bstr_t(var); 
		   lvi.pszText = (LPSTR)(LPCTSTR)strItem;
		   m_list.SetItem(&lvi);

		   lvi.iSubItem = 3;
		   strItem = _T("");
		   var = m_pRecordEmp->GetCollect("Position");
		   if(VT_NULL != var.vt )
		     strItem = (LPCSTR)_bstr_t(var); 
		   lvi.pszText = (LPSTR)(LPCTSTR)strItem;
		   m_list.SetItem(&lvi);

		   lvi.iSubItem = 4;
		   lvi.pszText = _T("");
		   var = m_pRecordEmp->GetCollect("Nationality");
		   if(VT_NULL != var.vt )
		     strItem = (LPCSTR)_bstr_t(var); 
		   lvi.pszText = (LPSTR)(LPCTSTR)strItem;
		   m_list.SetItem(&lvi);
           
		   var = m_pRecordEmp->GetCollect("PicPath");
		   if(VT_NULL != var.vt)
		   {
			   m_strPicPath = (LPSTR)(LPCTSTR)_bstr_t(var.bstrVal);
			   if(m_Pic.Load(m_strPicPath))
				   m_Pic.Draw();
		   }
	   }
   }
   catch(_com_error e)
   {
	   e.Description();
   }
}

//列举该部门所有员工
void CDlgEmployee::ListDepartEmp(LPCTSTR lpszDepartID)
{
	try
	{
		CString strSql;
		strSql.Format("select * from Employee where DepartmentID = '%s'",lpszDepartID);
        
		m_pRecordEmp->Open(strSql.AllocSysString(),
			                    theApp.m_pConnection.GetInterfacePtr(),
								adOpenDynamic,
								adLockOptimistic,
								adCmdText);
		//m_pRecordEmp->MoveFirst();
		int nRow = m_list.GetItemCount();

		while(!m_pRecordEmp->adoEOF)
		{
			CString strItem = _T("");
            LVITEM lvi;
			lvi.mask = LVIF_TEXT;
			lvi.iItem = nRow;
			lvi.iSubItem = 0;
			_variant_t var = m_pRecordEmp->GetCollect("EmployeeID");
			strItem = (LPCSTR)_bstr_t(var);
			lvi.pszText = (LPSTR)(LPCTSTR)strItem;
			m_list.InsertItem(&lvi);
   
			lvi.iSubItem = 1;
		    var = m_pRecordEmp->GetCollect("EmployeeName");
			strItem = (LPCSTR)_bstr_t(var);
			lvi.pszText = (LPSTR)(LPCTSTR)strItem;
			m_list.SetItem(&lvi);

			lvi.iSubItem = 2;
			var = m_pRecordEmp->GetCollect("Sex");
			strItem = (LPCSTR)_bstr_t(var);
			lvi.pszText = (LPSTR)(LPCTSTR)strItem;
			m_list.SetItem(&lvi);

			lvi.iSubItem = 3;
			var = m_pRecordEmp->GetCollect("Position");
			strItem = (LPCSTR)_bstr_t(var);
			lvi.pszText = (LPSTR)(LPCTSTR)strItem;
			m_list.SetItem(&lvi);

			lvi.iSubItem = 4;
			var = m_pRecordEmp->GetCollect("Nationality");
			strItem = (LPCSTR)_bstr_t(var);
			lvi.pszText = (LPSTR)(LPCTSTR)strItem;
			m_list.SetItem(&lvi);
            
			nRow++;
			m_pRecordEmp->MoveNext();
		}
		m_pRecordEmp->Close();
	}
	catch(_com_error e)
	{
		e.Description();
	}
}

void CDlgEmployee::OnClickTreeDepartment(NMHDR* pNMHDR, LRESULT* pResult) 
{
	m_list.DeleteAllItems();
	char* pszDepartID = new char[10];
	memset(pszDepartID,0,10);

    LPNMTREEVIEW temp = (LPNMTREEVIEW)pNMHDR;

	HTREEITEM hTreeItem = temp->itemNew.hItem;
	CString strItemCaption = temp->itemNew.pszText;

	m_oDepartmentTree.GetDepartmentID(&m_c_tcDepartment,hTreeItem,pszDepartID);
	if(strlen(pszDepartID) == 0) 
		MessageBox("请选中具体的部门!");
	else
	{
		ListDepartEmp(pszDepartID);
	}

	delete []pszDepartID;

	*pResult = 0;
}

⌨️ 快捷键说明

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