以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于锁定列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123924)

--  作者:swimmer01
--  发布时间:2018/8/27 11:51:00
--  [求助]关于锁定列
老师:您好!
窗口中有一表,打开时我想锁定大多数列,只有其中两列不锁,我的代码:
DataTables(_Sys_lsb2+"_Table2").Fill(_Sys_lsb3,"User" ,True)
Tables(_Sys_lsb2+"_Table2").Cols("条件名称").Width = 150
Tables(_Sys_lsb2+"_Table2").Cols("电子文档").Width = 150
DataTables(_Sys_lsb2+"_Table2").AllowEdit = True
DataTables(_Sys_lsb2+"_Table2").DataCols("ID").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("项目编号").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("专业").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("类别").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("条件名称").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("来源").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("输入人").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("角色").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").DataCols("输入时间").AllowEdit = True
DataTables(_Sys_lsb2+"_Table2").DataCols("电子文档").AllowEdit = True
DataTables(_Sys_lsb2+"_Table2").DataCols("开放等级").AllowEdit = False
DataTables(_Sys_lsb2+"_Table2").ReplaceFor("_locked",True)
感觉编程太臭长,能不能简化,先锁定全部列,然后允许需要的两列可编辑,
谢谢指点!!


--  作者:有点甜
--  发布时间:2018/8/27 12:44:00
--  

比如代码

 

Dim ary() As String = {"第一列", "第二列"}
For Each c As DataCol In DataTables("表A").DataCols
    If array.Indexof(ary, c.name) >= 0 Then
        c.AllowEdit = True
    Else
        c.AllowEdit = False
    End If
Next


--  作者:swimmer01
--  发布时间:2018/8/27 15:05:00
--  
解决了,谢谢!!