一、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 | 否(底纹的颜色) |