Foxtable(狐表)用户栏目专家坐堂 → [讨论]单元格绘制图标


  共有2226人关注过本帖树形打印复制链接

主题:[讨论]单元格绘制图标

帅哥哟,离线,有人找我吗?
cd_tdh
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
[讨论]单元格绘制图标  发帖心情 Post By:2017/6/5 14:35:00 [只看该作者]

大师些,我有很多表采用单元格绘制图标时,在项目AfterOpenProject事件里面写代码,又没办法简化代码?如果不能简化代码,会不会影响打开项目时间呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/5 14:39:00 [只看该作者]

 你写了什么代码?动态增加列?如果是相同的代码,你可以写成循环。但,简化代码,效率还是一样的。

 回到顶部
帅哥哟,离线,有人找我吗?
cd_tdh
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By: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

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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

 

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


 回到顶部