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

📄 yuangongview.cpp

📁 企业之间的竞争主要体现在三个方面:产品市场的竞争、资金市场的竞争和人才市场的竞争。在网络经济的环境下
💻 CPP
字号:
// YuangongView.cpp : implementation file
//

#include "stdafx.h"
#include "Renshi.h"
#include "YuangongView.h"
#include "MainFrm.h"
#include "Class\Yuangong.h"
#include "Class\Admin.h"
#include "Control\Columns.h"
#include "Control\Column.h"
#include "Control\_recordset.h"
#include "yuangongeditdlg.h"
#include "YuangongDiaozhuanDlg.h"
#include "YuangongFamilyDlg.h"
#include "YuangongjingliDlg.h"

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

extern CAdmin g_curAdmin;
extern CRenshiApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CYuangongView

IMPLEMENT_DYNCREATE(CYuangongView, CFormView)

CYuangongView::CYuangongView()
	: CFormView(CYuangongView::IDD)
{
	//{{AFX_DATA_INIT(CYuangongView)
	//}}AFX_DATA_INIT
}

CYuangongView::~CYuangongView()
{
}

void CYuangongView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CYuangongView)
	DDX_Control(pDX, IDC_TREE1, m_tree);
	DDX_Control(pDX, IDC_TYPE_COMBO, m_combo);
	DDX_Control(pDX, IDC_ADODC1, m_Adodc);
	DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CYuangongView, CFormView)
	//{{AFX_MSG_MAP(CYuangongView)
	ON_WM_DESTROY()
	ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)
	ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
	ON_BN_CLICKED(IDC_TRANSFER_BUTTON, OnTransferButton)
	ON_BN_CLICKED(IDC_FAMILY_BUTTON, OnFamilyButton)
	ON_BN_CLICKED(IDC_EXP_BUTTON, OnExpButton)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_BUTTON_XML, OnButtonXml)
	ON_BN_CLICKED(IDC_REFRESH_BUTTON, OnRefreshButton)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CYuangongView diagnostics

#ifdef _DEBUG
void CYuangongView::AssertValid() const
{
	CFormView::AssertValid();
}

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

/////////////////////////////////////////////////////////////////////////////
// CYuangongView message handlers

void CYuangongView::OnDestroy() 
{
	CFormView::OnDestroy();
	
	((CMainFrame*)AfxGetMainWnd())->m_pYgView=NULL;
	delete ((CMainFrame*)AfxGetMainWnd())->m_pYgView;

}
	
void CYuangongView::AddtoTree(HTREEITEM m_hNode, int UpperID)
{
	HTREEITEM m_hChild;

	for(int i=0; i<m_Bumen.a_UpperID.GetSize(); i++)
	{
		if (UpperID == atoi(m_Bumen.a_UpperID.GetAt(i)))						// 打开a_UpperID数组中等于UpperID的元素
		{
			m_hChild = m_tree.InsertItem(m_Bumen.a_BumenName.GetAt(i), m_hNode);	// 表明此元素为当前根节点的子节点,因此将其添加到Tree控件中,新节点为m_hChild
			m_tree.SetItemData(m_hChild, atol(m_Bumen.a_BumenID.GetAt(i)));		// 使用SetItemData()函数将部门编号值也保存在新节点中
			m_tree.Expand(m_hNode,TVE_EXPAND);
			AddtoTree(m_hChild, atoi(m_Bumen.a_BumenID.GetAt(i)));				// 以新节点为根节点,再次递归调用AddtoTree()函数,将其子节点添加到Tree控件中
		}
	}
}


void CYuangongView::Refresh_Data()
{
	UpdateData(TRUE);		//从Tree控件中读取部门编号信息

	HTREEITEM node = m_tree.GetSelectedItem();
	int iBumenID = m_tree.GetItemData(node);
	
	//根据部门编号设置SELECT语句
	CString cBumenID;
	cBumenID.Format("%d", iBumenID);
	CString cSource = "SELECT yg_ID,					\
					   yg_Name AS 姓名,					\
					   Sex AS 性别,						\
					   Political_Party AS 政治面貌,		\
					   Culture_Level as 文化程度,		\
					   Position AS 岗位,				\
					   Title AS 职务, MEMO AS 备注信息 FROM Yuangong WHERE BumenID=" + cBumenID;

	//读取员工状态值,并根据它生成SELECT语句的条件
	int iType = m_combo.GetCurSel();
	CString cType;
	cType.Format("%d", iType);
	if (iType > 0)
		cSource += " AND State=" + cType;

	m_Adodc.SetRecordSource(cSource);		//刷新ADO Data控件的记录源
	m_Adodc.Refresh();

	//设置列宽度
	m_datagrid.GetColumns().GetItem((_variant_t)long(0)).SetWidth(0);
	m_datagrid.GetColumns().GetItem((_variant_t)long(1)).SetWidth(50);
	m_datagrid.GetColumns().GetItem((_variant_t)long(2)).SetWidth(30);
	m_datagrid.GetColumns().GetItem((_variant_t)long(3)).SetWidth(57);
	m_datagrid.GetColumns().GetItem((_variant_t)long(4)).SetWidth(60);
	m_datagrid.GetColumns().GetItem((_variant_t)long(5)).SetWidth(60);
	m_datagrid.GetColumns().GetItem((_variant_t)long(6)).SetWidth(60);
	m_datagrid.GetColumns().GetItem((_variant_t)long(6)).SetWidth(100);

}

void CYuangongView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	if (g_curAdmin.GetUserType() != 1)
	{
		GetDlgItem(IDC_ADD_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_TRANSFER_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_EXP_BUTTON)->EnableWindow(FALSE);
		GetDlgItem(IDC_FAMILY_BUTTON)->EnableWindow(FALSE);
	}

	m_Bumen.LoadBumenInfo();		//装入部门信息
	
/*-------------------------------------------------------------*/	
	m_imageList.Create(16,16,ILC_COLOR24,1,0); //创建图象列表
	m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));  
	m_tree.SetImageList(&m_imageList, LVSIL_NORMAL);
	
	m_hRoot = m_tree.InsertItem("人事管理系统--部门信息");  
	AddtoTree(m_hRoot, 0);
	m_tree.Expand(m_hRoot, TVE_EXPAND); 
/*-------------------------------------------------------------*/

	m_tree.SelectItem(m_hRoot);
	m_combo.SetCurSel(0);

	m_cp.SetParent(this);
	m_cp.AddControl(IDC_TREE1,CP_RESIZE_V);
	m_cp.AddControl(IDC_DATAGRID1, CP_RESIZE_H | CP_RESIZE_V);
/*	m_cp.AddControl(IDC_ADD_BUTTON, CP_MOVE_H |CP_MOVE_V);
	m_cp.AddControl(IDC_MODI_BUTTON, CP_MOVE_H |CP_MOVE_V);
	m_cp.AddControl(IDC_DEL_BUTTON, CP_MOVE_H |CP_MOVE_V);
	m_cp.AddControl(IDC_TRANSFER_BUTTON, CP_MOVE_H |CP_MOVE_V);
	m_cp.AddControl(IDC_FAMILY_BUTTON, CP_MOVE_H |CP_MOVE_V);
	m_cp.AddControl(IDC_EXP_BUTTON, CP_MOVE_H |CP_MOVE_V);
	m_cp.AddControl(IDC_SHUT, CP_MOVE_H |CP_MOVE_V); */
}

void CYuangongView::OnSelchangeTypeCombo() 
{
	Refresh_Data();	
}

void CYuangongView::OnAddButton() 
{
	UpdateData(TRUE);

	HTREEITEM node= m_tree.GetSelectedItem(); //取得当前节点值
	int iBumenID = m_tree.GetItemData(node);
	if (iBumenID == 0) 
	{
		MessageBox("不能在根节点添加员工");
		return;
	}

	CYuangongEditDlg dlg;
	dlg.YgID = 0;			//员工编号为0,表示添加
	dlg.BumenID = iBumenID; //部门编号
	dlg.cSex = "男";		//性别初始化为男
	dlg.iState = m_combo.GetCurSel()==0? 1 : m_combo.GetCurSel();  //根据当前的员工类型设置编辑对话框中的员工类型
	dlg.m_Birth = CTime::GetCurrentTime();
	dlg.m_HireDate =CTime::GetCurrentTime();

	if (dlg.DoModal() == IDOK)
		Refresh_Data();
}

void CYuangongView::OnModiButton() 
{
	UpdateData(TRUE);

	if (m_Adodc.GetRecordset().GetEof())
	{
		MessageBox("请选择要修改的记录!");
		return;
	}

	//读取选择员工的记录
	CYuangong Yg;
	Yg.GetData(m_datagrid.GetItem(0));

	
	//将员工数据读取到编辑对话框中
	CYuangongEditDlg dlg;
	dlg.YgID = Yg.Getyg_ID();
	dlg.YgName = Yg.Getyg_Name();
	dlg.BumenID = Yg.GetBumenID();
	dlg.UpperID = Yg.GetUpperID();
	dlg.m_YgName = Yg.Getyg_Name();
	dlg.cSex = Yg.GetSex();
	dlg.m_Nation = Yg.GetNationality();
	
	int yy=atoi(Yg.GetBirth().Left(4));			//设置日期数据
	int mm=atoi(Yg.GetBirth().Mid(6,2));
	int dd=atoi(Yg.GetBirth().Right(2));
	CTime t(yy,mm,dd,0,0,0);
	dlg.m_Birth = t;

	dlg.m_Marital = Yg.GetMarital_Condition();
	dlg.m_Political = Yg.GetPolitical_Party();
	dlg.m_Culture = Yg.GetCulture_Level();
	dlg.m_Family = Yg.GetFamily_Place();
	dlg.m_Badge = Yg.GetBadgeID();
	dlg.m_IDcard = Yg.GetID_Card();
	dlg.m_Office = Yg.GetOffice_phone();
	dlg.m_Mobile = Yg.GetMobile();
	dlg.m_File = Yg.GetFiles_Keep_Org();
	dlg.m_Hukou = Yg.GetHukou();


	yy=atoi(Yg.GetHireDate().Left(4));		  //设置日期数据
	mm=atoi(Yg.GetHireDate().Mid(6,2));
	dd=atoi(Yg.GetHireDate().Right(2));
	CTime tt(yy,mm,dd,0,0,0);
	dlg.m_HireDate = tt;
	
	dlg.m_Position = Yg.GetPosition();
	dlg.m_Title = Yg.GetTitle();
	dlg.m_Contract = Yg.GetContract_Duration();
	dlg.iState = Yg.GetState();
	dlg.m_Memo = Yg.GetMemo();
	dlg.m_Fillperson = Yg.GetFillAdmin();
	dlg.m_Filltime = Yg.GetFillDate();

	if (dlg.DoModal() == IDOK)
		Refresh_Data();	
}

void CYuangongView::OnDelButton() 
{
	if (m_Adodc.GetRecordset().GetEof())
	{
		MessageBox("请选择要删除的记录!");
		return;
	}
	//读取选择员工的记录
	if (MessageBox("是否删除当前记录?","请确认", MB_YESNO) == IDYES)
	{
		CYuangong Yg;
		Yg.sql_delete(m_datagrid.GetItem(0));
		Refresh_Data();
	}		
}

void CYuangongView::OnTransferButton() 
{
	if (m_Adodc.GetRecordset().GetEof())
	{
		MessageBox("请选择记录!");
		return;
	}
	//读取选择员工的记录
	CYuangong Yg;
	Yg.GetData(m_datagrid.GetItem(0));
	CString cBumenID;
	cBumenID.Format("%d", Yg.GetBumenID());
	CBumen Bumen;
	m_Bumen.GetData(cBumenID);

	//将员工数据读取到调转对话框中
	CYuangongDiaozhuanDlg dlg;
	dlg.m_Old = m_Bumen.GetBumenName();
	dlg.BumenID = Yg.GetBumenID();
	dlg.cYgID = m_datagrid.GetItem(0);
	if (dlg.DoModal() == IDOK)
		Refresh_Data();	

}

void CYuangongView::OnFamilyButton() 
{

	if (m_Adodc.GetRecordset().GetEof())
	{
		MessageBox("请选择记录!");
		return;
	}
	//读取选择员工的记录
	CYuangongFamilyDlg dlg;
	dlg.iYgID = atoi(m_datagrid.GetItem(0));
	dlg.m_YgName = m_datagrid.GetItem(1);
	dlg.DoModal();
}

void CYuangongView::OnExpButton() 
{
	if (m_Adodc.GetRecordset().GetEof())
	{
		MessageBox("请选择记录!");
		return;
	}
	//读取选择员工的记录
	CYuangongjingliDlg dlg;
	dlg.iYgID = atoi(m_datagrid.GetItem(0));
	dlg.m_YgName = m_datagrid.GetItem(1);
	dlg.DoModal();	
}

void CYuangongView::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	Refresh_Data();

	*pResult = 0;

}

void CYuangongView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	

	m_cp.MoveControls();
}




void CYuangongView::OnButtonXml() 
{
/*------------------------------SQL语句-----------------------------------------------*/
	UpdateData(TRUE);		//从Tree控件中读取部门编号信息

	HTREEITEM node = m_tree.GetSelectedItem();
	int iBumenID = m_tree.GetItemData(node);
	
	CString cBumenID;
	cBumenID.Format("%d", iBumenID);
	CString cSource = "SELECT yg_ID,					\
					   yg_Name AS 姓名,					\
					   Sex AS 性别,						\
					   Political_Party AS 政治面貌,		\
					   Culture_Level as 文化程度,		\
					   Position AS 岗位,				\
					   Title AS 职务, MEMO AS 备注信息 FROM Yuangong ";
	if(iBumenID !=0)	//如果选择的是树控件的第一个结点,就保存所有员工的信息
		cSource = cSource+ "WHERE BumenID=" + cBumenID;

	//读取员工状态值,并根据它生成SELECT语句的条件
	int iType = m_combo.GetCurSel();
	CString cType;
	cType.Format("%d", iType);
	if (iType > 0)
		cSource += " AND State=" + cType;
/*-------------------------------------------------------------------------------*/


	_RecordsetPtr pRS =theApp.m_ado.GetRS(cSource);		//执行SQL语句获取记录集
	
	
	char BASED_CODE szFilter[] = "XML Files (*.xml)|*.xml|All Files (*.*)|*.*||";
	CFileDialog dlg(FALSE,"XML",m_tree.GetItemText(node),  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
	if (dlg.DoModal() == IDOK)
	{
		try
		{
			pRS->Save(_bstr_t(dlg.GetPathName()), adPersistXML);
		}
		catch (_com_error e)
		{
			TRACE(_T("Warning: Save 发生异常. 错误信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
		} 

	}	
	
}

void CYuangongView::OnRefreshButton() 
{
	m_tree.DeleteAllItems();

	m_Bumen.LoadBumenInfo();		//装入部门信息

	m_hRoot = m_tree.InsertItem("人事管理系统--部门信息");  
	AddtoTree(m_hRoot, 0);
	m_tree.Expand(m_hRoot, TVE_EXPAND); 

	m_tree.SelectItem(m_hRoot);


}

⌨️ 快捷键说明

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