以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  外部数据加载进来锁表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=191979)

--  作者:denghui69986
--  发布时间:2024/5/20 18:30:00
--  外部数据加载进来锁表
外部数据加载进内部表不知怎么在属性里面关闭允许编辑和关闭保持编辑,从新打开项目表还是可以编辑没被锁住,老师这样问题是那里没设置到吗?
--  作者:有点蓝
--  发布时间:2024/5/20 20:17:00
--  
我测试没有问题,请上传实例说明
--  作者:denghui69986
--  发布时间:2024/5/21 7:56:00
--  
从新做的项目又可以不知问题出在哪里,能不能用代码打开项目前锁住表
--  作者:有点蓝
--  发布时间:2024/5/21 8:57:00
--  
帮助搜“锁定表”
--  作者:denghui69986
--  发布时间:2024/5/21 11:21:00
--  
找到原因了是做天做了权限这代码,下面加紫色底颜色这代码有问题,把上面涂颜色代码删了又可以了

然后项目事件LoadUserSetting中,加入如下代码:

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
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
        If
dr.IsNull("列名")
Then
       
    Tables(dr("表名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).AllowEdit = Not dr("不可编辑")

        Else
           
Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
        End
If
    Next
End
If


--  作者:有点蓝
--  发布时间:2024/5/21 11:24:00
--  
既然做了权限控制,那整个项目就应该使用权限表来控制表列是否锁定。不应该再到列属性设置了
--  作者:denghui69986
--  发布时间:2024/5/21 11:50:00
--  
开始没发现,开发者账号进去没受到控制锁表,换其它账号可以表和列权限控制了,现在知道原因了,谢谢