以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口打开速度求助版主?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101011)

--  作者:lisheng1971
--  发布时间:2017/5/23 15:43:00
--  窗口打开速度求助版主?
窗口是并列窗口,表中有8万行左右的数据,还会不断增加,每次打开窗口时都要很长时间,点击窗口中的复选组合框进行查询时也很慢,这是正常的吗?烦请版主指点一下,谢谢!!!!!!
--  作者:lisheng1971
--  发布时间:2017/5/23 16:06:00
--  
时间大概在10-12秒以上,这个跟代码行数有些多有关系吗?


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

 尽量不要一次性加载全部8万行数据。

 

 你可以用动态加载、分页加载。比如,加载 今天、本月的数据,比如,加载第一页的数据

 

 http://www.foxtable.com/webhelp/scr/1933.htm

 

 http://www.foxtable.com/webhelp/scr/2269.htm

 


--  作者:lisheng1971
--  发布时间:2017/5/23 16:29:00
--  
谢谢版主指点!这样动态加载的话确实很快(比如加载2000行),但如果我我查询的数据正好跨了第2 页和第3页,我要查询其中的某批次数据就显示不全了吧?
--  作者:有点色
--  发布时间:2017/5/23 17:35:00
--  
以下是引用lisheng1971在2017/5/23 16:29:00的发言:
谢谢版主指点!这样动态加载的话确实很快(比如加载2000行),但如果我我查询的数据正好跨了第2 页和第3页,我要查询其中的某批次数据就显示不全了吧?

 

你查询可以用加载,而不用筛选。加载的话,肯定能查询到你需要的数据。


--  作者:lisheng1971
--  发布时间:2017/5/24 9:41:00
--  
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看 版主:这个查询用加载,不用筛选,我不是很明白,水平不够,请指教,谢谢!!!!!!
--  作者:有点色
--  发布时间:2017/5/24 9:42:00
--  

 你查询数据的代码怎么写的?设置filter?

 

 那你把filter改成LoadFilter、Load即可。


--  作者:lisheng1971
--  发布时间:2017/5/24 10:03:00
--  
Dim gzdw As WinForm.CheckedComboBox = e.Form.Controls("工作单位")
Dim xgs As WinForm.CheckedComboBox = e.Form.Controls("县公司")
Dim jdpc As WinForm.CheckedComboBox = e.Form.Controls("鉴定批次")
Dim jdgz As WinForm.CheckedComboBox = e.Form.Controls("鉴定工种")
Dim xm As WinForm.TextBox = e.Form.Controls("姓名") 
Dim sfzhm As WinForm.TextBox = e.Form.Controls("身份证号码") 
Dim zsbh As WinForm.TextBox = e.Form.Controls("证书编号")
Dim filter As String = "1=1"
If gzdw.Text > "" Then
    filter &= " and 工作单位 in (\'" & gzdw.Text.replace(",", "\',\'") & "\')"
End If
If xgs.Text > "" Then
    filter &= " and 县公司 = in (\'" & xgs.Text.replace(",", "\',\'") & "\')"
End If
If jdpc.Text > "" Then
    filter &= " and  鉴定批次 in (\'" & jdpc.Text.replace(",", "\',\'") & "\')"
End If
If jdgz.Text > "" Then
    filter &= " and  鉴定工种 in (\'" & jdgz.Text.replace(",", "\',\'") & "\')"
End If
If xm.Text > "" Then
    filter &= " and  姓名 like \'*" & xm.Text & "*\' "
End If
If sfzhm.Text > "" Then
    filter &= " and  身份证号码 like \'*" & sfzhm.Text & "*\'"
End If
If zsbh.Text > "" Then
    filter &= " and  证书编号 like \'*" & zsbh.Text & "*\'"
End If

Tables("证书编号表").Filter = filter

这是窗口“查询”按钮的代码

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

Dim gzdw As WinForm.CheckedComboBox = e.Form.Controls("工作单位")
Dim xgs As WinForm.CheckedComboBox = e.Form.Controls("县公司")
Dim jdpc As WinForm.CheckedComboBox = e.Form.Controls("鉴定批次")
Dim jdgz As WinForm.CheckedComboBox = e.Form.Controls("鉴定工种")
Dim xm As WinForm.TextBox = e.Form.Controls("姓名")
Dim sfzhm As WinForm.TextBox = e.Form.Controls("身份证号码")
Dim zsbh As WinForm.TextBox = e.Form.Controls("证书编号")
Dim filter As String = "1=1"
If gzdw.Text > "" Then
    filter &= " and 工作单位 in (\'" & gzdw.Text.replace(",", "\',\'") & "\')"
End If
If xgs.Text > "" Then
    filter &= " and 县公司 = in (\'" & xgs.Text.replace(",", "\',\'") & "\')"
End If
If jdpc.Text > "" Then
    filter &= " and  鉴定批次 in (\'" & jdpc.Text.replace(",", "\',\'") & "\')"
End If
If jdgz.Text > "" Then
    filter &= " and  鉴定工种 in (\'" & jdgz.Text.replace(",", "\',\'") & "\')"
End If
If xm.Text > "" Then
    filter &= " and  姓名 like \'%" & xm.Text & "%\' "
End If
If sfzhm.Text > "" Then
    filter &= " and  身份证号码 like \'%" & sfzhm.Text & "%\'"
End If
If zsbh.Text > "" Then
    filter &= " and  证书编号 like \'%" & zsbh.Text & "%\'"
End If

DataTables("证书编号表").LoadTop = 100 \'默认显示100行
DataTables("证书编号表").LoadPage = 0 \'显示第一页
DataTables("证书编号表").LoadFilter = filter
DataTables("证书编号表").Load


--  作者:lisheng1971
--  发布时间:2017/5/24 10:15:00
--  
这个应该怎么改代码?在所有的Filter前面都加LOAD?