📄 employeeaddim.cpp
字号:
// EmployeeAddim.cpp : implementation file
//
#include "stdafx.h"
#include "Sjsys.h"
#include "EmployeeAddim.h"
#include "AffirmDlg.h"
#include "EmployeePara.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEmployeeAddim dialog
CEmployeeAddim::CEmployeeAddim(CWnd* pParent /*=NULL*/)
: CDialog(CEmployeeAddim::IDD, pParent)
{
//{{AFX_DATA_INIT(CEmployeeAddim)
//}}AFX_DATA_INIT
}
void CEmployeeAddim::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEmployeeAddim)
DDX_Control(pDX, IDC_QUERYBTN, m_inqirebtn);
DDX_Control(pDX, IDC_NEW_BTN, m_newbtn);
DDX_Control(pDX, IDC_MODIFYBTN, m_modifybtn);
DDX_Control(pDX, IDC_DELBTN, m_deletebtn);
DDX_Control(pDX, IDC_LIST1, m_employeelist);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEmployeeAddim, CDialog)
//{{AFX_MSG_MAP(CEmployeeAddim)
ON_BN_CLICKED(IDC_NEW_BTN, OnNewBtn)
ON_BN_CLICKED(IDC_DELBTN, OnDelbtn)
ON_BN_CLICKED(IDC_MODIFYBTN, OnModifybtn)
ON_BN_CLICKED(IDC_QUERYBTN, OnQuerybtn)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEmployeeAddim message handlers
BOOL CEmployeeAddim::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_newbtn.SetShade(CShadeButtonST::SHS_METAL);
m_modifybtn.SetShade(CShadeButtonST::SHS_METAL);
m_deletebtn.SetShade(CShadeButtonST::SHS_METAL);
m_inqirebtn.SetShade(CShadeButtonST::SHS_METAL);
DWORD style;
style=m_employeelist.GetExStyle();
style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
m_employeelist.SetExtendedStyle(style);
m_employeelist.InsertColumn(0,"编号",LVCFMT_LEFT,60);
m_employeelist.InsertColumn(1,"工号",LVCFMT_LEFT,60);
m_employeelist.InsertColumn(2,"姓名",LVCFMT_LEFT,100);
m_employeelist.InsertColumn(3,"所属部室",LVCFMT_LEFT,80);
m_employeelist.InsertColumn(4,"联系电话",LVCFMT_LEFT,100);
m_employeelist.InsertColumn(5,"邮箱",LVCFMT_LEFT,150);
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEmployeeAddim::OnNewBtn()
{
// TODO: Add your control notification handler code here
CEmployeePara dlg;
if(IDOK==dlg.DoModal())
{
CString SQLStr="select * from Employee";
pRst.CreateInstance(__uuidof(Recordset));
if(dlg.m_id!="")
{
SQLStr.Format("select * from Employee where No='%s'",dlg.m_id);
_RecordsetPtr m_pRecordset1;
m_pRecordset1.CreateInstance(_T("ADODB.Recordset"));
try
{
m_pRecordset1->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e)
{
CString errormessage;
errormessage.Format("打开记录集失败!\r\n错误信息:%s",e->ErrorMessage());
AfxMessageBox(errormessage);
return;
}
if (!m_pRecordset1->adoEOF)
{
MessageBox("账号名已经存在,请输入一个不同的账号名");
if(IDOK==dlg.DoModal())
{
if(dlg.m_id=="")
{
return;
}
}
}
m_pRecordset1->Close();
}
else
{
AfxMessageBox("账号名不能为空");
if(IDOK==dlg.DoModal())
{
if(dlg.m_id=="")
{
return;
}
}
}
try
{
pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
CString str;
pRst->AddNew();
pRst->PutCollect("Cname", (_variant_t)dlg.m_name);
//str.Format("%d",dlg.m_id);
pRst->PutCollect("No", (_variant_t)dlg.m_id);
pRst->PutCollect("Email", (_variant_t)dlg.m_email);
pRst->PutCollect("Phone", (_variant_t)dlg.m_phone);
//str.Format("%d",dlg.m_department);
pRst->PutCollect("Departmentid", (_variant_t)dlg.m_department);/**/
pRst->Update();
pRst->Close();
MessageBox( "数据库新建成功");
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
RefreshData();
}
}
void CEmployeeAddim::RefreshData()
{
m_employeelist.DeleteAllItems();
m_employeelist.SetRedraw(FALSE);
pRst.CreateInstance(__uuidof(Recordset));
try
{
CString SQLStr="select * from Employee";
pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打开查询结果记录集
int i=0;
int nItem=0;
while(!pRst->adoEOF)
{
nItem=m_employeelist.InsertItem(i,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("ID")));//
m_employeelist.SetItemText(nItem,1,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("No")));
m_employeelist.SetItemText(nItem,2,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Cname")));
m_employeelist.SetItemText(nItem,3,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Departmentid")));
m_employeelist.SetItemText(nItem,4,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Phone")));
m_employeelist.SetItemText(nItem,5,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Email")));
pRst->MoveNext();
i++;
}
pRst->Close();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
m_employeelist.SetRedraw(TRUE);
}
void CEmployeeAddim::OnDelbtn()
{
// TODO: Add your control notification handler code here
POSITION pos = m_employeelist.GetFirstSelectedItemPosition();
int m_nIndex = m_employeelist.GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
return;
}
CAffirmDlg dlg;
if(dlg.DoModal()!=IDOK)//显示确认删除对话框
{
return;
}
CString sql_;
sql_.Format("DELETE FROM Employee WHERE ID='%s'",m_employeelist.GetItemText( m_nIndex,0));
_bstr_t sql = sql_;
_variant_t RecordsAffected;
try
{
(((CSjsysApp*)AfxGetApp())->pConnection)->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
}
catch(_com_error& e)
{
AfxMessageBox(e.ErrorMessage());
return;
}
RefreshData();
}
void CEmployeeAddim::OnModifybtn()
{
// TODO: Add your control notification handler code here
POSITION pos = m_employeelist.GetFirstSelectedItemPosition();
int m_nIndex = m_employeelist.GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
return;
}
CEmployeePara dlg;
// dlg.m_no=m_employeelist.GetItemText( m_nIndex,0);
dlg.m_id=m_employeelist.GetItemText(m_nIndex,1);
dlg.m_name=m_employeelist.GetItemText( m_nIndex,2);
dlg.m_department = m_employeelist.GetItemText( m_nIndex,3);
dlg.m_phone = m_employeelist.GetItemText(m_nIndex,4);
dlg.m_email = m_employeelist.GetItemText(m_nIndex,5);
if(IDOK==dlg.DoModal())
{
HRESULT hTRes;
CString SQLStr;
SQLStr.Format("select * from Employee where ID='%s'",m_employeelist.GetItemText( m_nIndex,0));
try
{
hTRes=pRst.CreateInstance("ADODB.Recordset");
if (SUCCEEDED(hTRes))
{
hTRes=pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
CString s;
s=dlg.m_name;
s=s.Left(50);
pRst->PutCollect("Cname", _variant_t(s));
//str.Format("%d",dlg.m_id);
pRst->PutCollect("No", (_variant_t)dlg.m_id);
pRst->PutCollect("Email", (_variant_t)dlg.m_email);
pRst->PutCollect("Phone", (_variant_t)dlg.m_phone);
//str.Format("%d",dlg.m_department);
pRst->PutCollect("Departmentid", (_variant_t)dlg.m_department);/**/
pRst->Update();
MessageBox( "数据库修改成功");
}
pRst->Close();
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
}
else
return;
RefreshData();
}
void CEmployeeAddim::OnQuerybtn()
{
// TODO: Add your control notification handler code here
CString value="";
CString SQLstr="select * from Employee";
int flag=0;
CEmployeePara dlg;
dlg.m_flag=1;
if(IDOK==dlg.DoModal())
{
CString SQLStr="select * from Employee";
pRst.CreateInstance(__uuidof(Recordset));
if(dlg.m_id!="")
{
SQLstr += " where No='"+dlg.m_id+"'";
flag=1;
}
if(dlg.m_name!=""&&flag)
{
SQLstr+="and Cname='"+dlg.m_name+"'";
}
if(dlg.m_name!=""&&flag==0)
{
SQLstr += " where Cname='"+dlg.m_name+"'";
}
}
else
return;
try
{
pRst->Open((LPTSTR)SQLstr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
int i=0;
int nItem=0;
m_employeelist.DeleteAllItems();
while(!(pRst->adoEOF))
{
nItem=m_employeelist.InsertItem(i,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("ID")));//
m_employeelist.SetItemText(nItem,1,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("No")));
m_employeelist.SetItemText(nItem,2,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Cname")));
m_employeelist.SetItemText(nItem,3,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Departmentid")));
m_employeelist.SetItemText(nItem,4,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Phone")));
m_employeelist.SetItemText(nItem,5,((CSjsysApp*)AfxGetApp())->GetStringFromVariant(pRst->GetCollect("Email")));
pRst->MoveNext();
i++;
}
pRst->Close();
}
void CEmployeeAddim::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_employeelist.GetFirstSelectedItemPosition();
int m_nIndex = m_employeelist.GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
MessageBox("请选择一项在修改!","提示",MB_ICONINFORMATION);
return;
}
CEmployeePara dlg;
// dlg.m_no=m_employeelist.GetItemText( m_nIndex,0);
dlg.m_id=m_employeelist.GetItemText(m_nIndex,1);
dlg.m_name=m_employeelist.GetItemText( m_nIndex,2);
dlg.m_department = m_employeelist.GetItemText( m_nIndex,3);
dlg.m_phone = m_employeelist.GetItemText(m_nIndex,4);
dlg.m_email = m_employeelist.GetItemText(m_nIndex,5);
if(IDOK==dlg.DoModal())
{
HRESULT hTRes;
CString SQLStr;
SQLStr.Format("select * from Employee where ID='%s'",m_employeelist.GetItemText( m_nIndex,0));
//CString SQLStr="select * from Employee ";//where ID='"+dlg.m_no+"'";
try
{
hTRes=pRst.CreateInstance("ADODB.Recordset");
if (SUCCEEDED(hTRes))
{
hTRes=pRst->Open((LPTSTR)SQLStr.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
CString s;
s=dlg.m_name;
s=s.Left(50);
pRst->PutCollect("Cname", _variant_t(s));
pRst->PutCollect("No", (_variant_t)dlg.m_id);
pRst->PutCollect("Email", (_variant_t)dlg.m_email);
pRst->PutCollect("Phone", (_variant_t)dlg.m_phone);
pRst->PutCollect("Departmentid", (_variant_t)dlg.m_department);
pRst->Update();
MessageBox("数据库修改成功");
}
}
pRst->Close();
}
catch(_com_error& e)
{
MessageBox( "数据库操作失败 ");
AfxMessageBox(e.ErrorMessage());
return;
}
}
else
return;
RefreshData();
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -