📄 dlgusersmanage.cpp
字号:
// DlgUsersManage.cpp : implementation file
//
#include "stdafx.h"
#include "Lhj_cyglxt.h"
#include "DlgUsersManage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgUsersManage dialog
extern CDatabase m_db;
CString olduserid;
CDlgUsersManage::CDlgUsersManage(CWnd* pParent /*=NULL*/)
: CDialog(CDlgUsersManage::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgUsersManage)
m_id = _T("");
m_position = _T("");
m_phone = _T("");
m_native = _T("");
m_name = _T("");
m_password = _T("");
m_loginname = _T("");
m_birth = _T("");
m_sex = _T("");
m_status = _T("");
//}}AFX_DATA_INIT
}
void CDlgUsersManage::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgUsersManage)
DDX_Control(pDX, IDC_COMBO_sex, m_osex);
DDX_Control(pDX, IDC_COMBO_status, m_ostatus);
DDX_Control(pDX, IDC_LIST_showuserid, m_userid);
DDX_Text(pDX, IDC_EDIT_user_id, m_id);
DDV_MaxChars(pDX, m_id, 8);
DDX_Text(pDX, IDC_EDIT_position, m_position);
DDX_Text(pDX, IDC_EDIT_phone, m_phone);
DDX_Text(pDX, IDC_EDIT_native, m_native);
DDX_Text(pDX, IDC_EDIT_name, m_name);
DDX_Text(pDX, IDC_EDIT_login_password, m_password);
DDV_MaxChars(pDX, m_password, 10);
DDX_Text(pDX, IDC_EDIT_login_name, m_loginname);
DDV_MaxChars(pDX, m_loginname, 8);
DDX_Text(pDX, IDC_EDIT_birth, m_birth);
DDX_CBString(pDX, IDC_COMBO_sex, m_sex);
DDX_CBString(pDX, IDC_COMBO_status, m_status);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgUsersManage, CDialog)
//{{AFX_MSG_MAP(CDlgUsersManage)
ON_LBN_SELCHANGE(IDC_LIST_showuserid, OnSelchangeLISTshowuserid)
ON_BN_CLICKED(IDC_BUTTON_adduser, OnBUTTONadduser)
ON_BN_CLICKED(IDC_BUTTON_deleteuser, OnBUTTONdeleteuser)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgUsersManage message handlers
BOOL CDlgUsersManage::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if(!UpdateData())
return 0;
if(!m_db.IsOpen())
{
MessageBox("数据库未打开");
return 0;
}
TRY
{
IdAddToList();
m_ostatus.AddString("普通用户");
m_ostatus.AddString("系统管理员");
m_osex.AddString("男");
m_osex.AddString("女");
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgUsersManage::OnSelchangeLISTshowuserid()
{
// TODO: Add your control notification handler code here
CString stemp,sql;
int iOption;
iOption = m_userid.GetCurSel();
m_userid.GetText(iOption, stemp);//得到选中项的文本
sql="select user_id,user_name,user_position,status_name,user_sex,user_birth,user_phone,user_native,user_loginname,user_loginpwd from users_infor,statuscode where status_code=user_status and user_id='"+stemp+"'";
TRY
{
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset, sql);
if(!rs.IsEOF())
{
rs.GetFieldValue((short)0,m_id);
rs.GetFieldValue((short)1,m_name);
rs.GetFieldValue((short)2,m_position);
rs.GetFieldValue((short)3,m_status);
rs.GetFieldValue((short)4,m_sex);
rs.GetFieldValue((short)5,m_birth);
rs.GetFieldValue((short)6,m_phone);
rs.GetFieldValue((short)7,m_native);
rs.GetFieldValue((short)8,m_loginname);
rs.GetFieldValue((short)9,m_password);
}
olduserid=m_id;
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
}
void CDlgUsersManage::OnOK()
{
// TODO: Add extra validation here
UpdateData();
TRY
{
//检查数据完整性
if(m_id.IsEmpty()||m_name.IsEmpty()||m_status.IsEmpty()||m_sex.IsEmpty()||m_loginname.IsEmpty()||m_password.IsEmpty())
{
AfxMessageBox("请填写完整!员工编号,姓名,身份权限,性别,登录名,密码 都不能为空");
return;
}
if(AfxMessageBox("保存修改吗?",MB_YESNO)==IDNO)
{
return;
}
CRecordset rs(&m_db);
CString sql,status="0";
if (m_status=="系统管理员")
{
status="1";
}
sql="update users_infor set user_id='"+m_id+"',user_name='"+m_name+"',user_position='"+m_position+"',user_status='"+status+"',user_sex='"+m_sex+"',user_birth='"+m_birth+"',user_phone='"+m_phone+"',user_native='"+m_native+"',user_loginname='"+m_loginname+"',user_loginpwd='"+m_password+"' where user_id='"+olduserid+"'";
TRACE(sql);
m_db.ExecuteSQL(sql);
AfxMessageBox("修改成功");
IdAddToList();//刷新list
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
//CDialog::OnOK();
}
void CDlgUsersManage::OnBUTTONadduser()
{
// TODO: Add your control notification handler code here
UpdateData();
TRY
{
//检查数据完整性
if(m_id.IsEmpty()||m_name.IsEmpty()||m_status.IsEmpty()||m_sex.IsEmpty()||m_loginname.IsEmpty()||m_password.IsEmpty())
{
AfxMessageBox("请填写完整!员工编号,姓名,身份权限,性别,登录名,密码 都不能为空");
return;
}
CRecordset rs(&m_db);
CString sql,status="0";
sql="select user_id from users_infor where user_id='"+m_id+"'";
rs.Open(CRecordset::dynaset, sql);
if(!rs.IsEOF())
{
AfxMessageBox("该员工编号已存在,员工编号不能重复。添加未成功");
rs.Close();
return;
}
rs.Close();
if (m_status=="系统管理员")
{
status="1";
}
sql="insert into users_infor(user_id,user_name,user_position,user_status,user_sex,user_birth,user_phone,user_native,user_loginname,user_loginpwd) values('"+m_id+"','"+m_name+"','"+m_position+"','"+status+"','"+m_sex+"','"+m_birth+"','"+m_phone+"','"+m_native+"','"+m_loginname+"','"+m_password+"') ";
TRACE(sql);
m_db.ExecuteSQL(sql);
AfxMessageBox("添加成功");
IdAddToList();
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
}
void CDlgUsersManage::IdAddToList()
{
m_userid.ResetContent();
CRecordset rs(&m_db);
CString sql="select user_id from users_infor ";
rs.Open(CRecordset::dynaset, sql);
CString idlist;
while (!rs.IsEOF())
{
rs.GetFieldValue((short)0,idlist);
m_userid.AddString(idlist);
rs.MoveNext();
}
rs.Close();
}
void CDlgUsersManage::OnBUTTONdeleteuser()
{
// TODO: Add your control notification handler code here
UpdateData();
TRY
{
if(AfxMessageBox("确定删除吗?",MB_YESNO)==IDNO)
{
return;
}
CRecordset rs(&m_db);
CString sql;
sql="select user_id from users_infor where user_id='"+m_id+"'";
rs.Open(CRecordset::dynaset, sql);
if(rs.IsEOF())
{
AfxMessageBox("该员工编号不存在,无需删除资料");
rs.Close();
return;
}
rs.Close();
sql="delete users_infor where user_id='"+m_id+"' ";
TRACE(sql);
m_db.ExecuteSQL(sql);
AfxMessageBox("删除成功");
IdAddToList();
UpdateData(FALSE);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -