Foxtable(狐表)用户栏目专家坐堂 → drawcell的问题


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

主题:drawcell的问题

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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
drawcell的问题  发帖心情 Post By:2019/1/12 16:26:00 [只看该作者]

如果某个表有了drawcell代码 就无法再执行全局drawcell吗?


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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/1/12 16:35:00 [只看该作者]

现在发现有几个表的drawcell事件不执行

我已经在currenttablechanged事件中加入了
CurrentTable.DataTable.GlobalHandler.DrawCell=True
在全局表事件中设置了如下代码
 Dim dr As DataRow=DataTables("表格标记").find("表名='" & e.Table.name & "' and 用户='" & _userid & "' and id='" & e.Row("_identify") & "'")
    If dr IsNot Nothing Then
        Dim s As String
        s=Rand.NextString(5)
        e.Table.DataTable.AddUserStyle(s,Color.FromARGB(dr("颜色")),Color.black)
        e.Style=s
    End If


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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/1/12 16:41:00 [只看该作者]

另外发现这种标记表格的方式非常耗资源 CPU基本都在15以上 开了20个表

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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/1/12 16:52:00 [只看该作者]

把个表的drawcell事件删除 全局的drawcell才生效
现在的问题是有没有办法优化下效率,感觉非常卡顿

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


加好友 发短信
等级:超级版主 帖子:27520 积分:140423 威望:0 精华:7 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/12 17:17:00 [只看该作者]

以下是引用rjh4078在2019/1/12 16:26:00的发言:
如果某个表有了drawcell代码 就无法再执行全局drawcell吗?

是的

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


加好友 发短信
等级:超级版主 帖子:27520 积分:140423 威望:0 精华:7 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/12 17:17:00 [只看该作者]

具体代码或者上传实例说明

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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/1/12 19:35:00 [只看该作者]

drawcell的代码

 Dim dr As DataRow=DataTables("表格标记").find("表名='" & e.Table.name & "' and 用户='" & _userid & "' and id='" & e.Row("_identify") & "'")
    If dr IsNot Nothing Then
        Dim s As String
        s=Rand.NextString(5)
        e.Table.DataTable.AddUserStyle(s,Color.FromARGB(dr("颜色")),Color.black)
        e.Style=s
    End If
我做了一张表用来保存用户标记的行的id和颜色 然后绘制

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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/1/12 19:53:00 [只看该作者]

效果能达到 但是就是整个项目都卡住了 点一下 卡几秒

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


加好友 发短信
等级:版主 帖子:84310 积分:422725 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/13 22:18:00 [只看该作者]

不要再drawcell事件写耗时代码,特别是find的代码。

 

与其一直find,不如加入一个辅助列,把信息引用过来。然后再在drawcell里面直接判断本表数据。


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


加好友 发短信
等级:九尾狐 帖子:2784 积分:20238 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/1/14 15:13:00 [只看该作者]

主要表太多 如果每个表都加辅助列有点麻烦

 回到顶部
总数 12 1 2 下一页