Foxtable(狐表)用户栏目专家坐堂 → [求助]改进BOM目录树的生成方式


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

主题:[求助]改进BOM目录树的生成方式

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


加好友 发短信
等级:幼狐 帖子:125 积分:946 威望:0 精华:0 注册:2013/8/14 19:12:00
[求助]改进BOM目录树的生成方式  发帖心情 Post By:2013/9/3 11:19:00 [只看该作者]

情况如下:

有一份完整的 BOM  表,有3900+多项目。发现 生成一份完成所有产品  目录树时 ,但耗时间 (约40S )。

 

想这样实现,先筛选某个产品,然后生成该产品的目录树 ,可发现 还是生产 整个目录树 。 代码如下 ,该如何改正 ,才不是生成所有的目录树呢 ?

 

 tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("BOM")
tr.StopRedraw()
tr.Nodes.Clear

For Each dr As DataRow In dt.datarows
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 2 Then
        nd = tr.Nodes.Add(dr("科目代码"), dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next
tr.ResumeRedraw()

 

 

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130903111725.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/3 11:25:00 [只看该作者]

循环table  不要循环datatable

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/3 11:28:00 [只看该作者]

1、耗时问题的解决方法:

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

 

2、Table才是筛选后的行,DataTable始终包括所有行:

 

For Each dr As Row In Tables("xxx").rows
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 2 Then
        nd = tr.Nodes.Add(dr("科目代码"), dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next

好好看看:

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

 


 回到顶部