ALV设置行/列/单元格的颜色

16 篇文章 0 订阅

有的时候,我们需要在 ALV 网格上绘上一些颜色.可以给特定的行,某个特定的列,某个特定的单元格绘

制颜色.

如果某列被设置为关键列,这列的颜色将被自动绘制,而不需要我们额外的指定.,

ALV的颜色是四位的如C710,第一位是固定死的C,第二位是颜色代码,可能值为1-7,代表颜色如下:

1:Gray-blue —>headers

2:Light gray —>List bodies

3:yellow —>totals

4:Blue-green—>Key columns

5:green —>Positive threshold value

6:red —>Negative threshold value

7:orange —>Control levels

后两位是1和0的组合,10则代表颜色用在背景,01代表颜色用在前景。

设置列的颜色:

设置列的颜色可以在Filedcat内表中设置EMPASIZE字段,如下:LS_FCAT-EMPHASIZE = ‘C701′.

设置行的颜色:

为某行设置颜色,是有点复杂的,我们需要在要显示的数据内表中增加一个字段,这个字段

不需要在字段目录中存在.同样,这个字段也是 4 位的 CHAR 型,符合颜色编码的定义.,然后

在布局设定中指定该列为颜色列,gs_layout-into_fname = ‘COLOR’.

然后设置在获取数据后设置一下该列的值:

FORM p_data .

LOOP AT gt_mara.

IF gt_mara-matnr = ‘100-100′.

gt_mara-color = ‘C310′.

ENDIF.

MODIFY gt_mara.

ENDLOOP.

ENDFORM.

c3p63xhnifnl7uac8l

设置单元格的颜色:

设置单元格和设置行的颜色,本质上没有什么大的区别,但是定位单元格需要 2 个参数.我们需要在数据

内表中插入一个表类型的字段,这样我们的数据内表就变成了 DEEP 结构了,不过 ALV 是可以处理的.不需

要担心.

插入的这个表类型的类型为”LVC_T_SCOL”.

里面有 3 个参数:

FNAME 告诉我们你需要设置的是哪个字段,如果为空,然后直接在 COLOR 中设置颜色,就是整行设

置为这个颜色.如果具体到某个单元格,必须指定是哪个字段.

COLOR 字段是用来设置颜色的.

NOKEYCOL 字段比较关键了.设置为关键列的一些字段,我们的颜色设置可能被覆盖.通过这个字段

的设置,可以避免被关键列的颜色被覆盖.

同样,ALV 在布局中有个字段”CTAB_FNAME”告诉我们,数据内表中,哪个字段是用来设置单元格的颜

色的,类似于设置行颜色的INTO_FNAME.

FORM p_data .

LOOP AT gt_mara.

IF gt_mara-matnr = ‘100-100′.

gt_mara-color = ‘C310′.”设置行的颜色

ENDIF.

IF gt_mara-matnr = ‘100-401′.

CLEAR gs_cellcolor.

gs_cellcolor-fname = ‘MTART’.

gs_cellcolor-color-col = ‘6′.

APPEND gs_cellcolor TO gt_mara-cellclor.”设置单元格的颜色

gs_cellcolor-fname = ‘ERSDA’.

gs_cellcolor-color-col = ‘7′.

APPEND gs_cellcolor TO gt_mara-cellclor.

ENDIF.

MODIFY gt_mara.

ENDLOOP.

ENDFORM.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值