| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3617 人关注过本帖, 1 人收藏
标题:今天无意发现解决Grid白屏问题。
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
如果不是动态栏目数据,GRID不用改变数据源,用固定表,只变动数据记录。
2015-12-14 09:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:5 
回复 9楼 mywisdom88
数据源为空,当然白屏了

坚守VFP最后的阵地
2015-12-14 09:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
试试
THISFORM.LOCKSCREEN=.T.

...........

THISFORM.LOCKSCREEN=.F.

看看是不是还有白屏

[此贴子已经被作者于2015-12-14 09:27编辑过]


坚守VFP最后的阵地
2015-12-14 09:25
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用mywisdom88在2015-12-13 13:16:49的发言:

前段时间,用SQL数据库,在本地测试时,表格没有白屏现象,但通过VPN连接到不同局域网的SQL数据库时,由于网速慢,以前的查询用到表格Grid时,发现有白屏现象。
以前是这样查询的,
sqlexec(nhandle,'select * from sql_table','sql_table')
select * from sql_table into curs  sql_table_tmp readwrite
use in sql_table
select sql_table_tmp
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
当重复按查询按钮时,我发现不在同一个局域网时,在查询回来的数据量很大的时候,会出现表格白屏,
今天无意发现,在查询前,先修改表格的数据源,竟然无意解决了这个白屏问题
把以上语句改为。

**清空表格,同时更换数据源,防止查询过程表格出现白屏,没这段会白屏
select * from sql_table_tmp where .f. into curs sql_table_tmp1
select sql_table_tmp1
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
thisform.grid1.Refresh

sqlexec(nhandle,'select * from sql_table','sql_table') &&先查询数据到sql_table,不能写的
select * from sql_table into curs  sql_table_tmp readwrite &&把查询数据改为可以写的表去sql_table_tmp
use in sql_table &&关闭临时表
select sql_table_tmp &&表格的数据源sql_table_tmp
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
求分享
1、在Grid1的init 中加入
    select * from sql_table_tmp where .f. into curs sql_table_tmp1 readwrite
    THIS.RECORDSOURCE='sql_table_tmp1'

2、查询时
    sqlexec(nhandle,'select * from sql_table','sql_table')
    zap in (THISFORM.Grid1.RECORDSOURCE)
    select (THISFORM.Grid1.RECORDSOURCE)
    APPEND FROM (DBF('sql_table'))
    use in sql_table



[此贴子已经被作者于2015-12-16 16:55编辑过]

2015-12-16 15:45
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
还能这样的啊。又学到了。
zap in (THISFORM.Grid1.RECORDSOURCE)
select (THISFORM.Grid1.RECORDSOURCE)
2015-12-16 21:07
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
用zap命令不会影响表格的数据源,所以不会白屏。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-12-17 08:16
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
我看了以上各位的发言,感觉还是没有说到问题的实质。
对于本例来说,已经将 Grid 的 RecordSource 设为 sql_Table 时,下一次执行时,就不能直接覆盖 sql_table或执行 pack 之类的操作,否则,会出现白屏现象。
正确的方法是:在覆盖 sql_table 前,先执行 Thisform.Grid.RecordSource = null,等重新生成 sql_table 后,再执行 Thisform.Grid.RecordSource = "sql_table"

泉城飞狐
2015-12-17 09:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
改变RecordSource属性的话,VFP自己有这样的说法:
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-12-17 10:14
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
对于本例来说,并不是改变 RecordSource 的问题,而是“覆盖”了与 Grid.RecordSource 相关联的表所致。对于这种操作,必须在覆盖前执行 THISFORM.Grid.RecordSource=NULL。

泉城飞狐
2015-12-21 11:42
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用liuxingang28在2015-12-21 11:42:26的发言:

对于本例来说,并不是改变 RecordSource 的问题,而是“覆盖”了与 Grid.RecordSource 相关联的表所致。对于这种操作,必须在覆盖前执行 THISFORM.Grid.RecordSource=NULL。

你是说把这3句:
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
改为:
THISFORM.Grid.RecordSource=NULL
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
2015-12-21 11:59
快速回复:今天无意发现解决Grid白屏问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033336 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved