>有关GRID颜色显示的问题!几种情况都有!(可做资料!)<

heavenmusic 2003-09-18 05:43:26
关于在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")

第三条,正好自己需要!
...全文
361 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
heavenmusic 2003-09-19
  • 打赏
  • 举报
回复
看一下,我得,你试一下:

SELECT CSPost.Bookid,CSPost.TranNo,CSPost.RefNo,CSPost.CatgNo,CSPost.Desp,CSPost.Cashin,CSPost.CashOut,CSPost.Cuserid;
from cspost ;
WHERE YEAR(Trandate) = MONTH(nDate).and.MONTH(trandate) = MONTH(nDate) .AND.DAY(TranDate) = DAY(nDate).and. ALLTRIM(AccNo) = ALLTRIM(cAccountNo) .and. ALLTRIM(Bookid) = ALLTRIM(cBookid);
order by TranNo;
INTO TABLE Data\temp_daily

****--进行一个判断
IF _TALLY>0
Thisform.grid1.RecordSource = 'temp_daily'
Thisform.grid1.RecordSourceType = 4

****--相隔两条记录颜色不一样!
thisform.Grid1.SetAll("DynamicBackColor", "IIF(MOD(RECNO( ), 2)=0,RGB(0,255,0) , RGB(255,255,255) )", "Column")

*!* IF recc('temp_daily')>0
*!* THISFORM.GRID1.RECORDSOURCE = 'temp_daily'
*!* ELSE

........
UN_78 2003-09-19
  • 打赏
  • 举报
回复
请问我把上述代码放在afterrowcolchange中,gird的数据源是临时生成的
运行的时候出现错误:
expression is invalid.use a vaild expression for DYNAMICBACKCOLOR property.

这是为什么呀?

UN_78 2003-09-19
  • 打赏
  • 举报
回复
对不起,我没有说清楚

我说的是第二种情况

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧