Foxtable(狐表)用户栏目专家坐堂 → 按用户部门权限从后台追载相应表数据


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

主题:按用户部门权限从后台追载相应表数据

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/7 9:20:00 [显示全部帖子]

Dim dr As DataRow = DataTables("用户信息").find("用户名 = '" & 用户名 & "'")  '找到当前登录者所在的行
If dr("职位") = "管理者" Then
    Dim drs = DataTables("部门信息").Select("层级 like '" & dr("层级") & "%'")
    Dim filter As String = "1=2"
    For Each cdr As DataRow In drs
        Filter &= " or 当前所在部门 = '" & cdr("所属部门") & "' And 是否可用 = 1"
    Next
    DataTables("溯源码").AppendLoad (Filter, False)
Else If dr("职位") = "职员" Then
    dim Filter = "当前所在部门 = '" & dr("所属部门") & "'"
    DataTables("溯源码").AppendLoad (Filter, False)
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/7 10:39:00 [显示全部帖子]

上传实例测试。

 

Dim dr As DataRow = DataTables("用户信息").find("用户名 = '" & 用户名 & "'")  '找到当前登录者所在的行
Dim filter As String = "1=2"
If dr("职位") = "管理者" Then
    Dim drs = DataTables("部门信息").Select("层级 like '" & dr("层级") & "%'")
    For Each cdr As DataRow In drs
        Filter &= " or 当前所在部门 = '" & cdr("所属部门") & "' And 是否可用 = 1"
    Next
   
Else If dr("职位") = "职员" Then
    Filter = " or 当前所在部门 = '" & dr("所属部门") & "'"
End If
msgbox(filter)
DataTables("溯源码").loadfilter = Filter
DataTables("溯源码").load

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/7 15:02:00 [显示全部帖子]

你不是可以把filter保存下来?需要这个条件的时候,就引用变量。

 

vars("filter")=filter

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/7 17:06:00 [显示全部帖子]

以下是引用weibu在2018/8/7 16:08:00的发言:
在BeforeLoadOuterTable里面设置一次后,是否后面再进行查询、加载等数据时仅处理条件内数据?

 
[此贴子已经被作者于2018/8/7 16:09:11编辑过]

 

不会。

 

直接写即可 vars("filter")=filter

 

http://www.foxtable.com/webhelp/scr/1450.htm

 


 回到顶部