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

📄 empolyinfo.cpp

📁 主要用在管理系统,一个工程维护管理用vc++ 8.0 accesss数据库
💻 CPP
字号:
// EmpolyInfo.cpp : 实现文件
//

#include "stdafx.h"
#include "ProjectManage.h"
#include "EmpolyInfo.h"
#include "User.h"
#include "ADODB.h"

// CEmpolyInfo 对话框

IMPLEMENT_DYNAMIC(CEmpolyInfo, CDialog)

CEmpolyInfo::CEmpolyInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CEmpolyInfo::IDD, pParent)
{

}

CEmpolyInfo::~CEmpolyInfo()
{
}

void CEmpolyInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST1, m_oListmateriel);
}


BEGIN_MESSAGE_MAP(CEmpolyInfo, CDialog)
	ON_BN_CLICKED(IDC_BUTTON1, &CEmpolyInfo::OnBntAddEmp)
	ON_BN_CLICKED(IDC_BUTTON2, &CEmpolyInfo::OnBntModifyEmp)
	ON_BN_CLICKED(IDC_BUTTON3, &CEmpolyInfo::OnBntDeleteEmp)
ON_NOTIFY(NM_CLICK, IDC_LIST1, &CEmpolyInfo::OnNMClickList1)
END_MESSAGE_MAP()

// CEmpolyInfo 消息处理程序

void CEmpolyInfo::OnBntAddEmp()
{
	// TODO: 在此添加控件通知处理程序代码
	CString sql;
	CString EmpName,DeptID,EmpDesc;
	CEdit* mCEdit=(CEdit*)this->GetDlgItem(IDC_EDIT1);
	mCEdit->GetWindowText(EmpName);
    CEdit* pEdit=(CEdit*)this->GetDlgItem(IDC_EDIT2);
    pEdit->GetWindowTextA(EmpDesc);
	CComboBox* mComb=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    mComb->GetWindowTextA(DeptID);
	try
	{
		if(EmpName!=""&&DeptID!="")
		{
			sql="Insert into EmployeeTab (DeptID,EmployeeName,EmployeeDesc) VALUES ('"+DeptID+"','"+EmpName+"','"+EmpDesc+"')";
			
			if(this->m_Storage.ExecSql(_bstr_t(sql)))
			{
			   AfxMessageBox("添加成功!");
			    
			}
		}
		else
		{
		     AfxMessageBox("请添写员工姓名和选择部门!");
			 return;
		}
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("增加人员信息时出错:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);
	}
	ListCtrDataLoad();
	UpdateData(false);
}

void CEmpolyInfo::OnBntModifyEmp()
{
	// TODO: 在此添加控件通知处理程序代码
	CString sql;
	CString EmpName,DeptID,EmpDesc,Code;
	CString EmpID;

	CEdit* mCEdit=(CEdit*)this->GetDlgItem(IDC_EDIT1);
	mCEdit->GetWindowText(EmpName);

    CEdit* pEdit=(CEdit*)this->GetDlgItem(IDC_EDIT2);
    pEdit->GetWindowTextA(EmpDesc);

	CEdit* sEdit=(CEdit*)this->GetDlgItem(IDC_EDIT3);
    sEdit->GetWindowTextA(Code);

	CComboBox* mComb=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    mComb->GetWindowTextA(DeptID);

	try
	{
		if(EmpName!=""&&DeptID!="")
		{
			sql="update EmployeeTab set DeptID='"+DeptID+"',EmployeeName='"+EmpName+"',EmployeeDesc='"+EmpDesc+"' where EmployeeID="+Code;
			
			if(this->m_Storage.ExecSql(_bstr_t(sql)))
			{
				ListCtrDataLoad();
			    AfxMessageBox("修改成功!");
			}
		}
		else
		{
		     AfxMessageBox("请添写员工姓名和选择部门!");
			 return;
		}
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("修改人员信息时出错:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);
	}
}

void CEmpolyInfo::OnBntDeleteEmp()
{
	// TODO: 在此添加控件通知处理程序代码
    CString sql;
	CString EmpName,DeptID,EmpDesc,Code;
	CString EmpID;

	CEdit* mCEdit=(CEdit*)this->GetDlgItem(IDC_EDIT1);
	mCEdit->GetWindowText(EmpName);

    CEdit* pEdit=(CEdit*)this->GetDlgItem(IDC_EDIT2);
    pEdit->GetWindowTextA(EmpDesc);

	CEdit* sEdit=(CEdit*)this->GetDlgItem(IDC_EDIT3);
    sEdit->GetWindowTextA(Code);

	CComboBox* mComb=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    mComb->GetWindowTextA(DeptID);
	try
	{
		
		sql="delete from EmployeeTab  where EmployeeID="+Code;
		if(MessageBox("真的要删除考试编号为:"+EmpName+"的记录吗?","删除询问", MB_OKCANCEL|MB_ICONQUESTION)==IDOK)
		{
	        if(this->m_Storage.ExecSql(_bstr_t(sql)))
			{
				ListCtrDataLoad();
			}
		}	
	}
	catch(_com_error e)
	{
		CString errormessage;
		errormessage.Format("删除人员信息时出错:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);
	}

}

BOOL CEmpolyInfo::OnInitDialog()
{
	CDialog::OnInitDialog();
   
	// TODO:  在此添加额外的初始化
    
    CString DeptName;
	CComboBox* pCombobox=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
	theApp.m_pDept->GetDeptName();
	POSITION p=theApp.m_pDept->m_DeptList.GetHeadPosition();  
	while(p)
	{
		DeptName=theApp.m_pDept->m_DeptList.GetNext(p);
    	pCombobox->AddString(DeptName);
	}
	pCombobox->SetCurSel(0);
	CEdit* pEdit=(CEdit*) this->GetDlgItem(IDC_EDIT1);
	pEdit->SetWindowText("");
	pEdit->SetFocus();
    
    for(int delcolumn=100;delcolumn>=0;delcolumn--)
		m_oListmateriel.DeleteColumn(delcolumn);
	//设置list对话框的列
	DWORD dwStyle;
	RECT rect;
	LV_COLUMN lvc;

	dwStyle = m_oListmateriel.GetStyle();
	dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;

	m_oListmateriel.SetExtendedStyle(dwStyle);
	m_oListmateriel.GetClientRect(&rect);

	lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
	lvc.fmt=LVCFMT_LEFT;

	lvc.iSubItem = 0;
	lvc.pszText = _T("编号");
	lvc.cx = 50;
	m_oListmateriel.InsertColumn(1,&lvc);

	lvc.iSubItem = 1;
	lvc.pszText = _T("姓名");
	lvc.cx = 80;
	m_oListmateriel.InsertColumn(2,&lvc);

	lvc.iSubItem = 2;
	lvc.pszText = _T("部门");
	lvc.cx = 100;
	m_oListmateriel.InsertColumn(3,&lvc);

	lvc.iSubItem = 3;
	lvc.pszText = _T("描述");
	lvc.cx = 120;
	m_oListmateriel.InsertColumn(4,&lvc);

    ListCtrDataLoad();

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CEmpolyInfo::ListCtrDataLoad()
{
	
	CString sql;
	CString curID;
	_RecordsetPtr m_pTRecordset; 

	m_oListmateriel.DeleteAllItems();
	int nColumnCount=m_oListmateriel.GetHeaderCtrl()->GetItemCount();
	
    int numline=0;
	sql="SELECT * FROM EmployeeTab where 1=1";
	
	try
	{
		m_pTRecordset.CreateInstance("ADODB.Recordset");
		m_pTRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pDBCon->GetActiveConnection(),true),adOpenDynamic,adLockOptimistic,adCmdText);
        
		m_pTRecordset->MoveFirst();
		LV_ITEM lvitem;
		lvitem.pszText="";
		lvitem.mask=LVIF_TEXT;
		lvitem.iSubItem=0;
		if(!m_pTRecordset->adoEOF)
		{
			while(!m_pTRecordset->adoEOF)
			{
                lvitem.iItem=numline;
				m_oListmateriel.InsertItem(&lvitem);
				m_oListmateriel.SetItemText(numline,0,(LPCTSTR)(_bstr_t)(m_pTRecordset->GetCollect("EmployeeID")));
				m_oListmateriel.SetItemText(numline,1,(LPCTSTR)(_bstr_t)(m_pTRecordset->GetCollect("EmployeeName")));
				m_oListmateriel.SetItemText(numline,2,(LPCTSTR)(_bstr_t)(m_pTRecordset->GetCollect("DeptID")));
				m_oListmateriel.SetItemText(numline,3,(LPCTSTR)(_bstr_t)(m_pTRecordset->GetCollect("EmployeeDesc")));	
			
				numline++;
               
				//m_oListmateriel.Invalidate();

				if (!m_pTRecordset->adoEOF)
				{
					m_pTRecordset->MoveNext();
				}
				
			}
		}
		m_pTRecordset->Close();
	}
	catch(_com_error e)
	{
		 CString errormessage;
		 MessageBox("加载列表视图出错!");
	}
	CString temp;
	temp.Format("共有%d条记录",numline);
	SetWindowText(temp);

}


void CEmpolyInfo::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	CString EmpName,DeptID,EmpDesc,Code;
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->iItem != -1)
	{

	CString strtemp;
	strtemp.Format("单击的是第%d行第%d列",
	pNMListView->iItem, pNMListView->iSubItem);

    EmpName=m_oListmateriel.GetItemText(pNMListView->iItem, 1);
    DeptID=m_oListmateriel.GetItemText(pNMListView->iItem, 2);
    EmpDesc=m_oListmateriel.GetItemText(pNMListView->iItem, 3);
	Code=m_oListmateriel.GetItemText(pNMListView->iItem, 0);

	CEdit* mCEdit=(CEdit*)this->GetDlgItem(IDC_EDIT1);
	mCEdit->SetWindowTextA(EmpName);

    CEdit* pEdit=(CEdit*)this->GetDlgItem(IDC_EDIT2);
    pEdit->SetWindowTextA(EmpDesc);

	CEdit* sEdit=(CEdit*)this->GetDlgItem(IDC_EDIT3);
    sEdit->SetWindowTextA(Code);

	CComboBox* mComb=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
    mComb->SetWindowTextA(DeptID);
	
	}

	*pResult = 0;
}

⌨️ 快捷键说明

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