Foxtable(狐表)用户栏目专家坐堂 → 大神看过来,帮我优化下这段代码


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

主题:大神看过来,帮我优化下这段代码

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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
大神看过来,帮我优化下这段代码  发帖心情 Post By:2018/5/15 16:20:00 [显示全部帖子]

'【根据推荐人,获取完整级层路径】
If e.DataCol.Name = "B001HYZLB_TuiJianRen" Then
    Dim pdr As DataRow = e.DataTable.Find("B001HYZLB_YongHuID")
    Dim str As String = ""
    Do While pdr IsNot Nothing
        str = "/" & pdr("B001HYZLB_YongHuID") & str
        pdr = e.DataTable.Find("B001HYZLB_YongHuID")
    Loop
    e.DataRow("B001HYZLB_CengJiMa") = str & "/" & e.DataRow("B001HYZLB_YongHuID") & "/"
End If

数据1000多条,代码写在DataColChanged中,需要根据推荐关系,获得每个会员的绝对层级路径,重置B001HYZLB_TuiJianRen列时就卡死了,请给优化下,怎么才能提高速度
[此贴子已经被作者于2018/5/15 16:22:40编辑过]

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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
  发帖心情 Post By:2018/5/15 16:21:00 [显示全部帖子]

'【根据推荐人,获取完整级层编码】
If e.DataCol.Name = "B001HYZLB_TuiJianRen" Then
    Dim pdr As DataRow = e.DataTable.Find("B001HYZLB_YongHuID")
    Dim str As String = ""
    Do While pdr IsNot Nothing
        str = "/" & pdr("B001HYZLB_YongHuID") & str
        pdr = e.DataTable.Find("B001HYZLB_YongHuID")
    Loop
    e.DataRow("B001HYZLB_CengJiMa") = str & "/" & e.DataRow("B001HYZLB_YongHuID") & "/"
End If
[此贴子已经被作者于2018/5/15 16:23:10编辑过]

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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
  发帖心情 Post By:2018/5/15 16:57:00 [显示全部帖子]

谢谢我再看看

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


加好友 发短信
等级:小狐 帖子:384 积分:4174 威望:0 精华:0 注册:2011/12/31 14:28:00
  发帖心情 Post By:2018/5/15 17:23:00 [显示全部帖子]

以下是引用有点甜在2018/5/15 16:46:00的发言:

加入一个辅助列【是否处理完成】。

 

加入,你重置一个四级的人,那么上级(三级、二级、一级),也是应该得到值的了吧?不需要重复find查找一次。

 

重置列之前,全部行设置成false,处理完成的行设置成true,当遇到【处理完成=true】的时候,不要再往上查找,直接使用其路径。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会员查询系统.foxdb


好像还是不行,麻烦看下例子
提示

 .NET Framework 版本:2.0.50727.8830

Foxtable 版本:2017.3.3.1

错误所在事件:表,B001HYZLB, DataColChanged

详细错误信息:

调用的目标发生了异常。

筛选表达式“B001HYZLB_YongHuID”的计算结果不是布尔值项。

 

[此贴子已经被作者于2018/5/15 17:26:26编辑过]

 回到顶部