以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 这个判断语句哪里错了? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89319) |
|
-- 作者:天若千颖 -- 发布时间: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了。其实我想实现的是,即使用户不属于“资料下载”用户组,还要判断“特需授权”中是否有他的用户名,如果有,同样可以下载资料,如果没有,才弹出“你没有打开资料的权限”的提示。
|
|
-- 作者:天若千颖 -- 发布时间: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语句吗? |
|
-- 作者:天若千颖 -- 发布时间: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 -- 发布时间: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 |
|
-- 作者:天若千颖 -- 发布时间:2016/8/19 9:09:00 --
|
|
-- 作者:天若千颖 -- 发布时间: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编辑过]
|
|
-- 作者:天若千颖 -- 发布时间: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 就没有问题了。 但是,我需要的是判断特需授权里面是否包含登录用户,而不是只有登录用户,因为特需授权里面有多个用户名。 这个怎么改?
|
|
-- 作者:有点甜 -- 发布时间:2016/8/19 10:35:00 -- if e.Table.Current("特需授权").Contains(User.Name) then
end if |
|
-- 作者:有点甜 -- 发布时间:2016/8/19 10:39:00 -- Dim nm As String = User.Name
End If |