分享

GRID 与动态DBF绑定

 悟静 2009-06-26

Q: dbf 文件字段数不确定,如何根据字段数的多少使drid动态的生成与.dbf相适应的列,同时列头内容我也不想显示字段名,以上想法如何实现?

A: 可以通过设置属性的方法,设置表格有多少列,每列的数据来源,表头的 caption 等,给你个例子:

 

WITH thisform.grid1
.columncount=0   &&先清掉所有的列,以免受前面的设置的影响。
.columncount=colc
FOR c1=1 TO colc
   cname='column'+LTRIM(STR(c1))
   .&cname..width=100
   .&cname..controlsource=TRIM(cola(c1,2))
   .&cname..header1.caption=TRIM(cola(c1,3))
   IF .not. EMPTY(TRIM(cola(c1,4)))
    SELECT dict1
    LOCATE FOR TRIM(组名)==TRIM(cola(c1,4)) .and. TRIM(字段名)=='f002'
    IF FOUND() .and. TRIM(字段标题)=='代码'
     .&cname..addobject('combo1','gridcombo')
    else
     .&cname..addobject('combo1','combobox')
     .&cname..combo1.style=2
    ENDIF
    SELECT dict2
   
    .&cname..currentcontrol='combo1'
    .&cname..combo1.rowsourcetype=3
    .&cname..combo1.rowsource='select f001 from dict2 where 组名=cola(c1,4) into cursor dict2_'+cola(c1,4)
    .&cname..combo1.visible=.t.
    usecombo=.t.
   ENDIF
  
ENDFOR

IF usecombo
   .rowheight=25
ELSE
   .rowheight=18
ENDIF

.setall("dynamicbackcolor","rgb(255,iif(ifvalid,255,0),iif(ifvalid,255,0))","column")
.Refresh
ENDWITH

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多