📄 userdlg.cpp
字号:
// USERDLG.cpp : implementation file
//
#include "stdafx.h"
#include "YJSYS_HD.h"
#include "USERDLG.h"
#include "Columns.h"
#include "Column.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUSERDLG dialog
extern CYJSYS_HDApp theApp;
CUSERDLG::CUSERDLG(CWnd* pParent /*=NULL*/)
: CDialog(CUSERDLG::IDD, pParent)
{
//{{AFX_DATA_INIT(CUSERDLG)
m_strUserLevel = _T("");
m_strUserName = _T("");
m_strUserPWD = _T("");
m_strUserQPWD = _T("");
//}}AFX_DATA_INIT
}
void CUSERDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUSERDLG)
DDX_CBString(pDX, IDC_USERCOMBO_USERLEVEL, m_strUserLevel);
DDX_Text(pDX, IDC_USEREDIT_USERNAME, m_strUserName);
DDX_Text(pDX, IDC_USEREDIT_USERPWD, m_strUserPWD);
DDX_Text(pDX, IDC_USEREDIT_USERQPWD, m_strUserQPWD);
DDX_Control(pDX, IDC_DATAGRID_USER, m_dgUserList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUSERDLG, CDialog)
//{{AFX_MSG_MAP(CUSERDLG)
ON_BN_CLICKED(IDC_USERBTN_ADD, OnUserbtnAdd)
ON_BN_CLICKED(IDC_USERBTN_DEL, OnUserbtnDel)
ON_BN_CLICKED(IDC_USERBTN_SAVE, OnUserbtnSave)
ON_BN_CLICKED(IDC_USERBTN_CANCEL, OnUserbtnCancel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUSERDLG message handlers
BOOL CUSERDLG::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_pRecordset_User.CreateInstance("ADODB.Recordset");//打开用户信息基本表
m_pRecordset_User->Open("select * from USER_LOGIN",_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
m_dgUserList.SetRefDataSource(NULL);
m_dgUserList.SetRefDataSource((LPUNKNOWN)m_pRecordset_User);
m_dgUserList.SetColumnHeaders(2) ;
_variant_t var;
var = long(0);
m_dgUserList.GetColumns().GetItem(var).SetCaption("用户名N");
m_dgUserList.GetColumns().GetItem(var).SetWidth(85);
var = long(1);
m_dgUserList.GetColumns().GetItem(var).SetCaption("密码P");
m_dgUserList.GetColumns().GetItem(var).SetWidth(85);
var = long(2);
m_dgUserList.GetColumns().GetItem(var).SetCaption("级别L");//getitem()返回的是COL类型
m_dgUserList.GetColumns().GetItem(var).SetWidth(70);
m_dgUserList.Refresh();
GetDlgItem(IDC_USEREDIT_USERNAME)->EnableWindow(false);
GetDlgItem(IDC_USEREDIT_USERPWD)->EnableWindow(false);
GetDlgItem(IDC_USEREDIT_USERQPWD)->EnableWindow(false);
GetDlgItem(IDC_USERCOMBO_USERLEVEL)->EnableWindow(false);
((CComboBox*)GetDlgItem(IDC_USERCOMBO_USERLEVEL))->AddString("管理员");
((CComboBox*)GetDlgItem(IDC_USERCOMBO_USERLEVEL))->AddString("老师");
((CComboBox*)GetDlgItem(IDC_USERCOMBO_USERLEVEL))->AddString("研究生");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUSERDLG::OnUserbtnAdd()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_USEREDIT_USERNAME)->EnableWindow(true);
GetDlgItem(IDC_USEREDIT_USERPWD)->EnableWindow(true);
GetDlgItem(IDC_USEREDIT_USERQPWD)->EnableWindow(true);
GetDlgItem(IDC_USERCOMBO_USERLEVEL)->EnableWindow(true);
GetDlgItem(IDC_USEREDIT_USERNAME)->SetFocus();
}
void CUSERDLG::OnUserbtnDel()
{
// TODO: Add your control notification handler code here
CString str1,sql,str2;
str1=m_dgUserList.GetText();//为当前选的列域值
if(AfxMessageBox("确定删除用户"+str1+"吗?",MB_YESNO)==IDYES)
{
sql.Format("select * from USER_LOGIN");
m_pRecordset_User.CreateInstance("ADODB.Recordset");
m_pRecordset_User->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
while(!m_pRecordset_User->rsEOF)
{
str2=m_pRecordset_User->GetCollect("USER_ID").bstrVal;
if(str2.CompareNoCase(str1) == 0)
m_pRecordset_User->Delete(adAffectCurrent);
m_pRecordset_User->MoveNext();
}
m_dgUserList.SetRefDataSource(NULL);
m_dgUserList.SetRefDataSource((LPUNKNOWN)m_pRecordset_User);
m_dgUserList.Refresh();
UpdateData(false);
}
else
return;
}
void CUSERDLG::OnUserbtnSave()
{
// TODO: Add your control notification handler code here
CString sql,str;
int level;
UpdateData(true);
if(""==m_strUserName)//------判断用户信息是否填写完整
{
MessageBox("请填写用户名");
return;
}
if(""==m_strUserPWD)
{
MessageBox("请填写用户密码");
return;
}
if(""==m_strUserQPWD)
{
MessageBox("请确认用户密码");
return;
}
if(""==m_strUserLevel)
{
MessageBox("请选择用户级别");
return;
}
sql.Format("select * from USER_LOGIN WHERE USER_ID='%s'",m_strUserName);
m_pRecordset_User.CreateInstance("ADODB.Recordset");
m_pRecordset_User->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
if(m_pRecordset_User->GetRecordCount()!=0)//---判断注册用户是否已存在
{
MessageBox("用户名已存在!");
GetDlgItem(IDC_USEREDIT_USERNAME)->SetFocus();
return;
}
else
{
sql.Format("select * from USER_LOGIN");
m_pRecordset_User.CreateInstance("ADODB.Recordset");
m_pRecordset_User->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
m_pRecordset_User->AddNew();//记录集增加一条记录
m_pRecordset_User->PutCollect("USER_ID",(_variant_t)m_strUserName);
m_pRecordset_User->PutCollect("USER_PASSWORD",(_variant_t)m_strUserPWD);
if(m_strUserLevel.CompareNoCase("研究生")==0)
level = 0;
else if(m_strUserLevel.CompareNoCase("老师")==0)
level = 1;
else if(m_strUserLevel.CompareNoCase("管理员")==0)
level = 2;
else
return;
str.Format("%d",level);
m_pRecordset_User->PutCollect("USER_LEVEL",(_variant_t)str);
m_pRecordset_User->Update();//-----------------
m_dgUserList.SetRefDataSource(NULL);
m_dgUserList.SetRefDataSource((LPUNKNOWN)m_pRecordset_User);
m_dgUserList.SetColumnHeaders(2) ;
_variant_t var;
var = long(0);
m_dgUserList.GetColumns().GetItem(var).SetCaption("用户名N");
m_dgUserList.GetColumns().GetItem(var).SetWidth(60);
var = long(1);
m_dgUserList.GetColumns().GetItem(var).SetCaption("密码P");
m_dgUserList.GetColumns().GetItem(var).SetWidth(60);
var = long(2);
m_dgUserList.GetColumns().GetItem(var).SetCaption("级别L");//getitem()返回的是COL类型
m_dgUserList.GetColumns().GetItem(var).SetWidth(60);
m_dgUserList.Refresh();
m_strUserName="";
m_strUserPWD="";
m_strUserQPWD="";
m_strUserLevel="";
UpdateData(false);
}
}
void CUSERDLG::OnUserbtnCancel()
{
// TODO: Add your control notification handler code here
m_strUserName="";
m_strUserPWD="";
m_strUserQPWD="";
m_strUserLevel="";
UpdateData(false);
GetDlgItem(IDC_USEREDIT_USERNAME)->EnableWindow(false);
GetDlgItem(IDC_USEREDIT_USERPWD)->EnableWindow(false);
GetDlgItem(IDC_USEREDIT_USERQPWD)->EnableWindow(false);
GetDlgItem(IDC_USERCOMBO_USERLEVEL)->EnableWindow(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -