Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口列表项目权限控制


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

主题:[求助]窗口列表项目权限控制

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:10466 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]窗口列表项目权限控制  发帖心情 Post By:2024/10/21 9:12:00 [只看该作者]

’AfterLoad事件


Dim dwqx As String
If _UserRoles.Contains("系统主管") = False Then
    Dim strs As String() = _UserRoles.split(",")
    Dim rs As String
    For Each ss As String In strs
        rs = rs & ",'" & ss & "'"
    Next
    Dim drs As List(Of DataRow)
    drs = DataTables("用户角色档案").Select("角色 in (" & rs.trim(",") & ")")
    If drs.Count > 0 Then
        For Each dr As DataRow In drs
            dwqx = dr("核算单位权限") ‘核算单位权限列为多值字段
        Next
    End If 
End If
Dim cmb As WinForm.CheckedComboBox = e.form.Controls("HSDW")
cmb.ComboList = DataTables("列表项目").GetComboListString("核算组织", "核算组织 In ( '" & dwqx.replace(",", "','") & "')")

提示以下错误,不知哪里有误

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


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


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

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:10466 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2024/10/21 10:37:00 [只看该作者]

_UserRoles.Contains("系统主管") = False,这里有问题。自定义用户

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


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

_UserRoles没有值,是空对象

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:10466 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2024/10/21 11:53:00 [只看该作者]

Dim dwqx As String
If User.Type = UserTypeEnum.User Then
    Dim strs As String() = _UserRoles.split(",")
    For Each ss As String In strs
        Dim dr As DataRow
        dr = DataTables("用户角色档案").Find("角色 = '" & ss & "'")
        If dr IsNot Nothing Then '如果找到的话
            dwqx = dr("核算单位权限")
        End If 
    Next
End If

核算单位权限是多值字段,假设这个用户有两个角色,角色1的核算单位权限是AA,BB,角色2的核算单位权限是BB,CC,如何将找到的这两个角色的核算单位权限合并且去重,结果要是AA,BB,CC

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


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

使用集合判断去重,类似:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=175348&page=1&star=13

 回到顶部