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

📄 txlview.cpp

📁 一套人事管理系统
💻 CPP
字号:
// TXLView.cpp : implementation file
//

#include "stdafx.h"
#include "zhurui_jk02_人事管理.h"
#include "TXLView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTXLView

IMPLEMENT_DYNCREATE(CTXLView, CRecordView)

CTXLView::CTXLView()
	: CRecordView(CTXLView::IDD)
{
	//{{AFX_DATA_INIT(CTXLView)
	m_pSet = NULL;
	m_ADDRESS = _T("");
	m_BEIZHU = _T("");
	m_BIRTHDAY = _T("");
	m_DEPARTMENT = _T("");
	m_EMAIL = _T("");
	m_JOB = _T("");
	m_NAME = _T("");
	m_SEX = _T("");
	m_TEL = _T("");
	m_SECHWAY = -1;
	m_SECHKEY = _T("");
	//}}AFX_DATA_INIT
}

CTXLView::~CTXLView()
{
	if (m_pSet)
		delete m_pSet;
}

void CTXLView::DoDataExchange(CDataExchange* pDX)
{
	CRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTXLView)
	DDX_Control(pDX, IDC_KEYWORD, m_EDIT_KEY);
	DDX_Control(pDX, IDC_COMBO_SEARCH, m_COMBO);
	DDX_Control(pDX, IDC_LIST_MEMBER, m_LIST);
	DDX_Control(pDX, IDC_TREE_GROUP, m_TREE_GROUP);
	DDX_Text(pDX, IDC_ADDRESS, m_ADDRESS);
	DDX_Text(pDX, IDC_BEIZHU, m_BEIZHU);
	DDX_Text(pDX, IDC_BIRTHDAY, m_BIRTHDAY);
	DDX_Text(pDX, IDC_DEPARTMENT, m_DEPARTMENT);
	DDX_Text(pDX, IDC_EMAIL, m_EMAIL);
	DDX_Text(pDX, IDC_JOB, m_JOB);
	DDX_Text(pDX, IDC_NAME, m_NAME);
	DDX_Text(pDX, IDC_SEX, m_SEX);
	DDX_Text(pDX, IDC_TEL, m_TEL);
	DDX_CBIndex(pDX, IDC_COMBO_SEARCH, m_SECHWAY);
	DDX_Text(pDX, IDC_KEYWORD, m_SECHKEY);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTXLView, CRecordView)
	//{{AFX_MSG_MAP(CTXLView)
	ON_WM_CTLCOLOR()
	ON_NOTIFY(NM_CLICK, IDC_TREE_GROUP, OnClickTreeGroup)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_GROUP, OnSelchangedTreeGroup)
	ON_NOTIFY(NM_CLICK, IDC_LIST_MEMBER, OnClickListMember)
	ON_BN_CLICKED(IDC_SHOW, OnShow)
	ON_BN_CLICKED(IDC_ZHAO, OnZhao)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTXLView diagnostics

#ifdef _DEBUG
void CTXLView::AssertValid() const
{
	CRecordView::AssertValid();
}

void CTXLView::Dump(CDumpContext& dc) const
{
	CRecordView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTXLView message handlers

CRecordset* CTXLView::OnGetRecordset()
{
	if (m_pSet != NULL)
		return m_pSet;

	m_pSet = new CTXLSet(NULL);
	m_pSet->Open();

	return m_pSet;
}

CTXLSet* CTXLView::GetRecordset()
{
	CTXLSet* pData = (CTXLSet*) OnGetRecordset();
	ASSERT(pData == NULL || pData->IsKindOf(RUNTIME_CLASS(CTXLSet)));
	return pData;
}


int firstflagx=0;
void CTXLView::OnInitialUpdate()
{
	BeginWaitCursor();
	GetRecordset();
	CRecordView::OnInitialUpdate();
	if (m_pSet->IsOpen())
	{
		CString strTitle = m_pSet->m_pDatabase->GetDatabaseName();
		CString strTable = m_pSet->GetTableName();
		if (!strTable.IsEmpty())
			strTitle += _T(":") + strTable;
		GetDocument()->SetTitle(strTitle);
	}
	EndWaitCursor();

	m_TREE_GROUP.SetBkColor(RGB(0,0,0));
	m_TREE_GROUP.SetTextColor(RGB(0,255,255));
	CDatabase dbtmp0,dbtmp1;
	dbtmp0.Open("sam人事管理");
	dbtmp1.Open("sam人事管理");
	CRecordset rstmp0(&dbtmp0);
	CRecordset rstmp1(&dbtmp1);
	CString strtmp,str1,str2;
	rstmp0.Open(CRecordset::forwardOnly,"select NAME from 部门");
	HTREEITEM root0=m_TREE_GROUP.InsertItem("我的同事",0,1,TVI_ROOT,TVI_LAST);
	while(!rstmp0.IsEOF())
	{
		rstmp0.GetFieldValue("NAME",strtmp);
		strtmp.TrimRight();
		HTREEITEM leaf0=m_TREE_GROUP.InsertItem(strtmp,0,1,root0,TVI_LAST);
//		m_TREE_GROUP.InsertItem("空白",0,1,leaf0,TVI_LAST);
		rstmp1.Open(CRecordset::forwardOnly,"select NAME,ID from 员工 where DEPARTMENT='"+strtmp+"'");
		while(!rstmp1.IsEOF())
		{
			rstmp1.GetFieldValue("NAME",str1);
			rstmp1.GetFieldValue("ID",str2);
			str1.TrimRight();
			str2.TrimRight();
			strtmp.Format("%s|%s",str1,str2);
			m_TREE_GROUP.InsertItem(strtmp,0,1,leaf0,TVI_LAST);
			rstmp1.MoveNext();
		}
		rstmp1.Close();


		rstmp0.MoveNext();
	//	HTREEITEM root1=m_TREE_GROUP.InsertItem("人事部",0,1,TVI_ROOT,TVI_LAST);
	}//一层子节点
	//HTREEITEM sub_son0=m_TREE_GROUP.InsertItem("财务部",0,1,root0,TVI_LAST);
//	HTREEITEM sub_son1=m_TREE_GROUP.InsertItem("设计部",0,1,root1,TVI_LAST);
	//二层孙子节点
//	HTREEITEM sub_m_son0=m_TREE_GROUP.InsertItem("培训部",0,1,sub_son1,TVI_LAST);
	rstmp0.Close();
	dbtmp0.Close();
	dbtmp1.Close();
	


	if(firstflagx==0)
	{
		DWORD dwStyle;
		dwStyle = m_LIST.GetStyle();
		dwStyle |= LVS_EX_GRIDLINES |LVS_SHOWSELALWAYS|LVS_EX_FULLROWSELECT ;
		m_LIST.SetExtendedStyle(dwStyle);
		m_LIST.SetBkColor(RGB(0,0,0));
		m_LIST.SetTextBkColor(RGB(0,0,0));
		m_LIST.SetTextColor(RGB(0,255,255));
		CDatabase dbtmp;
		dbtmp.Open("sam人事管理");
		CRecordset rstmp(&dbtmp);
		rstmp.Open(CRecordset::forwardOnly,"select * from 员工 where DEPARTMENT ='"+m_DEPT+"' ");
		m_LIST.InsertColumn(0,"同事ID",LVCFMT_LEFT,60,0);//设置列	
		m_LIST.InsertColumn(1,"姓名",LVCFMT_LEFT,80,1);	
		m_LIST.InsertColumn(2,"性别",LVCFMT_LEFT,50,2);
		m_LIST.InsertColumn(3,"出生年月",LVCFMT_LEFT,80,3);
		m_LIST.InsertColumn(4,"所属部门",LVCFMT_LEFT,80,4);
		m_LIST.InsertColumn(5,"担任职务",LVCFMT_LEFT,80,1);	
		m_LIST.InsertColumn(6,"现住址",LVCFMT_LEFT,150,4);
		m_LIST.InsertColumn(7,"电话",LVCFMT_LEFT,80,1);	
		m_LIST.InsertColumn(8,"电子邮件",LVCFMT_LEFT,80,2);
		m_LIST.InsertColumn(9,"备注",LVCFMT_LEFT,150,3);
		rstmp.Close();
		dbtmp.Close();
		m_ZHAO.AutoLoad(IDC_ZHAO,this);
		m_SHOW.AutoLoad(IDC_SHOW,this);
		m_EDIT.AutoLoad(IDC_EDIT,this);
		m_ZHAO.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_ZHAO);
		m_SHOW.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_SHOW);
		m_EDIT.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_EDIT);
		firstflagx=1;
	}

	m_SECHWAY=0;
	m_SECHKEY="请输入关键字:";
	UpdateData(FALSE);





	
}

HBRUSH CTXLView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{

	HBRUSH hbr = CRecordView::OnCtlColor(pDC, pWnd, nCtlColor);
	if(nCtlColor   ==   CTLCOLOR_DLG)   
	{   
        //返回对话框的颜色   
		hbr=(HBRUSH)::CreateSolidBrush(RGB(0,255,255));     
	}  
	
	HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH); 
	if(nCtlColor==CTLCOLOR_STATIC)   
	{   
		//让静态文本框透明   
		pDC->SetBkMode(TRANSPARENT);   
		pDC->SetTextColor(RGB(0,255,255));   //设置字体颜色天蓝色   
		HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);  
		return hbr0 ;
	}
	if(nCtlColor==CTLCOLOR_EDIT)   
	{   
		//让静态文本框不透明   
		pDC->SetBkMode(2);   
		pDC->SetBkColor(RGB(0,0,0));
		pDC->SetTextColor(RGB(0,255,255));   //设置字体颜色天蓝色   
		HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);  
		return hbr0 ;
	}   
	return hbr ;
}

void CTXLView::OnClickTreeGroup(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}
CString strtmp;
void CTXLView::OnSelchangedTreeGroup(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	HTREEITEM hsel=m_TREE_GROUP.GetSelectedItem();//得到当前鼠标选择的项目
	m_DEPT=m_TREE_GROUP.GetItemText(hsel);//得到鼠标选中项的字符串
    int i=m_TREE_GROUP.ItemHasChildren(hsel);//判断hsel项是否有子项
	InitList(i);//----
	InitGroup(strtmp);//二者先后顺序不能改变,因为在InitList(i)中strtmp发生了改变,恰好为InitGroup(strtmp)所用
	//MessageBox(m_DEPT);	
	*pResult = 0;
}

void CTXLView::InitList(int i)
{
	m_LIST.DeleteAllItems();
	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	switch(i)
	{
	case 1:
		rs.Open(CRecordset::forwardOnly,"select *  from  员工 where DEPARTMENT='"+m_DEPT+"' ");
		break;
	case 0:
		int n=m_DEPT.Find('|');
		strtmp=m_DEPT.Mid(n+1);
		rs.Open(CRecordset::forwardOnly,"select *  from  员工 where ID='"+strtmp+"' ");
		break;

	}
	CString str;
	if(rs.IsEOF())
	{
		m_LIST.InsertItem(0,"暂无成员");
	}
	else
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("ID", str);
		str.TrimRight();
		m_LIST.InsertItem(0,str);//插入行

		rs.GetFieldValue("NAME",str);
		str.TrimRight();
		m_LIST.SetItemText(0,1,str);

		rs.GetFieldValue("SEX",str);
		str.TrimRight();
		m_LIST.SetItemText(0,2,str);

		rs.GetFieldValue("BIRTHDAY",str);
		str.TrimRight();
		m_LIST.SetItemText(0,3,str);

		if(i==1)
		{
			m_LIST.SetItemText(0,4,m_DEPT);
		}
		else
		{
			rs.GetFieldValue("DEPARTMENT",str);
			str.TrimRight();
			m_LIST.SetItemText(0,4,str);
		}

		rs.GetFieldValue("JOB",str);
		str.TrimRight();
		m_LIST.SetItemText(0,5,str);

		rs.GetFieldValue("ADDRESS",str);
		str.TrimRight();
		m_LIST.SetItemText(0,6,str);

		rs.GetFieldValue("TEL",str);
		str.TrimRight();
		m_LIST.SetItemText(0,7,str);

		rs.GetFieldValue("EMAIL",str);
		str.TrimRight();
		m_LIST.SetItemText(0,8,str);

		rs.GetFieldValue("SHUOMING",str);
		str.TrimRight();
		m_LIST.SetItemText(0,9,str);

		rs.MoveNext();
	}
	rs.Close();
	db.Close();

}

void CTXLView::InitGroup(CString str)
{
	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	rs.Open(CRecordset::forwardOnly,"select * from 员工 where ID = '"+str+"'");
	if(!rs.IsEOF())
	{
		rs.GetFieldValue("NAME",m_NAME);
		rs.GetFieldValue("SEX",m_SEX);
		rs.GetFieldValue("BIRTHDAY",m_BIRTHDAY);
		rs.GetFieldValue("DEPARTMENT",m_DEPARTMENT);
		rs.GetFieldValue("JOB",m_JOB);		
		rs.GetFieldValue("ADDRESS",m_ADDRESS);
		rs.GetFieldValue("TEL",m_TEL);
		rs.GetFieldValue("EMAIL",m_EMAIL);
		rs.GetFieldValue("SHUOMING",m_BEIZHU);
		UpdateData(FALSE);
	}
	rs.Close();
	db.Close();
}

void CTXLView::OnClickListMember(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int i=m_LIST.GetSelectionMark();
	CString strPos;
	strPos=m_LIST.GetItemText(i,0);
	InitGroup(strPos);
	*pResult = 0;
}

void CTXLView::OnShow() 
{
	// TODO: Add your control notification handler code here
	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	rs.Open(CRecordset::forwardOnly,"select * from 员工");
	CString str;
	m_LIST.DeleteAllItems();
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("ID", str);
		str.TrimRight();
		m_LIST.InsertItem(0,str);//插入行
		
		rs.GetFieldValue("NAME",str);
		str.TrimRight();
		m_LIST.SetItemText(0,1,str);
		
		rs.GetFieldValue("SEX",str);
		str.TrimRight();
		m_LIST.SetItemText(0,2,str);
		
		rs.GetFieldValue("BIRTHDAY",str);
		str.TrimRight();
		m_LIST.SetItemText(0,3,str);
		
		rs.GetFieldValue("DEPARTMENT",str);
		str.TrimRight();
		m_LIST.SetItemText(0,4,str);	
		
		rs.GetFieldValue("JOB",str);
		str.TrimRight();
		m_LIST.SetItemText(0,5,str);
		
		rs.GetFieldValue("ADDRESS",str);
		str.TrimRight();
		m_LIST.SetItemText(0,6,str);
		
		rs.GetFieldValue("TEL",str);
		str.TrimRight();
		m_LIST.SetItemText(0,7,str);
		
		rs.GetFieldValue("EMAIL",str);
		str.TrimRight();
		m_LIST.SetItemText(0,8,str);
		
		rs.GetFieldValue("SHUOMING",str);
		str.TrimRight();
		m_LIST.SetItemText(0,9,str);
		
		rs.MoveNext();
	}
	rs.Close();
	db.Close();
}

void CTXLView::OnZhao() 
{
	// TODO: Add your control notification handler code here
	int flag=1;
	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	UpdateData();
	if(m_SECHKEY=="请输入关键字:"||m_SECHKEY=="")
	{
		AfxMessageBox("请输入要查找的关键字!");
		m_EDIT_KEY.SetFocus();
		m_EDIT_KEY.SendMessage(EM_SETSEL,0,-1);
		//this->SendDlgItemMessage(IDC_KEYWORD,EM_SETSEL,0,-1);
		flag=0;
	}
	switch(m_SECHWAY)
	{
	case 0:
		rs.Open(CRecordset::forwardOnly,"select * from 员工 where ID like '%" + m_SECHKEY + "%' ");
		break;
	case 1:
		rs.Open(CRecordset::forwardOnly,"select * from 员工 where NAME like '%" + m_SECHKEY + "%' ");
		break;
	case 2:
		rs.Open(CRecordset::forwardOnly,"select * from 员工 where DEPARTMENT like '%" + m_SECHKEY + "%' ");
		break;
	case 3:
		rs.Open(CRecordset::forwardOnly,"select * from 员工 where EDU_LEVEL like '%" + m_SECHKEY + "%' ");
		break;
	case 4:
		rs.Open(CRecordset::forwardOnly,"select * from 员工 where MAJOR like '%" + m_SECHKEY + "%' ");
		break;
	case 5:
		rs.Open(CRecordset::forwardOnly,"select * from 员工 where JOB like '%" + m_SECHKEY + "%' ");
		break;
	default:
		{
			AfxMessageBox("请选择查询方式!");
			flag=0;
			break;
		}
	}

	if(rs.IsEOF()&&flag==1)
	{
		flag=0;
		MessageBox("没有找到相关记录");
	}
	
	if(flag==1)
	{
		CString str;
		m_LIST.DeleteAllItems();
		while(!rs.IsEOF())
		{
			rs.GetFieldValue("ID", str);
			str.TrimRight();
			m_LIST.InsertItem(0,str);//插入行
			
			rs.GetFieldValue("NAME",str);
			str.TrimRight();
			m_LIST.SetItemText(0,1,str);
			
			rs.GetFieldValue("SEX",str);
			str.TrimRight();
			m_LIST.SetItemText(0,2,str);
			
			rs.GetFieldValue("BIRTHDAY",str);
			str.TrimRight();
			m_LIST.SetItemText(0,3,str);
			
			rs.GetFieldValue("DEPARTMENT",str);
			str.TrimRight();
			m_LIST.SetItemText(0,4,str);	
			
			rs.GetFieldValue("JOB",str);
			str.TrimRight();
			m_LIST.SetItemText(0,5,str);
			
			rs.GetFieldValue("ADDRESS",str);
			str.TrimRight();
			m_LIST.SetItemText(0,6,str);
			
			rs.GetFieldValue("TEL",str);
			str.TrimRight();
			m_LIST.SetItemText(0,7,str);
			
			rs.GetFieldValue("EMAIL",str);
			str.TrimRight();
			m_LIST.SetItemText(0,8,str);
			
			rs.GetFieldValue("SHUOMING",str);
			str.TrimRight();
			m_LIST.SetItemText(0,9,str);
			
			rs.MoveNext();
		}
	}
	rs.Close();
	db.Close();
}

void CTXLView::OnEdit() 
{
	// TODO: Add your control notification handler code here
/*	CDatabase db;
	CRecordset rs(&db);
	db.Open("sam人事管理");
	CString strUser,strSQL;
	rs.Open(CRecordset::forwardOnly,"select ID from 当前用户 where POS=1");
	rs.GetFieldValue("ID",strUser);
	if(strUser=="人事部    ")
	{
		strSQL="update  员工 set NAME='"+m_NAME+"',SEX='"+m_SEX+"',BIRTHDAY='"+m_BIRTHDAY+"',JOB='"+m_JOB+"',\
								 DEPARTMENT='"+m_DEPARTMENT+"',ADDRESS='"+m_ADDRESS+"',TEL='"+m_TEL+"',\
								 EMAIL='"+m_EMAIL+"',SHUOMING='"+m_BEIZHU+"'\
								 where ID='"+strtmp+"' ";
		db.ExecuteSQL(strSQL);
		MessageBox("修改成功!");
	}
	else
	{
		AfxMessageBox("您没有相关权限!");
	}
	*/
}

⌨️ 快捷键说明

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