Foxtable(狐表)用户栏目专家坐堂 → 数据查看范围的权限


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

主题:数据查看范围的权限

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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
数据查看范围的权限  发帖心情 Post By:2020/11/9 12:00:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:微步mdl.foxdb


老师在上面实例中,有人员信息表,
如果这个人对应数据查看范围是“本部门”,他登陆系统能查看跟他一个部门的所有人的“日报、周报、月报、项目管理的数据”
如果是“本部门及下级”,他登陆系统能查看自己部门和这个部门包含所有下级部门的人的“日报、周报、月报、项目管理的数据”
如果是“仅自己”,他登陆仅能看自己的数据;
部门上下及的关系,是通过表“部门信息”获取;您看下,已部门ID作为依据,怕部门名称修改;
老师我想需求两个帮助:
1.这个代码如何写,特别是如果查看所有下级的数据代码?
2.我想在一个地方设置,所有的业务数据表都可以按此代码加载数据,该如何做?

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


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

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154336&authorid=0&page=0&star=2

用法基本一样,管理者就是“本部门及下级”,职员就是“仅自己”,本部门参考例子的用法,去掉获取下级的代码即可

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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/11/9 22:07:00 [只看该作者]

谢谢我测试数据时,提示索引超出数组界限;是什么原因?


还有个我在“daily”和“xmgl”表中都加了departid字段。想实现直接通过departid进行实现此功能,该如何修改?  搞了一下午还是没搞定,求教老师

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


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

写了什么代码?贴出来。

如果加了部门id,直接通过部门id查询即可,不需要获取人员id了

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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/11/9 22:48:00 [只看该作者]

getchild代码没变        
getname:代码
Dim dr As DataRow = DataTables("userinfo").Find("sname='" & user.Name & "'")
If dr IsNot Nothing Then
    Select Case dr("role")
        Case "本部门及下级"
            Dim lst2 As new List(of String)
            lst2.Add(dr("departid"))
            Functions.Execute("getdchild",lst2,dr("departid"))
            Return String.Join(",",lst2.ToArray)
        Case "本部门"
            Return dr("departid")
        Case "仅自己"
            Return dr("personid")
        Case Else
            Return Nothing
    End Select
   
Else
    Return Nothing
End If

LoadUserSetting代码:

Dim dr As DataRow = DataTables("userinfo").SQLFind("sname='" & user.Name & "'")

  Dim str As String = Functions.Execute("getderpart")

  If str > "" Then

     If dr("role") <> "仅自己"

     DataTables("daily").LoadFilter = "departid in ('" & str.Replace(",","','") &  "')"

     DataTables("dailyday").LoadFilter = "departid in ('" & str.Replace(",","','") &  "')"

     Else

     DataTables("daily").LoadFilter = "personid in ('" & str.Replace(",","','") &  "')"

     DataTables("dailyday").LoadFilter = "personid in ('" & str.Replace(",","','") &  "')"

     End If

   Else

   DataTables("daily").LoadFilter = "_Identify is null"

   DataTables("dailyday").LoadFilter = "_Identify is null"

  End If

 DataTables("daily").Load

 DataTables("dailyday").Load


[此贴子已经被作者于2020/11/9 22:50:08编辑过]

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


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

DataTables("daily").LoadFilter = "[_Identify] is null"

 回到顶部