以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]这个绘制能否优化?(大红袍老师请进,发现新问题)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83526)

--  作者:36792209
--  发布时间: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编辑过]

--  作者:大红袍
--  发布时间:2016/4/11 19:54:00
--  

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

 

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

 

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

 

 


--  作者:大红袍
--  发布时间:2016/4/11 19:55:00
--  

 

http://www.foxtable.com/help/topics/1451.htm

 


--  作者:36792209
--  发布时间:2016/4/11 19:55:00
--  
可惜代码不会写。。图片点击可在新窗口打开查看

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

--  作者:大红袍
--  发布时间: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
--  发布时间:2016/4/11 20:10:00
--  
谢谢老师,我先试试看看运行效率怎么样
--  作者:36792209
--  发布时间:2016/4/11 20:18:00
--  
老师,不行啊。

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

--  作者:大红袍
--  发布时间:2016/4/11 20:19:00
--  
AfterOpenProject事件啊
--  作者:大红袍
--  发布时间:2016/4/11 20:20:00
--  

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


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