SAP ALV颜色代码对应颜色(整理列级别 行级别 单元格级别设置方法)
1. ALV颜色代码规则
- SAP颜色代码由三位控制码组成(如下所示)
2. ALV颜色代码和颜色的对应关系
- 颜色代码对应关系
3. ALV颜色代码的使用
列级别
1.设置FIELDCAT-EMPHASIZE参数即可
gs_fieldcat-EMPHASIZE = 'C410'. append gs_fieldcat to gt_fieldcat.
行项目级别
- 1.内表定义颜色字段:color TYPE char4.
- 2.Layout设置:gs_layout-info_fname = ‘COLOR’.
- 3.内表设置:gs_data-color = ‘C###’.(###为三位颜色代码)
- 1.内表定义颜色字段:color TYPE char4.
单元格级别
- 1.内表定义颜色字段:color TYPE lvc_t_scol.
- 2.Layout设置:gs_layout-ctab_fname = ‘COLOR’..
- 3.内表设置:
- ls_color-fname = ‘field_name’. (field_name设置颜色的字段)
- ls_color-color-col = ‘#’.(#颜色代码第一位)
- ls_color-color-int = ‘#’.(#颜色代码第二位)
- ls_color-color-inv = ‘#’.(#颜色代码第三位)
- 将ls_color 附加到gs_layout-color[]表
- 1.内表定义颜色字段:color TYPE lvc_t_scol.
在SALV中使用
METHOD set_colors. DATA: lo_cols_tab TYPE REF TO cl_salv_columns_table, lo_col_tab TYPE REF TO cl_salv_column_table. DATA: ls_color TYPE lvc_s_colo. lo_cols_tab = co_alv->get_columns( ). "获取对象 INCLUDE <color>. "整列设置颜色 TRY. lo_col_tab ?= lo_cols_tab->get_column( 'CARRID' ). "获取字段 ls_color-col = col_positive. "定义颜色 ls_color-int = 1. "反转颜色启用/关闭 1/0 ls_color-inv = 0. "增强颜色启用/关闭 1/0 "颜色代码: "col_background '0'. "col_heading '1'. "COL_NORMAL '2'. "col_total '3'. "col_key '4'. "col_positive '5'. "COL_NEGATIVE '6'. "col_group '7'. lo_col_tab->set_color( ls_color ). "设置颜色 CATCH cx_salv_not_found. ENDTRY. "单元格设置颜色 DATA: lt_s_color TYPE lvc_t_scol, ls_s_color TYPE lvc_s_scol, l_count TYPE i. CLEAR: ls_color. LOOP AT ct_sflight INTO DATA(wa_sflight). l_count = l_count + 1. CASE l_count. WHEN 2. ls_s_color-fname = 'CONNID'. ls_s_color-color-col = col_group. ls_s_color-color-int = 1. "反转颜色启用/关闭 1/0 ls_s_color-color-inv = 0. "增强颜色启用/关闭 1/0 APPEND ls_s_color TO lt_s_color. CLEAR ls_s_color. WHEN 7. ls_s_color-fname = 'CONNID'. ls_s_color-color-col = col_heading. ls_s_color-color-int = 1. "反转颜色启用/关闭 1/0 ls_s_color-color-inv = 0. "增强颜色启用/关闭 1/0 APPEND ls_s_color TO lt_s_color. CLEAR ls_color. WHEN OTHERS. ENDCASE. wa_sflight-t_color = lt_s_color. MODIFY ct_sflight FROM wa_sflight. CLEAR: wa_sflight,lt_s_color. ENDLOOP. "行设置颜色 CLEAR: l_count. LOOP AT ct_sflight REFERENCE INTO DATA(ref_sflight). l_count = l_count + 1. CASE l_count. WHEN 5. ls_s_color-fname = 'CARRID'. ls_s_color-color-col = col_total. ls_s_color-color-int = 1. "反转颜色启用/关闭 1/0 ls_s_color-color-inv = 0. "增强颜色启用/关闭 1/0 APPEND ls_s_color TO lt_s_color. ls_s_color-fname = 'CONNID'. APPEND ls_s_color TO lt_s_color. ls_s_color-fname = 'FLDATE'. APPEND ls_s_color TO lt_s_color. ls_s_color-fname = 'PRICE'. APPEND ls_s_color TO lt_s_color. ls_s_color-fname = 'CURRENCY'. APPEND ls_s_color TO lt_s_color. CLEAR ls_s_color. WHEN OTHERS. ENDCASE. APPEND LINES OF lt_s_color TO ref_sflight->t_color. "添加行颜色定义,不能覆盖;否则上面的单元格颜色信息将丢失 CLEAR: lt_s_color. ENDLOOP. TRY. lo_cols_tab->set_color_column( 'T_COLOR' ). "设置颜色信息表为lt_sflight-T_COLOR CATCH cx_salv_data_error. "#EC NO_HANDLER ENDTRY. ENDMETHOD.
post SAP-Garson
原文链接:https://blog.csdn.net/qq_30797051/article/details/125624411文章来自于网络,如果侵犯了您的权益,请联系站长删除!