ALV 红绿灯

admin2024-05-15  0

前言

        在ABAP ALV中,LIGHTS_FIELDNAME参数是用于实现行级视觉指示或“灯光效果”的一个重要设置项,尤其适用于标记或突出显示列表中符合特定条件的行。这个参数通常是在定义ALV布局(使用结构如LVC_S_LAYOUT或通过SALV类的相应方法)时设置的。

        通过字段LIGHTS_FIELDNAME,你可以指定一个字段名,ALV将根据这个字段的值来决定是否对行进行特殊颜色标记。这通常用于表示数据行的状态,比如错误、警告或成功等。

实战

        该功能比较简单,直接通过 gs_layout-lights_fieldname  = 'LIGHT'参数实现即可。

展示效果

ALV 红绿灯,第1张

完整代码

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.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!