메뉴 건너뛰기

SAP 한국 커뮤니티

REPORT Z17_22

가능 2025.09.22 01:31 조회 수 : 1

REPORT z17_22.

INCLUDE <ICON>.

TYPES: BEGIN OF g_type_itab.
         INCLUDE STRUCTURE zemplist.
TYPES :  count TYPE p LENGTH 3, " 자격증 개수 필드 추가
         icon  TYPE icon_d,
       END OF g_type_itab.

DATA gt_itab  TYPE TABLE OF g_type_itab.
DATA gs_itab  TYPE g_type_itab.
DATA gr_table TYPE REF TO cl_salv_table.

SELECT a~empcd, a~depcd, a~pstion, a~ename, a~email, a~tel, b~empcd,
       COUNT( b~certid ) AS count
  FROM zemplist AS a
  LEFT OUTER JOIN zempcert AS b ON b~empcd EQ a~empcd
  GROUP BY a~empcd, a~depcd, a~pstion, a~ename, a~email, a~tel, b~empcd
  INTO CORRESPONDING FIELDS OF TABLE @gt_itab.

LOOP AT gt_itab INTO gs_itab.
  IF gs_itab-count >= 3.    " Green.
    gs_itab-icon = icon_locked.
  ELSEIF gs_itab-count = 2. " Yellow.
    gs_itab-icon = icon_message_warning.
  ELSEIF gs_itab-count = 1. " Blue.
    gs_itab-icon = icon_unlocked.
  ENDIF.

  MODIFY gt_itab FROM gs_itab.
ENDLOOP.

cl_salv_table=>factory(
  IMPORTING
    r_salv_table = gr_table
  CHANGING
    t_table      = gt_itab ).

DATA: lr_columns TYPE REF TO cl_salv_columns_table,
      lr_column  TYPE REF TO cl_salv_column_table.

lr_columns = gr_table->get_columns( ).
lr_column ?= lr_columns->get_column( 'ICON' ).
lr_column->set_icon( if_salv_c_bool_sap=>true ).
lr_column->set_long_text( 'ICON' ).

gr_table->display( ).