以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]可视化授权问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70361)

--  作者:linswcfr
--  发布时间:2015/6/19 15:05:00
--  [求助]可视化授权问题

例:张三授权表中,只有表A与表B有权限,那么如何只显示表A及表B

 

 

 


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


--  作者:大红袍
--  发布时间:2015/6/19 15:18:00
--  

 

[此贴子已经被作者于2015/6/19 15:47:27编辑过]

--  作者:linswcfr
--  发布时间:2015/6/19 15:26:00
--  
王五看不到表了..
--  作者:linswcfr
--  发布时间:2015/6/19 15:39:00
--  

大红袍老师还在吗?


--  作者:大红袍
--  发布时间:2015/6/19 15:47:00
--  

Tables("授权表").Visible = True
Dim flag As Boolean = (User.Type <> UserTypeEnum.User)
For Each t As Table In Tables \'显示所有表和列
    t.Visible = flag
    t.AllowEdit = flag
    For Each c As Col In t.Cols
        c.Visible = flag
        c.AllowEdit = flag
    Next
Next

If flag = False Then
    DataTables("授权表").LoadFilter= "用户名 = \'" & user.name & "\'"
Else
    DataTables("授权表").LoadFilter= ""
End If
DataTables("授权表").Load()

For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'", "列名")
    If Tables.Contains(dr("表名")) Then
        Dim t As Table = Tables(dr("表名"))
        If dr.IsNull("列名") Then
            t.Visible =  dr("可见")
            t.AllowEdit =  dr("可编辑")
            If dr("可见") Then
                For Each c As Col In t.Cols
                    c.Visible = True
                    c.AllowEdit = True
                Next
            End If
        Else
            If t.Cols.Contains(dr("列名")) Then
                t.Cols(dr("列名")).Visible =  dr("可见")
                t.Cols(dr("列名")).AllowEdit =  dr("可编辑")
            End If
            If dr("可见") OrElse dr("可编辑") Then
                t.Visible = True
            End If
        End If
    End If
Next


--  作者:linswcfr
--  发布时间:2015/6/19 15:52:00
--  
谢谢,大红袍老师!!