前言
在ABAP ALV中,LIGHTS_FIELDNAME参数是用于实现行级视觉指示或“灯光效果”的一个重要设置项,尤其适用于标记或突出显示列表中符合特定条件的行。这个参数通常是在定义ALV布局(使用结构如LVC_S_LAYOUT或通过SALV类的相应方法)时设置的。
通过字段LIGHTS_FIELDNAME,你可以指定一个字段名,ALV将根据这个字段的值来决定是否对行进行特殊颜色标记。这通常用于表示数据行的状态,比如错误、警告或成功等。
实战
该功能比较简单,直接通过 gs_layout-lights_fieldname = 'LIGHT'参数实现即可。
展示效果
完整代码
TYPE-POOLS:slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: gs_layout TYPE slis_layout_alv.
DATA: BEGIN OF gt_data OCCURS 0,
light(1), "信息灯列
val(1),
sel, "选择列
END OF gt_data.
START-OF-SELECTION.
PERFORM f_inital.
DEFINE def_inf.
clear gt_fieldcat.
gt_fieldcat-fieldname = &1.
gt_fieldcat-seltext_l = &2.
"这里要设置一下ddictxt为长文本,否则light列标题将显示为Exception
gt_fieldcat-ddictxt = &3.
append gt_fieldcat.
END-OF-DEFINITION.
def_inf 'LIGHT' '红绿灯' 'L'.
def_inf 'VAL' '值' 'L'.
gs_layout-lights_fieldname = 'LIGHT'."指定灯列名
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = gt_fieldcat[]
is_layout = gs_layout
TABLES
t_outtab = gt_data.
FORM f_inital .
gt_data-light = ' '."取值范围为:空、1~3
gt_data-val = '空'.
APPEND gt_data .
gt_data-light = '1'.
gt_data-val = '1'.
APPEND gt_data .
gt_data-light = '2'.
gt_data-val = '2'.
APPEND gt_data .
gt_data-light = '3'.
gt_data-val = '3'.
APPEND gt_data .
ENDFORM.