以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]锁定列后下次再打开无效!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12958)

--  作者:zhangqinyun
--  发布时间:2011/9/22 10:30:00
--  [求助]锁定列后下次再打开无效!
为什么锁定列后,下次打开又无效。。。
--  作者:狐狸爸爸
--  发布时间:2011/9/22 10:50:00
--  

细看此节内容:

 

http://www.foxtable.com/help/topics/0039.htm

 


--  作者:zhangqinyun
--  发布时间:2011/9/22 10:53:00
--  

2、在列属性设置中,将“允许编辑”属性设为False(否),可以锁定列,而设为True(是),则取消锁定列,这种操作是永久性的。

 

我就是在列属性里设置的,但是再次打开项目,又可以编辑了。。。

 


--  作者:狐狸爸爸
--  发布时间:2011/9/22 11:01:00
--  
这是不可能的,除非另外有代码解锁或手工解锁了。
--  作者:zhangqinyun
--  发布时间:2011/9/22 11:02:00
--  
难道要用

AllowEdit

 

PrepareEdit

 

???

 


--  作者:zhangqinyun
--  发布时间:2011/9/22 11:14:00
--  

我错了,我在Afterload 里加了这个,,,

 

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.Group & "\'" )
        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
End If