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

📄 deptinfodlg.cpp

📁 人力资源管理系统
💻 CPP
字号:
// DeptInfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "hrms.h"
#include "DeptInfoDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDeptInfoDlg dialog


CDeptInfoDlg::CDeptInfoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDeptInfoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDeptInfoDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_Enlarge = FALSE;
	m_CurSelItem  = -1;
	m_IsModify = FALSE;
}


void CDeptInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDeptInfoDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDeptInfoDlg, CDialog)
	//{{AFX_MSG_MAP(CDeptInfoDlg)
	ON_BN_CLICKED(IDC_DUTYLIST, OnDutylist)
	ON_BN_CLICKED(ID_APPEND, OnAppend)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_LBN_SELCHANGE(IDC_LIST2, OnSelchangeList2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDeptInfoDlg message handlers

void CDeptInfoDlg::OnDutylist() 
{
	// TODO: Add your control notification handler code here
	if(m_Enlarge)
	{
		SetEnlarge(FALSE);
		m_Enlarge = FALSE;
		SetDlgItemText(IDC_DUTYLIST, ">>");
	}
	else
	{
		SetEnlarge(TRUE);
		m_Enlarge = TRUE;
		SetDlgItemText(IDC_DUTYLIST, "<<");
	}
}

BOOL CDeptInfoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if(m_IsModify && !m_DeptName.IsEmpty())
	{
		ShowDeptInfo(m_DeptName);
		ShowDutyList();
		return TRUE;
	}
	RECT rcDlg, rcEdge;
	GetWindowRect(&rcDlg);
	GetDlgItem(IDC_EDGE)->GetWindowRect(&rcEdge);
	m_EnlargeWidth = rcDlg.right - rcEdge.left;
	SetEnlarge(FALSE);

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

void CDeptInfoDlg::SetEnlarge(BOOL isEnlarge)
{
	RECT rcDlg = {0};
	if(isEnlarge)
	{
		GetWindowRect(&rcDlg);
		rcDlg.right = rcDlg.right + m_EnlargeWidth;
		MoveWindow(&rcDlg);
	}
	else if(!isEnlarge)
	{
		GetWindowRect(&rcDlg);
		rcDlg.right = rcDlg.right - m_EnlargeWidth;
		MoveWindow(&rcDlg);
	}
}

void CDeptInfoDlg::OnAppend() 
{
	// TODO: Add your control notification handler code here
	if(m_IsModify)
	{
		if(SaveModify(m_DeptName))
			MessageBox("保存成功!");
		return ;
	}
	CADOOperation dbo;
	CString name, show, str;
	BOOL ret;

	GetDlgItemText(IDC_EDIT1, name);
	GetDlgItemText(IDC_EDIT3, show);
	if(name.IsEmpty())
	{
		MessageBox("请绐该部门取一个合适的名字!");
		return ;
	}
	if(show.IsEmpty())
	{
		MessageBox("请简要介绍一下您的部门!");
		return ;
	}
	dbo.OpenTable("tb_dept");
	dbo.AddNew();
	ret = dbo.SetItemContent("dept_name", CADOOperation::ADO_TYPE_STRING, &name);
	if(!ret)
	{
		dbo.CloseTable();
		return ;
	}
	ret = dbo.SetItemContent("dept_show", CADOOperation::ADO_TYPE_STRING, &show);
	if(!ret)
	{
		dbo.CloseTable();
		return ;
	}
	ret = dbo.UpdateData();
	if(!ret)
	{
		dbo.CloseTable();
		return ;
	}

	dbo.CloseTable();
	ret = MessageBox("保存成功!\n是否为该部门添加职务?", "注意", MB_ICONQUESTION | MB_YESNO);
	if(IDYES == ret)
	{
		OnDutylist();
		return;
	}
	else if(ret = IDNO)
	{
		EndDialog(0);
		return ;
	}
}

DWORD CDeptInfoDlg::GetCurNum()
{
	DWORD num = 0;
	CADOOperation dbo;
	dbo.OpenRecordset("select max(dept_id) from tb_dept");
	num = (long)dbo.GetSubItem(0);
	dbo.CloseTable();

	return num;
}

void CDeptInfoDlg::OnAdd() 
{
	// TODO: Add your control notification handler code here
	CADOOperation dbo;
	CString str;
	GetDlgItemText(IDC_EDIT1, str);
	if(str.IsEmpty())
	{
		MessageBox("部门名称不能为空!", "提示");
		return ;
	}
	DWORD curNum = GetCurNum();

	dbo.OpenTable("tb_dept_duty");
	dbo.AddNew();
	GetDlgItemText(IDC_EDIT4, str);
	if(str.IsEmpty())
	{
		MessageBox("职务不能为空!", "提示");
		return ;
	}
	dbo.SetItemContent("dept_id", CADOOperation::ADO_TYPE_INT, &curNum);
	dbo.SetItemContent("duty_name", CADOOperation::ADO_TYPE_STRING, &str);

	dbo.UpdateData();
	dbo.CloseTable();
	ShowDutyList();

	GetDlgItem(IDC_EDIT4)->SetFocus();
	((CEdit*)GetDlgItem(IDC_EDIT4))->SetSel(0, -1);
	
}

void CDeptInfoDlg::OnDel() 
{
	// TODO: Add your control notification handler code here
	CString str, sql;
	if(m_CurSelItem < 0)
	{
		MessageBox("请选择一个要删除的项!");
		m_CurSelItem = -1;
		return ;
	}
	((CListBox*)GetDlgItem(IDC_LIST2))->GetText(m_CurSelItem, str);
	CADOOperation duty;
	sql.Format("delete from tb_dept_duty where duty_name = '%s' ",str);
	try{
		duty.OpenRecordset(sql);
	}catch(_com_error e)
	{
		MessageBox(e.Description());
	}
	duty.CloseRecorset();

	ShowDutyList();
}

BOOL CDeptInfoDlg::SetRow(int row, CString *strArray, int count)
{
	CListBox * list;
	list = (CListBox *)GetDlgItem(IDC_LIST2);
	list->AddString(strArray->GetBuffer(0));
	return TRUE;
}

BOOL CDeptInfoDlg::DeleteAllRows()
{
	CListBox * list;
	list = (CListBox *)GetDlgItem(IDC_LIST2);
	list->ResetContent();
	return TRUE;
}

BOOL CDeptInfoDlg::ShowDutyList()
{
	CString sql, fields[1];
	CString str;
	GetDlgItemText(IDC_EDIT1, str);
	sql.Format("select duty_name from tb_dept_duty where dept_id = %d", CFileRecord::GetDeptNumber(str));

	CADOOperation duty;
	duty.OpenRecordset(sql);
	fields[0] = "duty_name";
 	duty.ShowADOView(fields, 1, this);
	duty.CloseRecorset();
	return TRUE;
}

void CDeptInfoDlg::OnSelchangeList2() 
{
	// TODO: Add your control notification handler code here
	m_CurSelItem  = ((CListBox *)GetDlgItem(IDC_LIST2))->GetCurSel();
}

void CDeptInfoDlg::SetEditable(BOOL isModify)
{
	m_IsModify = isModify;
}

void CDeptInfoDlg::SetDeptName(CString name)
{
	m_DeptName = name;
}

BOOL CDeptInfoDlg::ShowDeptInfo(CString name)
{
	CADOOperation dept;
	CString sql, buf;
	sql.Format("select dept_show from tb_dept where dept_name = '%s'", name);
	dept.OpenRecordset(sql);;
	SetDlgItemText(IDC_EDIT1, name);
	dept.GetItemContent("dept_show", CADOOperation::ADO_TYPE_STRING, &buf);
	SetDlgItemText(IDC_EDIT3, buf);
	dept.CloseRecorset();
	SetDlgItemText(ID_APPEND, "保存");

	return TRUE;
}

BOOL CDeptInfoDlg::SaveModify(CString name)
{
	CADOOperation dept;
	CString sql, str;
	sql.Format("select * from tb_dept where dept_name = '%s'", name);
	dept.OpenRecordset(sql);
	GetDlgItemText(IDC_EDIT1, str);
	dept.SetItemContent("dept_name", CADOOperation::ADO_TYPE_STRING, &str);
	GetDlgItemText(IDC_EDIT3, str);
	dept.SetItemContent("dept_show", CADOOperation::ADO_TYPE_STRING, &str);
	dept.CloseRecorset();

	return TRUE;
}

⌨️ 快捷键说明

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