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

📄 dlgemployee.cpp

📁 一个商店综合管理软件的开发源代码
💻 CPP
字号:
// DlgEmployee.cpp : implementation file
//

#include "stdafx.h"
#include "Project.h"
#include "DlgEmployee.h"
#include "DlgLogin.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgEmployee dialog


CDlgEmployee::CDlgEmployee(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgEmployee::IDD, pParent)
{
	m_EmpAge=0;
	m_EmpSex=0;
	m_EmpNo = m_EmpName = m_EmpID = m_EmpTel = "";
	//{{AFX_DATA_INIT(CDlgEmployee)
	//}}AFX_DATA_INIT
}


void CDlgEmployee::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgEmployee)
	DDX_Control(pDX, IDC_EmpLIST, m_EmpList);
	DDX_Text(pDX,    IDC_EmpNo,   m_EmpNo);
	DDX_Text(pDX,    IDC_EmpName, m_EmpName);
	DDX_CBIndex(pDX, IDC_EmpSex,  m_EmpSex);
	DDX_Text(pDX,    IDC_EmpAge,  m_EmpAge);
	DDX_Text(pDX,    IDC_EmpID,   m_EmpID);
	DDV_MaxChars(pDX, m_EmpID, 12);
	DDX_Text(pDX,    IDC_EmpTel , m_EmpTel);
	DDV_MaxChars(pDX, m_EmpTel, 8);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgEmployee, CDialog)
	//{{AFX_MSG_MAP(CDlgEmployee)
	ON_BN_CLICKED(IDC_AddEmp,    OnAddEmp)
	ON_BN_CLICKED(IDC_DeleteEmp, OnDeleteEmp)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgEmployee message handlers
BOOL CDlgEmployee::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CDlgLogin dlgLogin;
	
	try
	{   //连接数据源
		_bstr_t Conn = "DSN="+_bstr_t(dlgLogin.m_LoginDSN)+";";   
		pConn.CreateInstance(__uuidof(Connection));
		HRESULT hr=pConn->Open(Conn,_bstr_t(""),_bstr_t(""),adModeUnknown);  //
	}
	catch(_com_error& ex)
	{
		AfxMessageBox(ex.Description());
	}	

	//初始化列表框
	m_EmpList.SetTextColor(RGB (0, 0, 0));
	m_EmpList.SetBkColor(RGB(255,255,255));
	m_EmpList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);	

	m_EmpList.InsertColumn(0,_T("雇员代号"), LVCFMT_CENTER,70);
	m_EmpList.InsertColumn(1,_T("姓名"),     LVCFMT_CENTER,80);
	m_EmpList.InsertColumn(2,_T("性别"),	 LVCFMT_CENTER,40);
	m_EmpList.InsertColumn(3,_T("年龄"),	 LVCFMT_CENTER,40);
	m_EmpList.InsertColumn(4,_T("身份证号"), LVCFMT_CENTER,120);
	m_EmpList.InsertColumn(5,_T("电话"),     LVCFMT_CENTER,100);

	OnRefreshData();
	return TRUE;  
}
//==添加雇员===================================================
void CDlgEmployee::OnAddEmp() 
{
	this->UpdateData(TRUE);
	if(m_EmpSex=0) sEmpSex = "M";    //性别
	if(m_EmpSex=1) sEmpSex = "W";    


	if(m_EmpNo=="")						AfxMessageBox("员工代号必填!");
	else if(m_EmpName=="")				AfxMessageBox("姓名必填!");
	else if(m_EmpAge<1||m_EmpAge>100) 	AfxMessageBox("年龄出错!");
	else if(m_EmpID=="") 	            AfxMessageBox("身份证号码必填!");
	else
	{
		CString sql;
		//插入记录
		sql.Format("insert into TableEmployee values(\'%s\',\'%s\',\'%s\',\'%i\',\'%s\',\'%s\')",
                     m_EmpNo,m_EmpName,sEmpSex,m_EmpAge,m_EmpID,m_EmpTel);
		try
		{
			pConn->Execute(_bstr_t(sql),NULL,adCmdText);
		} 
		catch(_com_error& e)
		{
			AfxMessageBox(e.Description());
			return;
		}  
		
		m_EmpNo =m_EmpName =m_EmpID=m_EmpTel="";
	    m_EmpSex=m_EmpAge=0;
		UpdateData(FALSE);
		OnRefreshData();     //刷新
	}
}
//==删除雇员===================================================
void CDlgEmployee::OnDeleteEmp() 
{
	int sel = m_EmpList.GetSelectionMark();
	CString str;
	str = m_EmpList.GetItemText(sel,0);
	CString sql;
	sql.Format("delete from TableEmployee where EmpNo = \'%s\'",str);
	try
	{
		pConn->Execute(_bstr_t(sql),NULL,adCmdText);
		m_EmpList.DeleteItem(sel);
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
	OnRefreshData();
}

//==查询表TableEmployee,获取雇员详细信息==========================
void CDlgEmployee::OnRefreshData()              //刷新列表
{
	m_EmpList.DeleteAllItems();
	_variant_t vt;
	try
	{
		//选取TableEmployee表所有记录
		_RecordsetPtr pRst = pConn->Execute("select * from TableEmployee",&vt,adCmdText);
		while(!pRst->End)
		{
			_variant_t vEmpNO  = pRst->Fields->GetItem("EmpNo")->Value;
			_variant_t vEmpName= pRst->Fields->GetItem(long(1))->Value; 
			_variant_t vEmpSex = pRst->Fields->GetItem(long(2))->Value;
			_variant_t vEmpAge = pRst->Fields->GetItem(long(3))->Value;
			_variant_t vEmpID  = pRst->Fields->GetItem(long(4))->Value;
			_variant_t vEmpTel = pRst->Fields->GetItem(long(5))->Value;
			
			m_EmpNo   = vEmpNO.bstrVal;           //取出记录的值
			m_EmpName = vEmpName.bstrVal;
			m_EmpSex  = vEmpSex.iVal;
			m_EmpAge  = vEmpAge.iVal;
			m_EmpID   = vEmpID.bstrVal;
			m_EmpTel  = vEmpTel.bstrVal;
			
			CString strSex,strAge;
			if(m_EmpSex==0)  strSex = "男";
			else  strSex = "女";
			strAge.Format("%d",m_EmpAge);

			m_EmpList.InsertItem(0,m_EmpNo);      //填入列表项
			m_EmpList.SetItemText(0,1,m_EmpName);
			m_EmpList.SetItemText(0,2,strSex);
			m_EmpList.SetItemText(0,3,strAge);
			m_EmpList.SetItemText(0,4,m_EmpID);
			m_EmpList.SetItemText(0,5,m_EmpTel);		
			pRst->MoveNext();
		}
		pRst->Close();      //关闭RecordSet
		pRst.Release();
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
}


void CDlgEmployee::OnCancel() 
{
	pConn.Release();
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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