Foxtable(狐表)用户栏目专家坐堂 → 求助:打开窗体效率慢有什么更好的优化方法?(已解决)


  共有6686人关注过本帖树形打印复制链接

主题:求助:打开窗体效率慢有什么更好的优化方法?(已解决)

帅哥哟,离线,有人找我吗?
jiterp
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
求助:打开窗体效率慢有什么更好的优化方法?(已解决)  发帖心情 Post By:2013/11/14 21:36:00 [显示全部帖子]

下面截图是我遇到的问题,请求帮忙,开发好的东西给客户,客户都不敢用,有什么好的方法优化下效率?


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

最后,解决方案见以下分享贴:
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=42594&replyID=&skin=1

[此贴子已经被作者于2013-11-16 17:08:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/14 22:33:00 [显示全部帖子]

我只要做到打开窗口后不加载任何数据,然后再按“常用条件”再进行过滤数据。

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/14 22:48:00 [显示全部帖子]

我现在是想进入窗体时,不要加载任何数据,至于条件方面,可以控制客户让他必选。

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/14 22:51:00 [显示全部帖子]

现在是打开窗体,都要等三分钟,而不是查询数据时等待三分钟,如果是查询时有这么多数据,要用这个时长,还可以向客户解释,这个客户也能理解。关键是打开窗体等待的时长。
[此贴子已经被作者于2013-11-14 22:51:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/14 23:49:00 [显示全部帖子]

以下是引用有点甜在2013-11-14 22:59:00的发言:
 你把表控件的 select语句 属性写的东西去除掉。然后动态加载数据。

[此贴子已经被作者于2013-11-14 22:59:03编辑过]


这样操作一样要加载所有的数据,也是在等待中。


 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/15 12:03:00 [显示全部帖子]

我在窗口使用的是表格控件,数据源用的是SQLQuery型,不是SQLTABLE型,因为SQL语句是多个表组合成的一个查询表。

我在窗口打开后的事件,已经定义了该表格的数据源过滤条件为空,看了各位老师的指导,还是有点蒙,确实没有得到要领。

如果在SQL语句中就设置了条件,那我后续按条件过滤不是一样过滤不出来数据了?

我的想法就是:打开窗口不要加载查询表的数据,而是打开后,再根据设定的条件进行过滤查询表。
比如说我这个组合的查询表,有69万的数据,但打开窗口时,是不需要加载的,而是打开窗口后,再根据我输入的条件再进行查询。


 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/15 16:15:00 [显示全部帖子]

我按狐爸的例子,改用我的数据做了下,打开窗品是快了,但出现以下问题:
1、只过滤了前20条数据,按下一页、上一页、末页都是无效的。
2、然后点点高级查询,也只能查前20条数据中的内容,其他都查不了。
我把SQL中69万的数据转到ACCESS中,做了个例子,发上来,传了几次传不上来,故传到百度云去了,请狐爸帮我看一下,谢谢。


例子下载地址:http://pan.baidu.com/s/11khxS

对了,这文件不到5M,在这里论坛怎么老上传到一半就断了呢?


 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/15 19:16:00 [显示全部帖子]

以下是引用不倒的翁在2013-11-15 17:43:00的发言:
 楼主碰到的问题和我昨天碰到的问题差不多,这个问题我前前后后各种方法搞了2天了。
复杂的多表分页加载,今天测试了另外一个自己认为比较简单的方法,FILL你要的数据到窗口表中,然后用DataTable的分页加载方法可以加载,就是页数不要对总页数做判断,直接LoadPage - 1 这样加载页面,需要总加载页数的话在Select语句中对你加载的Select做Count统计条目,然后Math计算总页码,用个全局变量来储存总页码供其他地方调用。
多表复杂的Select语句加载的数据DataTable的TotalPages属性会出问题,可能Fox对复杂多表的页数统计代码有问题,狐爸是否能改善下。
http://www.foxtable.com/help/topics/2721.htm 这个的方法虽然也能用,但对页码的控制和Select语句的复杂程度增加了许多,没有DataTable的LoadPage分页加载方法来的简单。

帮我做一下实例,好不,我对狐表刚接触,客户等着我解决方法,我晕哦.


 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2013/11/15 20:36:00 [显示全部帖子]

以下是引用e-png在2013-11-15 19:12:00的发言:

楼主要把查询的近70万行数据都分页显示, 这不慢才怪呢.  其实这样的分页也没有什么实际意义. 

 

多数情况下是查询某类的数据,再做分页显示. 看看我用你的access数据源的这个例子,应该是飞快的::::::::::

  

数据原路径请重新设置一下...

 下载信息  [文件大小:288.0 KB  下载次数:3]
图片点击可在新窗口打开查看点击浏览该文件:按id加载.table

[此贴子已经被作者于2013-11-15 19:15:23编辑过]

 "多数情况下是查询某类的数据,再做分页显示"  ,  实际上我就是想能快速打开窗口,然后按条件查询,找到我要的结果,至于分不分页,我都没关系.因为我真正处理的数据是不多的.现在是卡在进入窗口要等待.
你这个例子,打开窗口是很快,但是按高级过滤条件进行查询数据,也是只能找到当前加载的第一页数据,其他的也找不到.

[此贴子已经被作者于2013-11-15 20:36:54编辑过]

 回到顶部