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

📄 bumenview.cpp

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

#include "stdafx.h"
#include "Renshi.h"
#include "BumenView.h"
#include "BumenEditdlg.h"
#include "MainFrm.h"
#include "Class\Admin.h"

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


extern CAdmin g_curAdmin;
/////////////////////////////////////////////////////////////////////////////
// CBumenView

IMPLEMENT_DYNCREATE(CBumenView, CFormView)

CBumenView::CBumenView()
	: CFormView(CBumenView::IDD)
{
	//{{AFX_DATA_INIT(CBumenView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CBumenView::~CBumenView()
{
}

void CBumenView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBumenView)
	DDX_Control(pDX, IDC_TREE1, m_tree);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBumenView, CFormView)
	//{{AFX_MSG_MAP(CBumenView)
	ON_BN_CLICKED(ID_ADD, OnBtn_Add)
	ON_BN_CLICKED(ID_MODIFY, OnBtn_Modify)
	ON_BN_CLICKED(ID_DELETE, OnBtn_Delete)
	ON_WM_DESTROY()
	ON_WM_SIZE()
	ON_NOTIFY(NM_RCLICK, IDC_TREE1, OnRclickTree1)
	ON_NOTIFY(NM_CLICK, IDC_TREE1, OnClickTree1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBumenView diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CBumenView message handlers

void CBumenView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	if (g_curAdmin.GetUserType() != 1)	//不是超级管理员
	{
		GetDlgItem(ID_ADD)->EnableWindow(FALSE);
		GetDlgItem(ID_MODIFY)->EnableWindow(FALSE);
		GetDlgItem(ID_DELETE)->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_cp.SetParent(this);
	m_cp.AddControl(IDC_TREE1, CP_RESIZE_H | CP_RESIZE_V);
	m_cp.AddControl(ID_ADD,  CP_MOVE_V);	
	m_cp.AddControl(ID_MODIFY,  CP_MOVE_V);	
	m_cp.AddControl(ID_DELETE,  CP_MOVE_V);	
	m_cp.AddControl(IDC_EDIT_ID,CP_MOVE_H);
	m_cp.AddControl(IDC_EDIT_NAME,CP_MOVE_H);
	m_cp.AddControl(IDC_EDIT_UPPERID,CP_MOVE_H);
	m_cp.AddControl(IDC_EDIT_MEMO,CP_MOVE_H|CP_RESIZE_V);
	m_cp.AddControl(IDC_STATIC1,CP_MOVE_H);
	m_cp.AddControl(IDC_STATIC2,CP_MOVE_H);
	m_cp.AddControl(IDC_STATIC3,CP_MOVE_H);
	m_cp.AddControl(IDC_STATIC4,CP_MOVE_H);
	m_cp.AddControl(IDC_STATIC5,CP_MOVE_H | CP_MOVE_V);



}

	
void CBumenView::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 CBumenView::OnBtn_Add() 
{
	HTREEITEM hNode = m_tree.GetSelectedItem();

	CBumenEditDlg dlg;
	dlg.m_strUpper = m_tree.GetItemText(hNode);
	dlg.___UpperID = m_tree.GetItemData(hNode);
	dlg.___BumenID = 0; 

	if(dlg.DoModal() == IDOK)
	{
		HTREEITEM hSelectedItem=m_tree.GetSelectedItem();
		HTREEITEM hChild = m_tree.InsertItem(dlg.m_strBumenName, hSelectedItem); 
		m_tree.SetItemData(hChild, dlg.___BumenID);			//设置新节点的值
		m_tree.Expand(hSelectedItem, TVE_EXPAND);		  //展开hNode节点
	}	
}

void CBumenView::OnBtn_Modify() 
{
	HTREEITEM hNode = m_tree.GetSelectedItem();
	
	if (m_tree.GetItemData(hNode) == 0) 
	{
		MessageBox("不能修改此项");
		return;
	}

	HTREEITEM hParent= m_tree.GetParentItem(hNode);  //读取父节点

	CBumenEditDlg dlg;
	dlg.m_strUpper = m_tree.GetItemText(hParent);
	dlg.___UpperID = m_tree.GetItemData(hParent);
	dlg.___BumenID = m_tree.GetItemData(hNode);
	dlg.___BumenName = m_tree.GetItemText(hNode);
	dlg.m_strBumenName = m_tree.GetItemText(hNode);

	if(dlg.DoModal() == IDOK)
	{
		m_tree.SetItemText(hNode, dlg.m_strBumenName);  //设置当前节点的显示标题
		m_tree.Expand(hNode, TVE_EXPAND);				//展开当前节点
	}	
}

void CBumenView::OnBtn_Delete() 
{
	HTREEITEM hNode = m_tree.GetSelectedItem();  //取得当前节点

	if (m_tree.GetItemData(hNode) == 0) 
	{
		MessageBox("不能删除此项");
		return;
	}

	CString strBumenID;
	strBumenID.Format("%d", m_tree.GetItemData(hNode));	
	if (m_bumen.HaveSon(strBumenID) )
	{
		MessageBox("此部门包含下级部门,不能删除!");
		return;
	}
	if (m_bumen.HaveYg(strBumenID) )
	{
		MessageBox("此部门包含员工,不能删除!");
		return;
	}

	if (MessageBox("是否删除当前部门?", "请确认", MB_YESNO) == IDYES)
	{
		m_bumen.sql_delete(strBumenID);   //删除表Bumen中的指定记录
		m_tree.DeleteItem(hNode);		  //删除Tree控件中的当前节点
	}	
}


void CBumenView::OnDestroy() 
{
	CFormView::OnDestroy();

	((CMainFrame*)AfxGetMainWnd())->m_pBumenView=NULL;
	delete ((CMainFrame*)AfxGetMainWnd())->m_pBumenView;
}

void CBumenView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
	m_cp.MoveControls();		
}

void CBumenView::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	
	CPoint pt;
	::GetCursorPos(&pt);

	CMenu menu;
	menu.LoadMenu(IDR_BUMEN_MENU);
	CMenu* pMenu=menu.GetSubMenu(0);
	pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this,NULL);
	
	*pResult = 0;
}

void CBumenView::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CString strBumenID;
	strBumenID.Format("%d",m_tree.GetItemData(m_tree.GetSelectedItem()));

	CBumen bm;
	bm.GetData(strBumenID);

	SetDlgItemText(IDC_EDIT_ID,strBumenID);
	SetDlgItemText(IDC_EDIT_NAME,bm.GetBumenName());
	SetDlgItemText(IDC_EDIT_UPPERID, m_tree.GetItemText(m_tree.GetParentItem(m_tree.GetSelectedItem())));
	SetDlgItemText(IDC_EDIT_MEMO,bm.GetDescribe());
	

		
	*pResult = 0;
}

 

⌨️ 快捷键说明

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