以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  追加数据以及分页加载问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=151790)

--  作者:swagger
--  发布时间:2020/7/3 12:54:00
--  追加数据以及分页加载问题
窗口1的table1 的 currentchanged 输入以下代码:


If Tables("窗口1_table1").current("产品")= "产品1" And Tables("窗口_table1").current("规格")= "规格1"  Then
Tables("窗口1_table2").DataSource = DataTables("产品明细1")
Tables("窗口1_table2").SetColVisibleWidth("产品ID|98|产品名称|98|规格|98|数量|98")
Tables("窗口1_table1").Cols("产品ID").DropForm = "产品库"
Tables("窗口1_table2").AutoSizeRow(-1)


DataTables("产品明细1").loadFilter = ""
DataTables("产品明细1").loadtop = 300
DataTables("产品明细1").load


If e.Table.Current IsNot Nothing Then
    Dim Filter As String = "产品ID = \'" & e.Table.Current("产品ID") & "\'"
    If DataTables("产品明细").Find(filter) Is Nothing Then
        DataTables("产品明细").AppendLoad(filter)
    End If
        Tables("窗口1_Table2").filter = filter
End If

elseif Tables("窗口1_table1").current("产品")= "产品2" And Tables("窗口_table1").current("规格")= "规格2"  Then


Tables("窗口1_table2").DataSource = DataTables("产品明细2")
Tables("窗口1_table2").SetColVisibleWidth("产品ID|98|产品名称|98|规格|98|数量|98")
Tables("窗口1_table1").Cols("产品ID").DropForm = "产品库"
Tables("窗口1_table2").AutoSizeRow(-1)

DataTables("产品明细2").loadFilter = ""
DataTables("产品明细2").loadtop = 20
DataTables("产品明细2").loadpage = 0
DataTables("产品明细2").load


If e.Table.Current IsNot Nothing Then
    Dim Filter As String = "产品ID = \'" & e.Table.Current("产品ID") & "\'"
    If DataTables("产品明细2").Find(filter) Is Nothing Then
        DataTables("产品明细2").AppendLoad(filter)
    End If
        Tables("窗口1_Table2").filter = filter
End If

end if 



问题1:DataTables("产品明细1").loadtop = 300 或者 DataTables("产品明细1").loadtop = “” 或者 DataTables("产品明细1").loadtop = nothing 会导致加载速度慢,有没有其它办法加载速度快些?(不分页加载)

问题2:如果table2 采用分页加载,因为按条件加载不一样的表,那么怎么写上一页,下一页代码? 如 上一页 

With DataTables("产品明细1")
    If .LoadPage > 0 Then
        .LoadPage = .LoadPage - 1
        .Load()
    End If
End With


[此贴子已经被作者于2020/7/3 12:57:12编辑过]

--  作者:有点酸
--  发布时间:2020/7/3 13:55:00
--  
1、如果加载的数据量较多,肯定会变慢,没有办法。, 此外建议table2不要用DataSource绑定到表,用Fill比较合适:

2、你可以用一个全局变量保存加载的表名:

这样就可以:

With DataTables(Vars("变量名”)
    If .LoadPage > 0 Then
        .LoadPage = .LoadPage - 1
        .Load()
    End If
End With