以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 追加数据以及分页加载问题 (http://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 |