Foxtable(狐表)用户栏目专家坐堂 → 这个判断语句哪里错了?


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

主题:这个判断语句哪里错了?

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
这个判断语句哪里错了?  发帖心情 Post By:2016/8/19 8:42:00 [只看该作者]

If User.IsRole("资料下载") Then '如果用户具有资料下载权限,则执行 
…… '这里是资料下载的代码
ElseIf e.Table.Current("特需授权").Contains("User.Name") Then   '如果当前用户不具备“”资料下载“”权限,但是用户名包含在该表点击行对应的“”特需授权“列中
……  '这里是资料下载的代码
Else
     MessageBox.Show("你没有打开资料的权限!")
   End If
End If

第一个if判断后,如果不成立,就直接执行Else了。其实我想实现的是,即使用户不属于“资料下载”用户组,还要判断“特需授权”中是否有他的用户名,如果有,同样可以下载资料,如果没有,才弹出“你没有打开资料的权限”的提示。

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/19 8:52:00 [只看该作者]

If User.IsRole("资料下载") Then '如果用户具有资料下载权限,则执行 
…… '这里是资料下载的代码
ElseIf e.Table.Current("特需授权").Contains("User.Name") Then   '如果当前用户不具备“”资料下载“”权限,但是用户名包含在该表点击行对应的“”特需授权“列中
……  '这里是资料下载的代码
Elseif e.Table.Current("特需授权").Contains("User.Name")=False Then   
     MessageBox.Show("你没有打开资料的权限!")
   End If
End If

这样写 IF 语句不对,得用Select case语句吗?

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/19 8:56:00 [只看该作者]

If User.IsRole("资料下载") Then '如果用户具有资料下载权限,则执行 
…… '这里是资料下载的代码
Else
   If e.Table.Current("特需授权").Contains("User.Name") Then   '如果当前用户不具备“”资料下载“”权限,但是用户名包含在该表点击行对应的“”特需授权“列中
……  '这里是资料下载的代码
   ElseIf e.Table.Current("特需授权").Contains("User.Name")=False Then   
     MessageBox.Show("你没有打开资料的权限!")
   End If
End If
End if

也不对啊。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/19 8:57:00 [只看该作者]

If User.IsRole("资料下载") Then '如果用户具有资料下载权限,则执行 
…… '这里是资料下载的代码
ElseIf e.Table.Current("特需授权").Contains(User.Name) Then   '如果当前用户不具备“”资料下载“”权限,但是用户名包含在该表点击行对应的“”特需授权“列中
……  '这里是资料下载的代码
Else
     MessageBox.Show("你没有打开资料的权限!")
   End If
End If

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/19 9:09:00 [只看该作者]

If User.IsRole("资料下载") Then '如果用户具有资料下载权限,则执行 
…… '这里是资料下载的代码
ElseIf e.Table.Current("特需授权").Contains(User.Name) Then   '如果当前用户不具备“”资料下载“”权限,但是用户名包含在该表点击行对应的“”特需授权“列中
……  '这里是资料下载的代码
Else
     MessageBox.Show("你没有打开资料的权限!")
   End If   '这个Endif 是和那个If配对的啊?是不是多了?
End If


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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/19 9:15:00 [只看该作者]

If User.IsRole("资料下载") Then '如果用户具有资料下载权限,则执行
  If e.Col.Name = "文件名称及链接" Then
    If e.Row.IsNull("文件名称及链接") = False Then
        e.cancel = True
        Dim c As Col = e.Col
        Dim ftp As FTPClient = c.DataCol.FTPClient
        Dim path As String = ProjectPath & "RemoteFiles\" & FileSys.GetName(e.Row(c.Name))
        ftp.Download(e.Row(c.Name), path, True)
        Dim proc As new Process
        proc.File = path
        proc.Start
        End If
   End If
Else
   If e.Table.Current("特需授权").Contains("User.Name") Then '如果当前用户不具备资料下载权限,但是包含在特需授权中  这个判断没有起作用
     If e.Row.IsNull("文件名称及链接") = False Then
        e.cancel = True
        Dim c As Col = e.Col
        Dim ftp As FTPClient = c.DataCol.FTPClient
        Dim path As String = ProjectPath & "RemoteFiles\" & FileSys.GetName(e.Row(c.Name))
        ftp.Download(e.Row(c.Name), path, True)
        Dim proc As new Process
        proc.File = path
        proc.Start       
    End If
  Else
    If e.Col.Name = "文件名称及链接" Then
    MessageBox.Show("你没有打开资料的权限!")
    End If
End If
End If

这样写按判断逻辑应该是没有问题的,但是当用户名包含在“特需授权”里面,还是提示没有打开资料的权限,是不是e.Table.Current("特需授权").Contains("User.Name")  这里错了?

我要判断的是,当前用户点击的这一行的“特需授权”列里面是否有这个用户的用户名。
[此贴子已经被作者于2016/8/19 9:26:44编辑过]

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/19 10:12:00 [只看该作者]

Hypen老师,6楼的代码判断语句应该完整。我估计是e.Table.Current("特需授权").Contains("User.Name")  的问题,如果我把
e.Table.Current("特需授权").Contains("User.Name")  改为e.Table.Current("特需授权")=User.Name 就没有问题了。
但是,我需要的是判断特需授权里面是否包含登录用户,而不是只有登录用户,因为特需授权里面有多个用户名。
这个怎么改?  

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


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

if e.Table.Current("特需授权").Contains(User.Name)  then

 

end if


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


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

Dim  nm As String = User.Name
If CurrentTable.Current("第一列").contains(nm)  Then

 

End If


 回到顶部