FOXPRO多级表单出现异样刷新问题的解决
本人一个爷表单调出一个父表单,一个父表单又调出一个子表单,子表单是用TREEVIEW控件列出些会计科目,用户选定个值,再用SQL语句得出结果,再将值返回给父表单,这是父表单的有关文本式的控件得到了值,确定完,又返回到了爷表单,爷表单的表格是与一个SQL语句绑定的,可这时,不管怎么刷新执行,THISFORM.GRID.RECORDSOURCE="SELE XX FROM XX INTO CURSOR XX",就是没给你刷新表的内容(实际上我试过了,XX表的相应元素的值已经改了),在这个语名前,加个THISFORM.GRID.RECORDSOURCE=NULL,也不行,后来无意间,再此语句前加个BROW NOEDIT TIMEOUT 0.001 IN FORM1,竟然THISFORM.GRID.REFRESH就有用,但每次返回的爷表单时,都肯定会明显的闪一下,要通过一下,0.01秒的BROW,这时我无意间的发现,将问题异样的解决了,但总认为,不是最好的方法,寻求高手指点迷津!
(当然我的爷表单之上,还有个曾爷爷表单,这个表单是个顶层表单) 多级表单 SQL表 刷新 实现
[解决办法]
你的表单层次比较复杂,懒得测试。
你试试:
先不管爷表单,直接在你的子表单,相应改变后,想体现爷表单时
爷表单文件名.GRID.RECORDSOURCE=null
SELE XX1 FROM XX2 INTO CURSOR XX3
爷表单文件名.GRID.RECORDSOURCE="XX3"
爷表单文件名.GRID.REFRESH
另外,如果一表单够用的话,你可以不用这么多表单,完全可以通过一个表单(多个容器+页面)实现。
[解决办法]
用子表单刷新爷表单,是用爷表单的文件名,不是用 Thisform,请仔细看一下我4楼代码。