首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

关于在VFP中动态创建列的有关问题

2012-05-07 
关于在VFP中动态创建列的问题我有一个GRID,其中的列是根据一个DBF自动创建的,但创建出来的列,如果是数值型

关于在VFP中动态创建列的问题
我有一个GRID,其中的列是根据一个DBF自动创建的,但创建出来的列,如果是数值型的,没有发现问题,但如果是字符串的,就会发现,无论是手工填入的,还是程序填入该列的,如果把列拉得足够宽,那么该列内容就会居中,如果不够宽就干脆缩进表格边上去了,如下是我的代码,我还附上效果图,望大侠指教

C# code
SELECT C_ItemTotalRe=RECCOUNT('C_Item')ZwField=0 COUNT FOR OCCURS('_',SqlField_F)=2 TO ZwField            &&计算档案型字段有多少个,Grd中要增加相关列TotalRe=TotalRe+ZwFieldWITH Thisform.Grid1    .RecordSource="C_TaxiMeter"    .ColumnCount=TotalRe        C1=1    SELECT C_Item    SCAN         vfpCmd=".Column"+ALLTRIM(STR(C1))+".Header1.Caption='"+ALLTRIM(Zw_F)+"'"        &vfpCmd.        vfpCmd=".Column"+ALLTRIM(STR(C1))+".ControlSource='C_TaxiMeter."+ALLTRIM(DbfField_F)+"'"        &vfpCmd.        vfpCmd=".Column"+ALLTRIM(STR(C1))+".Width="+ALLTRIM(Width_F)        &vfpCmd.        IF OCCURS('_',DbfField_F)=2            &&如果档案型字段,则增加中文描述字段            C1=C1+1            vfpCmd=".Column"+ALLTRIM(STR(C1))+".Header1.Caption='"+ALLTRIM(Zw_F)+"名称'"            &vfpCmd.                        vfpCmd=".Column"+ALLTRIM(STR(C1))+".ControlSource='C_TaxiMeter."+'P'+SUBSTR(ALLTRIM(DbfField_F),AT('_',ALLTRIM(DbfField_F),1))+"'"            &vfpCmd.*!*                vfpCmd=".Column"+ALLTRIM(STR(C1))+".Text1.Alignment=0"            &&这段加不加一样*!*                &vfpCmd.            vfpCmd=".Column"+ALLTRIM(STR(C1))+".Width=200"            &vfpCmd.                    ENDIF         C1=C1+1    ENDSCAN ENDWITH 


列宽不够时如下图:


列宽足够时如下图:



[解决办法]
为何不之前先把表处理完,然后再把表给 Grid 做数据源,如:
*-- 表字段处理代码
Thisform.Grid1.RecordSourceType=1
Thisform.Grid1.RecordSource='表名'
Thisform.Grid1.Refresh
Thisform.Grid1.Autofit
[解决办法]
记录源赋值前先初始化一次列试试:

.ColumnCount = -1
.RecordSource="C_TaxiMeter"
.ColumnCount=TotalRe

热点排行