以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 加载树不显示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178613) |
-- 作者:weibu -- 发布时间:2022/7/12 11:22:00 -- 加载树不显示 老师,加载树原来显示过段时间不显示了。是跟进数据量有关系吗?现在数据量有500万条 我该怎么做能显示加载树
|
-- 作者:有点蓝 -- 发布时间:2022/7/12 11:34:00 -- 怎么设置的加载树?截图看看 |
-- 作者:weibu -- 发布时间: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()
|
-- 作者:有点蓝 -- 发布时间:2023/2/5 20:27:00 -- 看不出有什么问题,有没有提示什么错误? |
-- 作者:weibu -- 发布时间:2023/2/6 8:49:00 -- 没有任何提示,就是直接不显示加载树。原来是偶尔不显示。现在是不显示的时候多,显示的时候少。 原来数据量少的时候没问题。现在数据量大概有500万条。用的是SQLserver数据库,云服务器
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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 -- 发布时间:2023/2/6 11:04:00 -- drs数量有1000条左右。不算多吧 |
-- 作者:有点蓝 -- 发布时间:2023/2/6 11:08:00 -- 如果作为合并查询条件用,就多了,而且是非常多了。具体可以看看优化数据库里的一些说明 |
-- 作者:weibu -- 发布时间: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
|