FOXPRO表格属性重新恢复有没有更好的办法?
FOXPRO GRID表格有一个这样问题,不知该如何解决:
通过编辑设计给表格做好了精美的表头,也通过表单的初始化事件(INIT)中,加入THISFORM.GRID.RECORDSOURCE="SELE XX FROM XX INTO CURSOR XX",给表格加入数据源,开始运行表单时,该表格也显示很完美,但时一旦我在其它控件的Click事件中也加入THISFORM.GRID.RECORDSOURCE="SELE XX FROM XX WHERE XX=XX INTO CURSOR XX",点该控件再次刷新该表格,这时表格的表头就面目全非了,
之后,我又试了几种方法,修复表头,
第一种,在THISFORM.GRID.RECORDSOURCE="SELE XX FROM XX WHERE XX=XX INTO CURSOR XX"
后面搞一个FOR I=1 TO 最大的COLUMN数,配合STREX()实现循环提取表头字样的方法,将表格头重建,这种办法实现在重新刷新修复了表头,但很麻烦,如果COLUMN的宽度又要设置,表头上又有图片,这样等于重新以编程的方法,修复表头.
第二种,想用thisform.grid.column(i).header1.RESETTODEFAULT(Propertyname)这个事件来恢复初始值,从而修复表格头,但结果总是提示,"该属性没有初值",所以无法实现将原来,手工编辑设计的表头,恢复回来,
实在是没办法,
但我很清楚的看到,用use xxx.scx,再用BROWSE,就可以看到GRID的Properties的属性的每个值,是不是还有更好方法,调出来,而我不知道调出,请高手指点指点!! 控件 设计 表单 图片 编程
[解决办法]
在
THISFORM.GRID.RECORDSOURCE="SELE XX FROM XX WHERE XX=XX INTO CURSOR XX"
之前先
THISFORM.GRID.RECORDSOURCE=null
即改为:
Thisform.Grid1.RecordSource=Null
Thisform.Grid1.RecordSource="SELE XX FROM XX WHERE XX=XX INTO CURSOR XX"
Thisform.Grid1.Refresh