Foxtable(狐表)用户栏目专家坐堂 → 自定义用户管理二


  共有3889人关注过本帖树形打印复制链接

主题:自定义用户管理二

帅哥哟,离线,有人找我吗?
石四
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
自定义用户管理二  发帖心情 Post By:2014/6/22 19:18:00 [只看该作者]

更改用户

窗口的AfterLoad事件代码为:

Dim UserName As String
Dim
UserGroup As String
Dim
PassWord As String
Dim
dr As DataRow
If
Forms("用户管理").Opened Then '正常打开
    UserName = Forms(
"用户管理").Controls("ListBox1").SelectedItem
Else

   UserName = _UserName
'_UserName为全局变量,用于保存当前用户名
   e.Form.Controls("UserName").Enabled = False
   e.Form.Controls("UserGroup").Enabled =
False
End
If
e
.Form.Text = e.Form.Text & "-" & UserName '将要更改的用户名保存在窗口标题中,方便其他事件调用
dr
= _UserTable.SQLFind("[Name] = '" & UserName & "'")
If
dr IsNot Nothing Then
    e.Form.Controls("UserName").Value = UserName
    e.Form.Controls("UserGroup").Value = dr("Group")
    e.Form.Controls("PassWord").Value = dr("PassWord")

Else

    MessageBox.Show("用户不存在或者已经被删除!","提示",MessageBoxButtons.OK)
    e.Form.Close()
End
If

上面的代码在打开“更改用户”窗口之前,先判断“用户管理”窗口是否已经打开,如果已经打开,则更改“用户管理”窗口中选定的用户;否则更改当前登录的用户,且禁止更改用户名和用户分组,只能更改用户密码。

 

试了狐表自带的事例文件,不象上面说的只能更改用户密码,用户名和分组也可以更改,怎么回事?



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/22 19:26:00 [只看该作者]

 呃,代码和说明都没有问题。

 

 如果没有管理权限的人,压根就打不开 用户管理 窗口


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/6/22 19:31:00 [只看该作者]

以下是引用有点甜在2014-6-22 19:26:00的发言:

 呃,代码和说明都没有问题。

 

 如果没有管理权限的人,压根就打不开 用户管理 窗口

照上面说的设计不对啊,

更改密码应该是用户本人操作,就是说登录的用户都有权限打开更改用户窗口更改密码,但是不可以更改用户名和分组。


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/6/22 19:37:00 [只看该作者]

我设计非超级管理员登录项目,用户管理窗口“增加用户”和“删除用户”两个按钮不可用,只可操作“更改用户”按钮,但是禁止更改用户名和分组没生效,卡住了。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/22 19:41:00 [只看该作者]

 你思路错了,你应该在菜单那里判断,如果是管理人员,就打开【用户管理】窗口,如果是普通用户,就打开【更改用户】窗口。

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/6/22 19:57:00 [只看该作者]

以下是引用有点甜在2014-6-22 19:41:00的发言:
 你思路错了,你应该在菜单那里判断,如果是管理人员,就打开【用户管理】窗口,如果是普通用户,就打开【更改用户】窗口。

不明白有什么区别,我已经做到,如果是普通用户登录,打开用户管理窗口,上面的用户列表只有登录者本人,只“更改用户”按钮有效。

现在的问题是普通用户也可以更改用户名和分组,这样不通。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/22 19:59:00 [只看该作者]

呃,如果是管理员,点击菜单按钮,就打开【用户管理】窗口;

 

如果是普通用户,点击菜单按钮,打开的是【更改用户】窗口。普通用户没有打开用户管理窗口的机会,这个是帮助文档的意图。

[此贴子已经被作者于2014-6-22 19:59:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/6/22 20:43:00 [只看该作者]

以下是引用有点甜在2014-6-22 19:59:00的发言:

呃,如果是管理员,点击菜单按钮,就打开【用户管理】窗口;

 

如果是普通用户,点击菜单按钮,打开的是【更改用户】窗口。普通用户没有打开用户管理窗口的机会,这个是帮助文档的意图。

[此贴子已经被作者于2014-6-22 19:59:16编辑过]

管理员:需先后打开两个窗口,可以更改三个选项。

普通用户:直接打开“更改窗口”,只能更改密码。

现在的设计,普通用户打开两个窗口,所以能和管理员一样,更改三个选项。

是这个意思吧?

如果在加载“更改窗口”时加一个判断,应该也可以满足要求吧。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/22 20:46:00 [只看该作者]

 也可以判断,判断_UserName 是否等于 选择的 用户名 即可。


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/6/22 20:58:00 [只看该作者]

改了一段:

If Forms("用户管理").Opened Then '正常打开
    UserName = Forms("用户管理").Controls("ListBox1").SelectedItem
If _UserGroup <> "超级管理员" Then
   e.Form.Controls("UserName").Enabled = False
   e.Form.Controls("UserGroup").Enabled = False
End If
End If

似乎没问题啦。


 回到顶部