📄 dlgadministratorinfo.cpp
字号:
// DlgAdministratorInfo.cpp : implementation file
//
#include "stdafx.h"
#include "Manage_WH.h"
#include "DlgAdministratorInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgAdministratorInfo dialog
CDlgAdministratorInfo::CDlgAdministratorInfo(CWnd* pParent /*=NULL*/)
: CDialog(CDlgAdministratorInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgAdministratorInfo)
m_pass = _T("");
m_rePass = _T("");
m_user = _T("");
//}}AFX_DATA_INIT
m_iAddOrChange = 0;
m_hIcon = AfxGetApp()->LoadIcon(IDI_USERICON);
}
void CDlgAdministratorInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgAdministratorInfo)
DDX_Control(pDX, IDCANCEL, m_ButExit);
DDX_Control(pDX, IDC_UNDO, m_ButUndo);
DDX_Control(pDX, IDC_SAVE, m_ButSave);
DDX_Control(pDX, IDC_DEL, m_ButDel);
DDX_Control(pDX, IDC_CHANGE, m_ButEdit);
DDX_Control(pDX, IDC_ADD, m_ButAdd);
DDX_Control(pDX, IDC_LIST, m_list);
DDX_Text(pDX, IDC_PASS, m_pass);
DDV_MaxChars(pDX, m_pass, 12);
DDX_Text(pDX, IDC_REPASS, m_rePass);
DDV_MaxChars(pDX, m_rePass, 12);
DDX_Text(pDX, IDC_USER, m_user);
DDV_MaxChars(pDX, m_user, 20);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgAdministratorInfo, CDialog)
//{{AFX_MSG_MAP(CDlgAdministratorInfo)
ON_NOTIFY(NM_DBLCLK, IDC_LIST, OnDblclkList)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_CHANGE, OnChange)
ON_BN_CLICKED(IDC_DEL, OnDel)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_UNDO, OnUndo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgAdministratorInfo message handlers
BOOL CDlgAdministratorInfo::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN && (pMsg->wParam==13 || pMsg->wParam==27))
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CDlgAdministratorInfo::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, FALSE);
m_list.InsertColumn(0,"用户名称");
m_list.InsertColumn(1,"用户等级");
RECT rect;
m_list.GetWindowRect(&rect);
int wid = rect.right - rect.left;
m_list.SetColumnWidth(0,wid/2);
m_list.SetColumnWidth(1,wid/2);
m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
Refresh();
return TRUE;
}
void CDlgAdministratorInfo::Refresh()
{
m_list.DeleteAllItems();
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
rs.Open(_T("select F_User,F_Popedom from T_Password"),adCmdText);
if (rs.GetRecordCount() != 0)
{
int row = 0;
CString strVal;
rs.MoveFirst();
while (!rs.IsEOF())
{
row = m_list.InsertItem(row,"");
for (int i = 0; i < 2; i++)
{
rs.GetCollect(i,strVal);
m_list.SetItemText(row,i,strVal);
}
rs.MoveNext();
row++;
}
}
rs.Close();
cn.Close();
}
void CDlgAdministratorInfo::Enabled(BOOL bEnabled)
{
m_ButUndo.EnableWindow(bEnabled);
m_ButSave.EnableWindow(bEnabled);
m_ButExit.EnableWindow(!bEnabled);
m_ButDel.EnableWindow(!bEnabled);
m_ButEdit.EnableWindow(!bEnabled);
m_ButAdd.EnableWindow(!bEnabled);
m_list.EnableWindow(!bEnabled);
static_cast<CEdit *>(GetDlgItem(IDC_USER))->EnableWindow(bEnabled);
static_cast<CEdit *>(GetDlgItem(IDC_PASS))->EnableWindow(bEnabled);
static_cast<CEdit *>(GetDlgItem(IDC_REPASS))->EnableWindow(bEnabled);
static_cast<CComboBox *>(GetDlgItem(IDC_POPEDOM))->EnableWindow(bEnabled);
}
void CDlgAdministratorInfo::ClearFrom()
{
static_cast<CEdit *>(GetDlgItem(IDC_USER))->SetWindowText("");
static_cast<CEdit *>(GetDlgItem(IDC_PASS))->SetWindowText("");
static_cast<CEdit *>(GetDlgItem(IDC_REPASS))->SetWindowText("");
static_cast<CComboBox *>(GetDlgItem(IDC_POPEDOM))->SetCurSel(-1);
}
void CDlgAdministratorInfo::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
for (int i = 0; i < m_list.GetItemCount(); i++)
{
if (m_list.GetItemState(i,LVIS_SELECTED) == LVIS_SELECTED)
{
static_cast<CEdit *>(GetDlgItem(IDC_USER))->SetWindowText(m_list.GetItemText(i,0));
static_cast<CComboBox *>(GetDlgItem(IDC_POPEDOM))->SetCurSel(static_cast<CComboBox *>(GetDlgItem(IDC_POPEDOM))->FindString(-1,m_list.GetItemText(i,1)));
break;
}
}
*pResult = 0;
}
void CDlgAdministratorInfo::OnAdd()
{
ClearFrom();
Enabled(true);
static_cast<CEdit *>(GetDlgItem(IDC_USER))->SetFocus();
m_iAddOrChange = 1;
}
void CDlgAdministratorInfo::OnChange()
{
UpdateData(TRUE);
if (m_user.IsEmpty())
{
MessageBox("请选择要修改的用户!\n","消息提示",MB_ICONSTOP|MB_OK);
return;
}
Enabled(true);
static_cast<CEdit *>(GetDlgItem(IDC_USER))->EnableWindow(false);
static_cast<CComboBox *>(GetDlgItem(IDC_POPEDOM))->EnableWindow(false);
static_cast<CEdit *>(GetDlgItem(IDC_PASS))->SetFocus();
m_iAddOrChange = 2;
}
void CDlgAdministratorInfo::OnDel()
{
UpdateData(TRUE);
if (m_user.IsEmpty())
{
MessageBox("请选择要删除的任务!\n","消息提示",MB_ICONSTOP|MB_OK);
return;
}
if (gstrPopedom == "普通用户")
{
MessageBox("对不起,您没有执行删除操作的权限!","系统提示",MB_ICONQUESTION|MB_OK);
return;
}
else
{
if (m_user == "Admin")
{
MessageBox("对不起,您不能删除Admin这个用户!","系统提示",MB_ICONQUESTION|MB_OK);
return;
}
if (MessageBox("确定要删除用户"+m_user+"的信息吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION) == 1)
{
CAdoConnection cn;
cn.OpenUDLFile(gstrConSQLSer);
cn.Execute("delete from T_Password where F_User = '"+m_user+"'");
cn.Close();
::AddLog("删除系统操作员"+m_user+"信息!");
Enabled(false);
ClearFrom();
Refresh();
}
}
}
void CDlgAdministratorInfo::OnSave()
{
UpdateData(TRUE);
CString sPopedom;
static_cast<CComboBox *>(GetDlgItem(IDC_POPEDOM))->GetWindowText(sPopedom);
if (m_iAddOrChange == 2 && m_user != gstrOperator)
{
MessageBox("您无权修改"+m_user+"的信息","系统提示",MB_ICONQUESTION|MB_OK);
Enabled(false);
ClearFrom();
Refresh();
return;
}
CString sWarning("");
if (m_user.IsEmpty()) sWarning = "用户名称不能为空,请输入!";
else if (m_pass.IsEmpty()) sWarning = "登录密码不能为空,请输入!";
else if (m_rePass.IsEmpty()) sWarning = "确认密码不能为空,请输入!";
else if (m_rePass != m_pass) sWarning = "确认密码不正确,请重新输入!";
else if (sPopedom.IsEmpty()) sWarning = "用户等级不能为空,请输入!";
if ("" != sWarning)
{
MessageBox(sWarning,"系统提示",MB_ICONQUESTION|MB_OK);
return;
}
if (MessageBox("请确认是否保存该记录?","系统提示",MB_ICONQUESTION|MB_OKCANCEL) == 0)
return;
int bz(0);
CAdoConnection cn;
CAdoRecordSet rs;
cn.OpenUDLFile(gstrConSQLSer);
rs.SetAdoConnection(&cn);
switch(m_iAddOrChange)
{
case 1:
{
//判断数据库中是否已存在该用户
rs.Open("select * from T_Password where F_User='"+m_user+"'",adCmdText);
if (rs.GetRecordCount() != 0) bz = 1;
rs.Close();
//用户存在,退出
if (bz==1)
{
cn.Close();
MessageBox("添加失败,该用户已存在!","系统提示",MB_ICONSTOP|MB_OK);
return;
}
//不存在,添加
cn.Execute("INSERT INTO T_Password(F_User,F_Pass,F_Popedom)VALUES('"+m_user+"','"+m_pass+"','"+sPopedom+"')",adCmdText);
cn.Close();
MessageBox("数据添加成功!","系统提示",MB_ICONINFORMATION|MB_OK);
AddLog("添加新的系统操作员:"+m_user+"");
}
break;
case 2:
{
cn.Execute("UPDATE T_Password SET F_Pass='"+m_pass+"' WHERE F_User='"+m_user+"'",adCmdText);
MessageBox("数据修改成功!","系统提示",MB_ICONINFORMATION|MB_OK);
AddLog("修改系统操作员:"+m_user+"的登录密码!");
cn.Close();
}
break;
}
Enabled(false);
ClearFrom();
Refresh();
}
void CDlgAdministratorInfo::OnUndo()
{
ClearFrom();
Enabled(false);
Refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -