以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  授权表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139965)

--  作者:13775189031
--  发布时间:2019/8/26 18:08:00
--  授权表
按照实例中的授权表,“列名”可否设置成多值字段进行多选,也就是说“列名”里显示多列
If e.Col.Name = "列名" Then
    Dim s As String = e.Row("表名")
    If s > "" AndAlso Tables.Contains(s) Then
        Dim t As Table = Tables(s)
        s = ""
        For Each c As Col In t.Cols
            s = s & "|" & c.Name
        Next
        e.Col.ComboList = s
    End If
End If


For Each t As Table In Tables \'显示所有表和列
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If  User.Type <> UserTypeEnum.User Then
    Return
End If
For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
    If dr.IsNull("列名") Then
        For Each t As Table In Tables
            If t.DataTable.Name = dr("表名") Then
                t.Visible = Not dr("不可见")
                t.AllowEdit = Not dr("不可编辑")
            End If
        Next
    Else
        For Each t As Table In Tables
            If t.DataTable.Name = dr("表名") Then
                For Each c As Col In t.Cols
                    If c.Name = dr("列名") Then
                        c.Visible = Not dr("不可见")
                        c.AllowEdit = Not dr("不可编辑")
                    End If
                Next
            End If
        Next
    End If
Next

--  作者:有点蓝
--  发布时间:2019/8/26 20:26:00
--  
可以是可以,但是使用起来非常麻烦,建议还是分开。

多值字段除了特殊场景,个人感觉非常不好用。多值字段前期录入是非常方便,但是后期使用非常麻烦,数据越多越麻烦,效率越低

--  作者:13775189031
--  发布时间:2019/8/27 11:29:00
--  
明白了!


--  作者:13775189031
--  发布时间:2019/8/27 11:35:00
--  
按照加载树实例,初始状态不加载数据
图片点击可在新窗口打开查看此主题相关图片如下:1566876664(1).png
图片点击可在新窗口打开查看
但发现,授权表里设置的某些不可见的表,打开后能看的到,是什么问题?

--  作者:13775189031
--  发布时间:2019/8/27 12:01:00
--  
没问题了,是我把授权表名称填错了
--  作者:有点蓝
--  发布时间:2019/8/27 12:01:00
--  
我测试没有问题。上传实例说明