精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖界面设计〗>>更改grid1的数据源后属性丢失的解决

主题:更改grid1的数据源后属性丢失的解决
发信人: foxzz()
整理人: hunter__fox(2002-03-16 22:47:22), 站内信件
请参考: 
1、定义新属性D_QueryGrid[50,4] 
2、用数组D_QueryGrid[50,4]记忆表格属性 
LOCAL m.oQueryObject 
m.oQueryObject=thisform.grid1 
LOCAL m.nQueryNum 
m.nQueryNum=m.oQueryObject.ColumnCount 

wait wind "正在记忆表格属性..." nowait 
DIME THISFORM.D_QueryGrid[m.oQueryObject.ColumnCount,4] 
FOR m_i = 1 TO m.nQueryNum 
    THISFORM.D_QueryGrid[m_i,1]=m.oQueryObject.Columns[m_i].controlsource 
    THISFORM.D_QueryGrid[m_i,2]=m.oQueryObject.Columns[m_i].width 
    THISFORM.D_QueryGrid[m_i,3]=m.oQueryObject.Columns[m_i].header1.caption 
    THISFORM.D_QueryGrid[m_i,4]=m.oQueryObject.Columns[m_i].name 
ENDFOR 
FOR M_I=ALEN(THISFORM.D_QueryGrid,1) TO 1 STEP -1 
    IF EMPTY(THISFORM.D_QueryGrid[M_I,1]) 
       DIME THISFORM.D_QueryGrid[M_I,4] 
    ELSE 
       EXIT 
    ENDIF 
ENDFOR 
3、更新grid1数据源 
  THISFORM.grid1.RECORDSOURCE=P_SELEDBF 
4、恢复grid1的属性 
LOCAL m.oQueryObject 
m.oQueryObject=thisform.grid1 

THISFORM.LOCKSCREEN=.T. 
FOR m_i = 1 TO ALEN(THISFORM.D_QUERYGRID,1) 
    m_chrnum=ALLTRIM(STR(m_i)) 
    LOCAL m_queryname,m_controlsource 
    m_queryname=p_seledbf 
    IF NOT EMPTY(THISFORM.D_QueryGrid[m_i,4]) 
       m_controlsource=M_QUERYNAME+'.'+THISFORM.D_QueryGrid[m_i,4] 
       thisform.grid1.Columns[m_i].controlsource=THISFORM.D_QueryGrid[m_i,4] 
       thisform.grid1.Columns[m_i].width=THISFORM.D_QueryGrid[m_i,2] 
       thisform.grid1.Columns[m_i].header1.caption=THISFORM.D_QueryGrid[m_i,3] 
       thisform.grid1.Columns[m_i].name=THISFORM.D_QueryGrid[m_i,4] 
    ENDIF 
ENDFOR 
THISFORM.LOCKSCREEN=.T. 


[关闭][返回]