解决VFP的表格控件Grid变白等问题

发表于:2007-06-22来源:作者:点击数: 标签:
VFP的表格控件Grid是一个很好的显示查询、编辑数据的控件,但是在使用中会遇到以下问题: 1、使用select- SQL 语句、临时表或表别名作为Grid的Recordsource属性时,在select条件、临时表或表别名发生变化时,Grid控件往往不能显示出数据,或者原有的Grid属性

     VFP的表格控件Grid是一个很好的显示查询、编辑数据的控件,但是在使用中会遇到以下问题:

  1、使用select-SQL语句、临时表或表别名作为Grid的Recordsource属性时,在select条件、临时表或表别名发生变化时,Grid控件往往不能显示出数据,或者原有的Grid属性包括列及列标头属性全部丢失,恢复成Grid默认的属性。

  2、使用Pack命令彻底删除表中某些记录时,其结果往往是Grid一片空白,什么都显示不出来。

---------------------------------------

  很多人对此感到疑惑。也有人想出把Grid先保存成类的办法来解决这类问题,都比较麻烦,其实有个很简单的方法可以解决一系列有关Grid的数据源刷新问题:

  在改变Grid或执行Pack命令前,先将Grid的recordsource属性置成Null,再执行相应的select-SQL语句、改变表别名或Pack命令,例如

  1、
  thisform.grid1.recordsource=Null
  pack
  thisform.grid1.recordsource='tablename' &&恢复原表别名

  2、
  thisform.grid1.recordsource=Null
  thisform.grid1.recordsource='newtablename' &&改变了别名

  3、
  thisform.grid1.recordsource=Null
  thisform.grid1.recordsource='select column1,column2 from tablename where
  column1=thisform.text1.value into cursor Temptable'
  thisform.grid1.recordsource='Temptable'


  *这样Grid不但能正确显示变化后的数据,而且其属性不会丢失。

原文转自:http://www.ltesting.net