以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]单元格绘制图标  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101678)

--  作者:cd_tdh
--  发布时间:2017/6/5 14:35:00
--  [讨论]单元格绘制图标
大师些,我有很多表采用单元格绘制图标时,在项目AfterOpenProject事件里面写代码,又没办法简化代码?如果不能简化代码,会不会影响打开项目时间呢?
--  作者:有点色
--  发布时间:2017/6/5 14:39:00
--  
 你写了什么代码?动态增加列?如果是相同的代码,你可以写成循环。但,简化代码,效率还是一样的。
--  作者:cd_tdh
--  发布时间:2017/6/5 14:50:00
--  

我现在只做了一个表,单元格绘制按钮,就是怕多了影响打开项目的速度。比如:

If DataTables("表A").DataCols.Contains("删") = False Then
    DataTables("表A").DataCols.Add("删",Gettype(String),1)
    Tables("表A").Cols("删").Width = 24
    Tables("表A").Cols("删").Move(0)

End
If

 

If DataTables("表B").DataCols.Contains("删") = False Then
    DataTables("表B").DataCols.Add("删",Gettype(String),1)
    Tables("表B
").Cols("删").Width = 24
    Tables("表B").Cols("删").Move(0)

End
If

 

 

If DataTables("表C").DataCols.Contains("删") = False Then
    DataTables("表C").DataCols.Add("删",Gettype(String),1)
    Tables("表C
").Cols("删").Width = 24
    Tables("表C").Cols("删").Move(0)

End
If

 

 

如果有几十个表,会影响打开项目速度不,还有就是这个代码怎么简化?


--  作者:有点色
--  发布时间:2017/6/5 14:53:00
--  

这样简化

 

Dim tnames() As String = {"表A", "表B", "表C"}
For Each tname As String In tnames
    If DataTables(tname).DataCols.Contains("删") = False Then
        DataTables(tname).DataCols.Add("删",Gettype(String),1)
        Tables(tname).Cols("删").Width = 24
        Tables(tname).Cols("删").Move(0)
    End If
Next

 

效率的话,其实和你手动添加固定的表达式列差不多的。