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

📄 userdlg.cpp

📁 本售货管理系统用vc和sql开发
💻 CPP
字号:
// UserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "售货系统.h"
#include "UserDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CDatabase m_database;
extern CString username;
extern CString userpower;
/////////////////////////////////////////////////////////////////////////////
// CUserDlg dialog


CUserDlg::CUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUserDlg)
	//}}AFX_DATA_INIT
}


void CUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUserDlg)
	DDX_Control(pDX, IDC_DELUSER, m_deluser);
	DDX_Control(pDX, IDC_CHANGE_PASSWORD, m_changepassword);
	DDX_Control(pDX, IDC_ADDUSER, m_adduser);
	DDX_Control(pDX, IDC_USER_LIST, m_userlist);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUserDlg, CDialog)
	//{{AFX_MSG_MAP(CUserDlg)
	ON_BN_CLICKED(IDC_USER_CANCEL, OnUserCancel)
	ON_BN_CLICKED(IDC_ADDUSER, OnAdduser)
	ON_BN_CLICKED(IDC_SERACHUSER, OnSerachuser)
	ON_BN_CLICKED(IDC_DELUSER, OnDeluser)
	ON_BN_CLICKED(IDC_CHANGE_PASSWORD, OnChangePassword)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUserDlg message handlers

void CUserDlg::OnUserCancel() 
{
	
	if(MessageBox("确定退出系统1?","提醒",MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION)!=IDNO){
		exit(0);
	}
}

void CUserDlg::OnAdduser() 
{
	CAdduserDlg adduserdlg;
	adduserdlg.DoModal();
	CString sql;
	sql.Format("select * from 用户密码表");
	OnRefreshData(sql);

	
}

BOOL CUserDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();	
	m_userlist.InsertColumn(0,"用户名");//初始list control控件
	m_userlist.InsertColumn(1,"权限");
	CRect r;
	m_userlist.GetWindowRect(&r);
	int wid=r.Width()/2;
    m_userlist.SetColumnWidth(0,wid);//设置list control控件中每栏的长度
	m_userlist.SetColumnWidth(1,wid);
	//设置list control控件的表格样式
	m_userlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	CString sql;
	sql.Format("select * from 用户密码表");
	OnRefreshData(sql);//更新list control数据的函数,其内容为用户密码表内容
	CPowerSet m_powerset;
	m_powerset.m_pDatabase=&m_database;//指明数据库
	sql.Format("select * from 用户权限表 where 权限名 ='%s'",userpower);
	m_powerset.Open(AFX_DB_USE_DEFAULT_TYPE,sql);//进行查询,打开一个权限表数据集
	if(!m_powerset.IsEOF()){//如果查询结果不为空
		if(m_powerset.m_column2!=1){
			m_adduser.EnableWindow(FALSE);//添加用户按钮不可用
			m_deluser.EnableWindow(FALSE);//删除用户按钮不可用
		}
		if(m_powerset.m_column3!=1){
			m_changepassword.EnableWindow(FALSE);//修改用户密码不可用
		}
	}
	return TRUE; 
}
void CUserDlg::OnRefreshData(CString sql){
	m_userlist.DeleteAllItems();
	CUserSet m_userset;
	m_userset.m_pDatabase=&m_database;
	m_userset.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
	m_userset.MoveFirst();
	int i=0;
	while(!m_userset.IsEOF()){
		while(m_userset.IsDeleted()){
			m_userset.MoveNext();
		}
		m_userlist.InsertItem(i,m_userset.m_column1);
		m_userlist.SetItemText(i,1,m_userset.m_column3);
		m_userset.MoveNext();
	}
}

void CUserDlg::OnSerachuser() 
{
	CString sql;
	CSerchuserDlg searchdlg;
	int i=searchdlg.DoModal();
	if(searchdlg.m_select){
		sql=searchdlg.sql;
		OnRefreshData(sql);	
	}
}

void CUserDlg::OnDeluser() 
{
	CString sql;
	CString execsql;
	CString item;
	sql.Format("select * from 用户密码表");
	int preindex=-1;
	int index=-1;
	CUserSet m_userset;
	m_userset.m_pDatabase=&m_database;
	m_userset.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
	if(m_userset.IsEOF()){
		MessageBox("没有可删除用户");
		return;
	}
	if (m_userlist.GetNextItem(index,LVNI_SELECTED) == -1){
		MessageBox("请先选中一条记录");
		return;
	}
	//删除所有被选中的用户
	while ((index = m_userlist.GetNextItem(preindex,LVNI_SELECTED)) != -1) {
		item=m_userlist.GetItemText(index,0);//从选中的记录中获取用户名
		item.TrimLeft();
		item.TrimRight();
		if(strcmp(item,username)==0){
			MessageBox("不能删除自身");
			return;
		}
		try{
			//生成删除用户的SQL语句
			execsql.Format("delete from 用户密码表 where 用户名='%s'",item);
			m_database.ExecuteSQL(execsql);
		}
		catch(CDBException e1){
			AfxMessageBox("数据库操作失败");
		}
		catch(CMemoryException e2){
			AfxMessageBox("数据库操作失败");
		}
		preindex=index;

	}
	OnRefreshData(sql);//更新list control的显示数据
}

void CUserDlg::OnChangePassword() 
{
	CChangePasswordDlg passworddlg;
	passworddlg.DoModal();
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -