Function ALV 为单元格设置颜色

一、Function Module:reuse_alv_grid_display

1、输出内表添加颜色字段,参照表类型结构(slis_t_specialcol_alv)。

TYPES:BEGIN OF typ_result,
 		" ... other output fields
 		price     TYPE sflight-price,   " 价格
        tcolor    TYPE slis_t_specialcol_alv,  " 设置单元格颜色
      END OF typ_result.

DATA gt_result TYPE TABLE OF typ_result.   " 输出内表

2、在Layout中指定颜色列的字段名(属性:coltab_fieldname)。

DATA gs_layout TYPE slis_layout_alv.

" Other property Settings
gs_layout-coltab_fieldname = 'TCOLOR'." 颜色(输出内表中定义的颜色字段)

3、循环内表gt_result,根据条件为具体的单元格添加颜色。

DATA gs_color TYPE slis_specialcol_alv.

  LOOP AT gt_result ASSIGNING FIELD-SYMBOL(<fs_result>).
    " 单元格添加颜色
    IF <fs_result>-price < 1000.  " 单元格颜色为红色
      CLEAR gs_color.
      gs_color-fieldname = 'PRICE'.
      gs_color-color-col = '6'.
      gs_color-color-int = '0'.
      gs_color-color-inv = '0'.
      APPEND gs_color TO <fs_result>-tcolor.
    ENDIF.
  ENDLOOP.

二、Function Module:reuse_alv_grid_display_lvc

1、输出内表添加颜色字段,参照表类型结构(lvc_t_scol)

TYPES:BEGIN OF typ_result,
 		" ... other output fields
 		price     TYPE sflight-price,   " 价格
        tcolor    TYPE lvc_t_scol,  " 设置单元格颜色
      END OF typ_result.

DATA gt_result TYPE TABLE OF typ_result.   " 输出内表

2、在Layout中指定颜色列的字段名(属性:ctab_fname)。

DATA gs_layout TYPE lvc_s_layo.

" Other property Settings
gs_layout-ctab_fname = 'TCOLOR'." 颜色(输出内表中定义的颜色字段)

3、循环内表gt_result,根据条件为具体的单元格添加颜色。

DATA gs_color TYPE lvc_s_scol.

  LOOP AT gt_result ASSIGNING FIELD-SYMBOL(<fs_result>).
    " 单元格添加颜色
    IF <fs_result>-price < 1000.  " 单元格颜色为红色
      CLEAR gs_color.
      gs_color-fname = 'PRICE'.
      gs_color-color-col = '6'.
      gs_color-color-int = '0'.
      gs_color-color-inv = '0'.
      APPEND gs_color TO <fs_result>-tcolor.
    ENDIF.
  ENDLOOP.

扩展知识点:
gs_color-color-col:表示颜色

描述
1灰蓝色
2浅灰色
3黄色
4蓝色
5绿色
6红色
7橙色

gs_color-color-int:是否加重

描述
1
0

gs_color-color-inv:是否反色

描述
1是(字的颜色)
0否(底纹的颜色)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值