前言
在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列标题将显示为Exceptiongt_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'EXPORTINGit_fieldcat = gt_fieldcat[]is_layout = gs_layoutTABLESt_outtab = gt_data.FORM f_inital .gt_data-light = ' '."取值范围为:空、1~3gt_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.