Foxtable(狐表)用户栏目专家坐堂 → 加载树不显示


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

主题:加载树不显示

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5363 威望:0 精华:0 注册:2018/5/19 22:27:00
加载树不显示  发帖心情 Post By:2022/7/12 11:22:00 [只看该作者]

老师,加载树原来显示过段时间不显示了。是跟进数据量有关系吗?现在数据量有500万条
我该怎么做能显示加载树

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


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

怎么设置的加载树?截图看看

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5363 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2023/2/4 21:19:00 [只看该作者]

老师我做的一个按钮,单击事件如下。加载树很多时候不显示。哪个地方有问题?

MainTable = Tables("rs_sourcecode")
Dim dr As DataRow = DataTables("rs_userinfo").find("sname = '" & rsuser & "'")  '找到当前登录者所在的行
Dim filter As String = "1=2"
If dr("position") = "管理者" Then
    Dim drs = DataTables("rs_departinfo").Select("departno like '" & dr("departno") & "%'")
    For Each cdr As DataRow In drs
        Filter &= " or nowdepart = '" & cdr("depart") & "' And isuse = 1"
    Next
    Else If dr("position") = "职员" Then
    Filter = "nowdepart = '" & dr("indepart") & "'And isuse = 1"
End If
DataTables("rs_sourcecode").LoadTop = "2000"
DataTables("rs_sourcecode").LoadOrder = "indate Desc"
Tables("rs_sourcecode").OpenLoadTree("nowdepart|proname|indate YM",200,2000,True,Filter)
Tables("rs_sourcecode").Sort = "indate Desc"
Forms("库存汇总").Open()

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/5 20:27:00 [只看该作者]

看不出有什么问题,有没有提示什么错误?

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5363 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2023/2/6 8:49:00 [只看该作者]

没有任何提示,就是直接不显示加载树。原来是偶尔不显示。现在是不显示的时候多,显示的时候少。
原来数据量少的时候没问题。现在数据量大概有500万条。用的是SQLserver数据库,云服务器

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 8:59:00 [只看该作者]

可能数据库查询超时了

首先建议优化一下数据库:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943&replyID=&skin=1

然后换种方式,自己做目录树:http://www.foxtable.com/webhelp/topics/2692.htm,设置一下SQLCommand超时时间,设置大一点

建议参考这里的方式动态生成子节点:http://www.foxtable.com/webhelp/topics/3308.htm,不要一次性加载所有节点

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


加好友 发短信
等级:九尾狐 帖子:2249 积分:18530 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2023/2/6 8:59:00 [只看该作者]

If dr("position") = "管理者" Then
    Dim drs = DataTables("rs_departinfo").S   elect("departno like '" & dr("departno") & "%'")  '本来like的效率就不高
    For Each cdr As DataRow In drs
        Filter &= " or nowdepart = '" & cdr("depart") & "' And isuse = 1"   '如果drs.count的数量比较大,那这个filter就可能很长,另外可能这个条件有点问题,组合以后的整个条件就是 false or x and B or y and y or Z and y ,似乎应当在or 后面加上括号
    Next
Else If dr("position") = "职员" Then
    Filter = "nowdepart = '" & dr("indepart") & "'And isuse = 1"
End If

这个drs的数据行有多少哦。如果数据行数很多的话,那filter的判断效率太低,有没有可能导致数据过滤的效率太低,进而影响树的构建?
条件里的or后面加上括号试试

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5363 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2023/2/6 11:04:00 [只看该作者]

drs数量有1000条左右。不算多吧

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/6 11:08:00 [只看该作者]

如果作为合并查询条件用,就多了,而且是非常多了。具体可以看看优化数据库里的一些说明

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


加好友 发短信
等级:三尾狐 帖子:659 积分:5363 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2023/2/8 10:13:00 [只看该作者]

   Select Case e.Node.Level
        Case 0
            Filter = "[nowdepart] = '" & e.Node.Text & "'"
        Case 1
            Filter = "[nowdepart] = '" & e.Node.ParentNode.Text & "' And [proname] = '" & e.Node.Text & "'"
        Case 2
            Filter = "[nowdepart] = '" & e.Node.ParentNode.Text & "' And [proname] = '" & e.Node.ParentNode.Text & "'And [prodd] = '" & e.Node.Text & "' ’老师第一个"[nowdepart] = '" & e.Node.ParentNode.Text &  这个是父节点的父节点咋写代码?    目录树是一级目录是一张表,二三级目录是另外一张表生成的。   
       
    End Select
End If

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