⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgadministratorinfo.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 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 + -