一、固定表格左侧列的方法 注:如果还有其它符合条件的行也要加颜色设置,不能和上面的设置分开来写代码,否则易造成混乱,应综合写代码。 前景色的设置同上。
三、关于表格刷新后数据不显示的问题 首先为表单新增一个方法:方法名称:gridcsh,意思就是表格初始化,在这个方法里把需要设置的表格的属性以编程的方法,以代码方式写出来,下面是我用的gridcsh方法代码,供各位狐友参考。
select 表别名
Thisform.GRID1.AllowAutoColumnFit=0
Thisform.GRID1.AllowRowSizing= .F. Thisform.GRID1.ColumnCount=Fcount() Thisform.GRID1.DeleteMark= .F. Thisform.GRID1.GridLineColor=Rgb(0,128,0) Thisform.GRID1.HeaderHeight=28 thisform.grid1.HighlightBackColor=Rgb(0,0,255) thisform.grid1.Highlightstyle= 2 Thisform.GRID1.LockColumns=1 THISFORM.grid1.PANELLINK=.T. Thisform.GRID1.RowHeight=24 Thisform.GRID1.SELECTEDITEMBACKCOLOR=Rgb(0,0,0) Thisform.GRID1.SELECTEDITEMFORECOLOR=Rgb(255,255,255) Thisform.grid1.ToolTipText="该表数据只能浏览,不能修改!" Thisform.GRID1.ReadOnly= .T. Thisform.GRID1.RecordMark= .F. Thisform.GRID1.ScrollBars= 2 For I=1 To Fcount() Thisform.GRID1.Columns(I).HEADER1.Alignment=2 Thisform.GRID1.Columns(I).FontSize=10 Thisform.GRID1.Columns(I).HEADER1.FontSize=10 Thisform.GRID1.Columns(I).Resizable=.F. DO CASE CASE TYPE(FIELD(I))="D" Thisform.GRID1.Columns(I).WIDTH=(FSIZE(FIELD(I))+2)*7.5 CASE TYPE(FIELD(I))="C" OR TYPE(FIELD(I))="N" IF FSIZE(FIELD(I))<=10 Thisform.GRID1.Columns(I).WIDTH=58 ELSE Thisform.GRID1.Columns(I).WIDTH=FSIZE(FIELD(I))*7 ENDIF ENDCASE ENDFOR THISFORM.GRID1.LEFT=(THIS.WIDTH-THISFORM.GRID1.WIDTH)/2
注:上面的代码中有一部分是vfp9.0里的属性设置,删除后其余代码仍然可以在vfp6.0里运行,如果一个数据表里有20个以上的字段,光属性设置就可以让人头昏眼花,简单调整一下表格的宽度就行了。如果有那位狐友将这段代码完善后,不要忘了告诉我,可以以邮件的方法发到我的QQ邮箱(243688667)。
然后在表单的init事件中书写以下代码:
thisform.gridcsh
四、表格列显示顺序问题
第一步:如果想让某一列按一定排列显示数据记录,首先要为这一列在数据表中设置一个索引。
第二步:假如想让编号列按从小到大的方法显示
1.在HEADER1的CLICK事件中写如下代码
SET ORDER TO 编号
这样就可以达到从小到大显示的目的。
2.如果想让编号列恢复到排序前的顺序,在HEADER1的DBLCLICK事件中写如下代码
SET ORDER TO
五、获取表格活动单元格的值(CSDN论坛:十豆三 提供)
在 Grid 的 AfterRowColChange 事件加代码:
Messagebox(This.Columns(nColIndex).Text1.Value) 必须为字符型 或者
Thisform.Text2.Value=transform(this.value)
六、某一单元格值的颜色 grid1.init事件代码:
*thisform.grid1.COLUMN1.DynamicForeColor="iif(条件,RGB(255,0,0),RGB(0,0,0))" thisform.grid1.COLUMN1.DynamicForeColor="iif(OCCURS('D',字段1)>0,RGB(255,0,0),RGB(0,0,0))" THISFORM.GRID1.REFRESH 七、清除GRID1中单元格显示的"0"
THISFORM.GRID1.SETALL("FORMAT","Z","COLUMN") 八、设置表格控件中列标题的背景色 grid1.init事件代码: ThisForm.Grid1.SetAll("BackColor", Rgb(200, 128, 55), "Header") 九、如何设置指定行为读写 Grid1.AfterRowColChange -----------------------------------LPARAMETERS nColIndex If Mod(Recno(),3)=0 This.ReadOnly= .T. Else This.ReadOnly= .F. EndIf |
|
来自: lygcw9603 > 《Grid(表格)》