Foxtable(狐表)用户栏目专家坐堂 → 用户角色代码问题


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

主题:用户角色代码问题

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
用户角色代码问题  发帖心情 Post By:2018/6/23 8:45:00 [只看该作者]

请问老师,以下代码有没有问题?

If User.Name = "开发者" Or User.Name = "管理员" Then
    DataTables("安全费用表").LoadFilter = ""
Else
    DataTables("安全费用表").LoadFilter = "承包人机构 = '" & User.Roles & "' or 监理机构 = '" & User.Roles & "' or 业主机构 = '" & User.Roles & "'"
End If
DataTables("安全费用表").LoadOver="支出日期"
DataTables("安全费用表").LoadReverse = True
DataTables("安全费用表").LoadTop= 10
DataTables("安全费用表").Load
Tables("安全费用表").sort="支出日期"


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/6/23 9:22:00 [只看该作者]

另在表的BeforeLoad事件设如下代码,但没办法根据用户角色加载数据
If User.Group = "业主" 
    Dim fl As String = "[业主机构] = '" & User.Roles & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/23 10:31:00 [只看该作者]

User.Roles是什么内容?
msgbox(User.Roles

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/6/23 10:58:00 [只看该作者]

这个

图片点击可在新窗口打开查看此主题相关图片如下:111111.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/6/23 11:14:00 [只看该作者]

用户设定

图片点击可在新窗口打开查看此主题相关图片如下:2222.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/23 11:58:00 [只看该作者]

DataTables("安全费用表").LoadFilter = "承包人机构 in ('" & User.Roles.replace(",","','") & "') or 监理机构 in ('" & User.Roles.replace(",","','") & "')  or 业主机构 in ('" & User.Roles.replace(",","','") & "') "

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/6/24 8:39:00 [只看该作者]

老师,请问下面的情况,为什么切换用户时,只有角色为“劳务队”的用户不能加载数据,其它都可以?可能是什么问题

在项目的LoadUserSetting事件设如下代码:
If User.Name = "开发者" Or User.Name = "管理员" Then
    DataTables("劳务人员登记表").LoadFilter = ""
Else
    DataTables("劳务人员登记表").LoadFilter = "承包人机构 in ('" & User.Roles.replace(",","','") & "') or 监理机构 in ('" & User.Roles.replace(",","','") & "')  or 业主机构 in ('" & User.Roles.replace(",","','") & "') or 劳务队负责人 in ('" & User.Roles.replace(",","','") & "') "
End If
DataTables("劳务人员登记表").LoadOver="工种"
DataTables("劳务人员登记表").LoadReverse = True
DataTables("劳务人员登记表").LoadTop= 10
DataTables("劳务人员登记表").Load
Tables("劳务人员登记表").sort="工种"


在表的BeforeLoad事件设如下代码:
If User.Group = "承包人"
    Dim fl As String = "承包人机构 in ('" & User.Roles.replace(",","','") & "') or 劳务队负责人 in ('" & User.Roles.replace(",","','") & "') "
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

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


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

弹出 BeforeLoad 事件,在最后写代码,看弹出什么

 

msgbox(e.DataTable.LoadFilter)


 回到顶部