以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  单击目录树,运行慢;  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101047)

--  作者:yancheng
--  发布时间:2017/5/24 10:26:00
--  单击目录树,运行慢;
目录树-NodeMouseClick事件:运行一次,要3-5S。

Dim Filter As String = ""
If e.Node.Name = "所有清单" Then
    filter = ""
Else
    Dim dr As DataRow = e.Node.DataRow
    Sele ct Case e.Node.Level
        Case 0
            Return
        Case 1
            Return
        Case 2
            filter = "专业 = \'" & dr("专业") & "\' and 一级分部 = \'" & dr("一级分部") & "\' and 二级分部 = \'" & dr("二级分部") & "\'"
        Case 3
            If dr.IsNull("三级分部") = True
                filter = "专业 = \'" & dr("专业") & "\' and 一级分部 = \'" & dr("一级分部") & "\' and 二级分部 = \'" & dr("二级分部") & "\'and 子目名称 = \'" & dr("子目名称") & "\'"
                \'Dim drs As List(of DataRow) = Tables("材料指引").DataTable.Select("选 =1")
                \'For Each dr1 As DataRow In drs
                \'dr1("选") = 0
                \'Next
            Else
                filter = "专业 = \'" & dr("专业") & "\' and 一级分部 = \'" & dr("一级分部") & "\' and 二级分部 = \'" & dr("二级分部") & "\'and 三级分部 = \'" & dr("三级分部") & "\'"
            End If
        Case 4
            If dr.IsNull("四级分部") = True
                filter = " 三级分部 = \'" & dr("三级分部") & "\' and 专业 = \'" & dr("专业") & "\' and 一级分部 = \'" & dr("一级分部") & "\' and 二级分部 = \'" & dr("二级分部") & "\'and 子目名称 = \'" & dr("子目名称") & "\'"
                \'Dim drs As List(of DataRow) = Tables("材料指引").DataTable.Select("选 =1")
                \'For Each dr1 As DataRow In drs
                \'dr1("选") = 0
                \'Next
            Else
                filter = " 专业 = \'" & dr("专业") & "\' and 一级分部 = \'" & dr("一级分部") & "\' and 二级分部 = \'" & dr("二级分部") & "\'and 三级分部 = \'" & dr("三级分部") & "\' and 四级分部 = \'" & dr("四级分部") & "\'"
            End If
        Case 5
            filter = " 三级分部 = \'" & dr("三级分部") & "\' and 专业 = \'" & dr("专业") & "\' and 一级分部 = \'" & dr("一级分部") & "\' and 二级分部 = \'" & dr("二级分部") & "\'and 四级分部 = \'" & dr("四级分部") & " \' and 子目名称 = \'" & dr("子目名称") & "\' "
            
            \'Dim drs As List(of DataRow) = Tables("材料指引").DataTable.Select("选 =1")
            \'For Each dr1 As DataRow In drs
            \'dr1("选") = 0
            \'Next
            
    End Select
End If
SystemReady = False

Tables("添加清单_table3").StopRedraw

If filter > "" Then
    DataTables("清单指引").RemoveFor(filter)
    DataTables("清单指引").AppendLoad(filter)
    Tables("添加清单_table3").filter = filter
Else
    DataTables("清单指引").LoadFilter = filter
    DataTables("清单指引").load
    Tables("添加清单_table3").filter = filter
End If
Tables("添加清单_table3").ResumeRedraw

SystemReady = True
\'Tables("添加清单_table2").filter = filter

[此贴子已经被作者于2017/5/24 10:26:18编辑过]

--  作者:有点色
--  发布时间:2017/5/24 10:34:00
--  

你用了AppendLoad和Load,如果你的表格数据较大,或者加载的数据较大,几秒的延迟是正常的。

 

如果数据不多,建议你直接加载所有数据进来。


--  作者:yancheng
--  发布时间:2017/5/24 12:59:00
--  
数据也不大。每次用它加载 的数据,appload ,一次1000条以内吧。(我现在是局域网内操作。登录 的自己的IP)都这么慢。如果放到云服务器。不得更慢了。

因为,我表多。表内的数据每个,不想每个加载,这样的开启软件太慢了。
[此贴子已经被作者于2017/5/24 13:01:41编辑过]

--  作者:有点色
--  发布时间:2017/5/24 14:39:00
--  

你如果不用appendload,直接用load呢?是否也是同样的慢?

 

加载数据,慢是正常的。如果太慢,建议在数据库那里,做一下索引。


--  作者:舟舟
--  发布时间:2017/5/24 14:52:00
--  
代码好多,可以优化优化