【SAP】ABAP——ALV设置某一个单元格/整行的颜色

1.  当满足某些条件时,则某个字段的输出单元格显示为红色,当不满足时,则显示为原来的颜色。

DATA:BEGIN OF gs_out,
  matnr TYPE ekpo-matnr,"物料号
  werks TYPE mardh-werks,"工厂
  jszzt LIKE mardh-labst,"周转天
  color TYPE lvc_t_scol,"单元格颜色
END OF gs_out.
DATA:wa_out LIKE gs_out,
     gt_out LIKE TABLE OF gs_out.

loop at gt_out into wa_out.
"期间耗用量为0(准呆滞物料),或周转天>系统周转天,周转天显示为红色
    IF wa_data-erfmg = 0 OR wa_data-jszzt > wa_data-jhzzt.
      DATA: ls_color TYPE lvc_s_scol.
      ls_color-fname = 'JSZZT'."周转天字段
      ls_color-color-col = '6'.
      ls_color-color-int = '1'.
      ls_color-color-inv = '0'.
      ls_color-nokeycol = 'X'."覆盖码颜色
      APPEND ls_color TO wa_data-color.
    ENDIF.
ENDLOOP.

*ALV部分
 wa_layout-coltab_fieldname = 'COLOR'."此处需要设置
 wa_layout-zebra = 'X'.
 wa_layout-colwidth_optimize = 'X'.

color-col:

0:灰色         1:蓝色         3:黄色           5.绿色           6.红色

7:橙色         8:无色

2.    当某一个字段满足某一条件时,需要该条数据全部显示为红色。代码如下:

DATA:BEGIN OF gs_out,
  matnr TYPE ekpo-matnr,"物料号
  werks TYPE mardh-werks,"工厂
  jszzt LIKE mardh-labst,"周转天
  color type c length 4,"改行数据的颜色
END OF gs_out.
DATA:wa_out LIKE gs_out,
     gt_out LIKE TABLE OF gs_out.

loop at gt_out into wa_out.
"期间耗用量为0(准呆滞物料),或周转天>系统周转天,周转天显示为红色
    IF wa_data-erfmg = 0 OR wa_data-jszzt > wa_data-jhzzt.
      wa_data-color = 'C600'.
    ENDIF.
ENDLOOP.

*ALV部分
 wa_layout-info_fieldname = 'COLOR'."此处需要设置(与上方不同)
 wa_layout-zebra = 'X'.
 wa_layout-colwidth_optimize = 'X'.

       

你可能感兴趣的:(【SAP】ABAP——ALV设置某一个单元格/整行的颜色)