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