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
|