主题:求助经典问题:grid空白
zhlu1986 [专家分:0] 发布于 2009-05-03 13:43:00
遇到这样的问题:
点击表单1中的“查询”,
运行表单2,此中grid闪出结果后变成空白。(但是如果新建grid1,则多次查询也没有这个问题。关闭vfp再重新打开,重新运行出现此情况。。)
搜索了一下,发现这个问题是个经典问题。我的问题似乎比别人还简单一些,但是尝试了一些办法仍然无法解决。
目前grid属性如下:grid1.recordsourcetype=1-别名
grid1.recordsource=table1
含有grid的表单2的init事件如下:
select table1
thisform.grid1.recordsource=null
thisform.grid1.recordsource="table1"
set filter to &tj; &&tj为筛选条件,从table1中筛选,
and between(长度,val(alltrim(st)),val(alltrim(ed)))
thisform.refresh
thisform.grid1.refresh
输入查询条件的表单1“查询”按钮如下:
select rabiesinfo
set filter to .t.
*筛选条件编写
public tj
tj=".t."
if not empty(alltrim(thisform.cmb条件1.value))
tj=tj+".and.条件1='"+alltrim(thisform.cmb条件1.value)+"'"
endif
if not empty(alltrim(thisform.cmb条件2.value))
tj=tj+".and. 条件2='"+alltrim(thisform.cmb条件2.value)+"'"
endif
do form form2
thisform.release
还望各位高手不吝赐教!
回复列表 (共9个回复)
沙发
qjbzjp [专家分:8830] 发布于 2009-05-03 15:45:00
去掉 thisform.grid1.recordsource=null 试试。
板凳
zhlu1986 [专家分:0] 发布于 2009-05-03 19:23:00
去掉了,不行,还是空白。
[em10]
3 楼
martine [专家分:4950] 发布于 2009-05-04 09:54:00
表单不刷新试一下
4 楼
琅拿度 [专家分:2820] 发布于 2009-05-04 11:41:00
试一下:
含有grid的表单2的init事件如下:
select table1
thisform.grid1.recordsource=""
set filter to &tj; &&tj为筛选条件,从table1中筛选,
and between(长度,val(alltrim(st)),val(alltrim(ed)))、
thisform.grid1.recordsource="table1"
thisform.grid1.refresh
5 楼
wuzhouhong [专家分:10890] 发布于 2009-05-04 21:30:00
set filter to &tj; &&tj为筛选条件,从table1中筛选,
and between(长度,val(alltrim(st)),val(alltrim(ed)))
set filter 条件筛选不支持st,ed变量的,因为set filter 在Init()之外发生作用,此时st,ed已经不存在了。
6 楼
cnsdys [专家分:40] 发布于 2009-07-13 07:14:00
在load中生成源数据
7 楼
hima [专家分:10] 发布于 2009-07-15 08:33:00
用程序重新汇制表格,如果没解决的法请联系(QQ:228129390)
8 楼
lbscyb [专家分:4780] 发布于 2009-07-15 23:29:00
目前grid属性如下:grid1.recordsourcetype=1-别名
grid1.recordsource=table1 &&少了引号
含有grid的表单2的init事件如下:
select table1
thisform.grid1.recordsource=null &&注释掉
thisform.grid1.recordsource="table1" &&注释掉
set filter to &tj; &&tj为筛选条件,从table1中筛选,
and between(长度,val(alltrim(st)),val(alltrim(ed)))
thisform.refresh
thisform.grid1.refresh
表单1就可以完成表单2的任务,为何非要建立个公共变量?
9 楼
lbscyb [专家分:4780] 发布于 2009-07-15 23:32:00
目前grid属性如下: 不要
含有grid的表单2的init事件如下:
with thisform.grid1
.recordsource="table1"
.refresh
endwith
输入查询条件的表单1“查询”按钮如下:
select rabiesinfo
set filter to .t.
*筛选条件编写
public tj
tj=".t."
if not empty(alltrim(thisform.cmb条件1.value))
tj=tj+".and.条件1='"+alltrim(thisform.cmb条件1.value)+"'"
endif
if not empty(alltrim(thisform.cmb条件2.value))
tj=tj+".and. 条件2='"+alltrim(thisform.cmb条件2.value)+"'"
endif
*-表单2的代码
select table1
set filter to &tj; &&tj为筛选条件,从table1中筛选,
and between(长度,val(alltrim(st)),val(alltrim(ed)))
*-
do form form2
thisform.release
我来回复