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