📄 dlgemployee.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 + -