Foxtable(狐表)用户栏目专家坐堂 → [求助]这个绘制能否优化?(大红袍老师请进,发现新问题)


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

主题:[求助]这个绘制能否优化?(大红袍老师请进,发现新问题)

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


加好友 发短信
等级:童狐 帖子:241 积分:1782 威望:0 精华:0 注册:2015/7/13 14:36:00
[求助]这个绘制能否优化?(大红袍老师请进,发现新问题)  发帖心情 Post By:2016/4/11 19:51:00 [只看该作者]

人员信息

If e.Col.Name = "身份证号码" Then
    Dim fdr As DataRow = e.Table.DataTable.Find("身份证号码 = '" & e.Row("身份证号码") & "' and _Identify <> " & e.Row("_Identify"))
    If fdr IsNot Nothing Then
        e.style = "样式1"
    End If
End If

我的代码是在人员信息表里查找身份证号码相同的,有重复的就标记颜色,可是现在数据有2000行了,操作开始有延迟了,我删除绘制代码后操作速度很快,

所以想请教下各位老师能否优化以上代码?

数据是外部数据源,联网后载所有数据的。
[此贴子已经被作者于2016/4/17 12:54:20编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/11 19:54:00 [只看该作者]

 建议加一列辅助列【是否重复】

 

 你在DataColChanged事件编写代码查找值,然后给这列赋值。

 

 那么drawcell事件,只需要获取此列的值即可判断。

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/11 19:55:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:241 积分:1782 威望:0 精华:0 注册:2015/7/13 14:36:00
  发帖心情 Post By:2016/4/11 19:55:00 [只看该作者]

可惜代码不会写。。图片点击可在新窗口打开查看

而且我也不想破坏目前的表结构,能不能不增加辅助列呢?虽然可以隐藏
[此贴子已经被作者于2016/4/11 19:56:48编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/11 20:04:00 [只看该作者]

AfterOpenPorject

 

DataTables("表A").DataCols.Add("辅助", gettype(Boolean))

DataTables("表A").DataCols("身份证号码").RaiseDataColChanged

 

DataColChanged事件

 

If e.DataCol.Name = "身份证号码" Then
    Dim count As Integer = e.DataTable.Compute("count(身份证号码)", "身份证号码 = '" & e.DataRow("身份证号码") & "'")
    If Count > 1 Then
        e.DataTable.ReplaceFor("辅助", True, "身份证号码 = '" & e.DataRow("身份证号码") & "'")
    Else
        e.DataTable.ReplaceFor("辅助", False, "身份证号码 = '" & e.DataRow("身份证号码") & "'")
    End If
End If

 

DrawCell事件

 

If e.Col.Name = "身份证号码" Then
    If e.Row("辅助") = True Then
        e.style = "样式1"
    End If
End If

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


加好友 发短信
等级:童狐 帖子:241 积分:1782 威望:0 精华:0 注册:2015/7/13 14:36:00
  发帖心情 Post By:2016/4/11 20:10:00 [只看该作者]

谢谢老师,我先试试看看运行效率怎么样

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


加好友 发短信
等级:童狐 帖子:241 积分:1782 威望:0 精华:0 注册:2015/7/13 14:36:00
  发帖心情 Post By:2016/4/11 20:18:00 [只看该作者]

老师,不行啊。

我在DataColChanged输入代码确定后提示  ”列辅助已经存在!”

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/11 20:19:00 [只看该作者]

AfterOpenProject事件啊

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/11 20:20:00 [只看该作者]

这样还不会,请上传实例。


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


加好友 发短信
等级:童狐 帖子:241 积分:1782 威望:0 精华:0 注册:2015/7/13 14:36:00
  发帖心情 Post By:2016/4/11 20:23:00 [只看该作者]

。。原来可以上传附件,现在怎么传了没反映。。。
[此贴子已经被作者于2016/4/11 20:24:07编辑过]

 回到顶部
总数 44 1 2 3 4 5 下一页