ALV面向对象方法研究:设定满足条件的单元格的颜色(四)

来源:互联网 发布:imtoken for mac 编辑:程序博客网 时间:2024/06/08 15:50
      还是继续本话题。

      本文讲解如何设定满足条件的单元格的颜色。比如在一张报表里,把成绩这一列小于60分的单元格设定为红色。这种功能很常见!

      1、首先在定义内标的时候记得增加一个栏位放置颜色:      

....
CELLCOLOR TYPE LVC_T_SCOL,
...

      2、在内表修改的时候,将这个栏位附上内容:       

     DATA: W_CELLCOLOR TYPE LVC_S_SCOL.

IF IT_SFLIGHT-PRICE <= 1000. "数值小于1000的加红色
CLEAR IT_SFLIGHT-COLOR.
W_CELLCOLOR-FNAME = 'PRICE'. "加颜色的栏位
W_CELLCOLOR-COLOR-COL = '6'. "红色
W_CELLCOLOR-COLOR-INT = '1'. "颜色加深 0代表不加深
APPEND W_CELLCOLOR TO IT_SFLIGHT-CELLCOLOR.
ENDIF.

      3、设定ALV格式的时候:       

*&---------------------------------------------------------------------*
*& FORM PREPARE_LAYOUT
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* -->PS_LAYOUT TEXT
*----------------------------------------------------------------------*
FORM PREPARE_LAYOUT CHANGING PS_LAYOUT TYPE LVC_S_LAYO.
PS_LAYOUT-ZEBRA = 'X' .
PS_LAYOUT-GRID_TITLE = TITLE .
PS_LAYOUT-SMALLTITLE = 'X' .
PS_LAYOUT-SEL_MODE = 'A'.
PS_LAYOUT-INFO_FNAME = 'COLOR'.
PS_LAYOUT-CTAB_FNAME = 'CELLCOLOR'. "一定要大写
PS_LAYOUT-CWIDTH_OPT = 'X'.
PS_LAYOUT-DETAILINIT = 'X'.
ENDFORM. " PREPARE_LAYOUT

     效果如下图:

     

0 0