以文本方式查看主题 - 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("工作单位") DataTables("证书编号表").LoadTop = 100 \'默认显示100行 |
-- 作者:lisheng1971 -- 发布时间:2017/5/24 10:15:00 -- 这个应该怎么改代码?在所有的Filter前面都加LOAD? |