>有关GRID颜色显示的问题!几种情况都有!(可做资料!)<
关于在VFP中GRID里颜色设置问题
1、只设置一条记录颜色(有选择性)
主要是针对一个表GRID里,当我们选择了某个记录时,要使这个记录高亮显示,以区别其他记录,方便查看。
在GRID的AfterRowColChange事件中,写入如下代码
LPARAMETERS nColIndex && 系统代码
Mcurrec=allt(str(recn())) && 获取当前所在记录号
this.setall("dynamicbackcolor",'IIF(RECNO()=&Mcurrec.,RGB(255,0,0),RGB(255,255,255))') && 设置背景色,满足条件为红色,不满足为白色
this.setall("dynamicforecolor",'IIF(RECNO()=&Mcurrec.,RGB(255,255,0),RGB(0,0,0))',"column") && 设置前景色,满足条件为黄色,不满足为黑色
this.refresh && 这个刷新必须要,不然不满足条件的记录所显示的高亮显示就不会退去
2、设置多种颜色(无规律性)
主要是针对一个表GRID里,当记录很多时,而且某些记录具有特定的属性时,我们需要设置颜色来区分这些数据,如下代码可以在刷新或初始化表单时,设置其属性。
thisform.Grid1.SetAll("DynamicBackColor","IIF(type>=1,iif(type>=2,iif(type>=3,rgb(0,128,0),rgb(192,192,192)),rgb(255,0,0)),rgb(255,255,255))")
如上代码可以说明,如果某记录中有一个字段type,那么根据这个字段的数据值,可以显示不同颜色,可以转换成如下公式:
iif(条件1,iif(条件2,iif(条件3,iif(条件4,iif(条件5,[…iif(条件N,颜色N,颜色n-1)…,]颜色5,颜色4),颜色3),颜色2),颜色1),其他颜色)
3、设置多种颜色(有规律性)
这种就比较简单了,一般是在看较多记录时,多了让人眼花缭乱,所以每隔一行设置颜色,就是
thisform.Grid1.SetAll("DynamicBackColor", "IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255) , RGB(0,255,0))", "Column")
第三条,正好自己需要!