COPY源代码即可使用,红绿灯的展示关键在于ICON得赋值
REPORT yzs001.
TABLES:sscrfields.
TYPE-POOLS : slis.
DATA : gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA : gs_layout TYPE slis_layout_alv.
DATA : g_title TYPE lvc_title,
g_glay TYPE lvc_s_glay.
DATA: BEGIN OF gw_excel,
ship_point TYPE bapidlvcreateheader-ship_point, "装运点
icon TYPE char04, "标识 : @EB@ 熄灯 ; @0A@ 红灯 ; @08@ 绿灯 ; @09@ 黄灯
msg TYPE string, "处理消息
END OF gw_excel.
DATA gt_excel LIKE gw_excel OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
PERFORM frm_get_data.
PERFORM frm_display_alv.
"装运点
FORM frm_get_data.
gt_excel-ship_point = 1000.
gt_excel-icon = '@EB@'.
gt_excel-msg = 'E'.
APPEND gt_excel.
gt_excel-ship_point = 1000.
gt_excel-icon = '@0A@'.
gt_excel-msg = 'E'.
APPEND gt_excel.
gt_excel-ship_point = 1000.
gt_excel-icon = '@08@'.
gt_excel-msg = 'S'.
APPEND gt_excel.
gt_excel-ship_point = 1000.
gt_excel-icon = '@09@'.
gt_excel-msg = 'S'.
APPEND gt_excel.
ENDFORM.
FORM frm_display_alv .
CLEAR: gt_fieldcat[].
PERFORM frm_e01_fieldcat_init USING :
'ICON' '标识' 10 ' ' ' ' ' ' ' ' ' ' ' ' ' ',
'MSG' '处理消息' 200 ' ' ' ' ' ' ' ' ' ' ' ' ' ',
'SHIP_POINT' '装运点' 10 ' ' ' ' ' ' ' ' ' ' ' ' ' '.
gs_layout-colwidth_optimize = 'X'.
* GS_LAYOUT-INFO_FIELDNAME = 'COLOR'.
gs_layout-zebra = 'X'.
* GS_LAYOUT-BOX_FIELDNAME = 'CHKBX'. "选择框
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_grid_settings = g_glay
i_callback_program = sy-cprog
* i_grid_title = g_title
it_fieldcat = gt_fieldcat[]
is_layout = gs_layout
i_save = 'A'
TABLES
t_outtab = gt_excel[].
ENDFORM.
FORM frm_e01_fieldcat_init
USING field_name TYPE c
field_text TYPE c
field_lenth TYPE i
field_edit TYPE c
field_checkbox TYPE c
field_type TYPE c
field_key TYPE c
field_icon TYPE c
field_reftab TYPE c
field_refnam TYPE c.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = field_name.
ls_fieldcat-seltext_l = field_text.
ls_fieldcat-ddictxt = 'L'. "可选值为S,M,L,指定列标题为长中短描述,列标题的显示内容将固定.
IF field_type EQ 'Q'.
ls_fieldcat-just = 'R'.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-datatype = 'QUAN'.
ELSE.
ls_fieldcat-just = 'L'.
ENDIF.
ls_fieldcat-checkbox = field_checkbox.
ls_fieldcat-edit = field_edit.
ls_fieldcat-key = field_key.
ls_fieldcat-outputlen = field_lenth.
ls_fieldcat-icon = field_icon.
ls_fieldcat-ref_fieldname = field_refnam.
ls_fieldcat-ref_tabname = field_reftab.
APPEND ls_fieldcat TO gt_fieldcat.
ENDFORM. " E01_FIELDCAT_INIT