Foxtable(狐表)用户栏目专家坐堂 → [求助]用户权限的问题


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

主题:[求助]用户权限的问题

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
[求助]用户权限的问题  发帖心情 Post By:2015/4/26 2:29:00 [只看该作者]

情形描述:

1.主窗口含有listview控件,双击某条记录时,打开另外一个窗口,在打开另外一个窗口之前,判定用户名称,以决定是否可编辑该条记录。

listview控件的RowActivate事件代码如下:

 

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = e.Sender.Current
If vr Is Nothing Then '如果不存在当前行,也就是内有选定任何一行
    Return
End If
Dim dr As DataRow = vr.tag '获取此行对应的DataRow
Dim ps As Integer = Tables("人力资源库").FindRow(dr)
If ps >= 0 Then
    Tables("人力资源库").Position = ps
    Forms("人力资源详细内容窗口").Open()
End If
If Tables("人力资源库").current("姓名")<> user.name Or user.name<> "开发者" Then
    Tables("人力资源库").AllowEdit = False
Else
    Tables("人力资源库").AllowEdit = True
End If

 

重点是红色区域的代码,执行上述代码后,所有的记录即使使用“开发者"登陆都无法编辑。

 

曾经试着用Syscmd.Row.Lock()的方式,后来发现一旦有一个用户不具备权限后,该条记录就被锁死了,还不得不又增加解锁按钮,但是没有试成功。就有了上述通过是否可编辑来写代码,可还是不行,照样无法编辑!!

 

 

大师们给个号的建议!!谢谢!!


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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2015/4/26 8:12:00 [只看该作者]

你可以反方向理解,如果是开发者用户是当前用户,则允许编辑,否则不允许:

 

if user.name= "开发者" orElse Tables("人力资源库").current("姓名")= user.name  then

    Tables("人力资源库").AllowEdit = True
Else
    Tables("人力资源库").AllowEdit = False
End If

 


 回到顶部