10.6.6 用户管理的实现
管理员登录系统后在主界面上用户操作区域中单击【用户】按钮显示管理界面。在该界面上的列表框中选中某个用户,单击【删除用户】按钮可实现从数据表中删除该用户。单击【用户权限修改】按钮则显示修改权限界面。在修改权限界面上通过改变权限组合框中的选项实现修改权限操作,最终要重新读取数据表把修改后数据显示在列表控件中。由模块技术分析可知,实现修改操作主要是通过记录集类成员函数Edit()实现的。【用户权限修改】按钮对应的消息函数代码参考如下:
代码位置:见光盘中本章源代码的GUANLI类。
- 1 void GUANLI::OnModify()
- 2 {
- 3 if(m_id=="")
//没选中记录 - 4 {
- 5 MessageBox("请选择所需修改的记录","
提示",MB_OK|MB_ICONINFORMATION); - 6 return;
- 7 }
- 8 if(ID==m_id)
//当前管理员被选中 - 9 {
- 10 MessageBox("当前用户无法修改权限","
提示",MB_OK|MB_ICONINFORMATION); - 11 return;
- 12 }
- 13 else
- 14 {
- 15 mySet->MoveFirst();
//移动记录到第一条 - 16 while(!mySet->IsEOF())
//记录没到最后一条 - 17 {
- 18 if(mySet->m_ID==m_id)
//判断用户名是否相同 - 19 break;
- 20 else
- 21 mySet->MoveNext();
//记录后移 - 22 }
- 23 XGQX mydlg;
//定义对话框对象 - 24 mydlg.m_id=mySet->m_ID;
//获取当前用户名 - 25 if(mySet->m_AUTHOR=="管理员")
//当前权限是管理员 - 26 glflag=true;
//权限标志为真 - 27 else
- 28 glflag=false;
- 29 UpdateData(false);
//显示数据 - 30 if(mydlg.DoModal()==IDOK)
//按下【确定】按钮 - 31 {
- 32 mySet->Edit();
//编辑状态
- 33 mySet->m_AUTHOR=mydlg.author;
//给权限字段赋值 - 34 mySet->Update();
//保存数据 - 35 UpdateData(false);
//显示数据 - 36 LOADDATA();
//在列表控件中显示 - 37 MessageBox("权限修改成功","提示",MB_OK|MB_ICONINFORMATION);
- 38 …
//省略部分代码 - 39 }
- 40 }
- 41 }
第3~12行代码实现了判断是否输入了各项数据,并且禁止修改当前管理员的权限。
第15~29行代码实现了在数据表中查找待修改权限的用户名,并在修改界面上实现初始化显示该用户名对应的权限。
第30~38行代码实现了权限的修改,并更新列表控件。
修改权限对话框的初始化设置和【确定】按钮的实现过程与前面登录对话框、添加用户对话框的初始化操作基本相同。另外,修改密码的操作也是利用记录集类成员函数Edit()实现的,实现过程和修改权限操作完全相同,在此就不再重复介绍了,请读者参照光盘中相关源码自己实现。
【责任编辑:
云霞 TEL:(010)68476606】