![image]()
*&---------------------------------------------------------------------*
*& Report ZPCYALV01
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zpcyalv01.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_flight,
box TYPE c LENGTH 1,
light TYPE c LENGTH 1.
INCLUDE STRUCTURE spfli.
TYPES: END OF ty_flight.
DATA: lt_spfli TYPE TABLE OF ty_flight.
DATA: ls_spfli TYPE ty_flight.
DATA: ls_layout TYPE slis_layout_alv.
DATA: lt_sort TYPE slis_t_sortinfo_alv. " declare to calculate the subtotal
START-OF-SELECTION.
PERFORM build_data.
PERFORM build_layout.
PERFORM display_list_alv.
FORM build_data.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE lt_spfli UP TO 30 ROWS.
LOOP AT lt_spfli INTO ls_spfli.
IF sy-tabix LE 5.
ls_spfli-box = abap_true.
ELSEIF sy-tabix GT 5 AND sy-tabix LE 15.
ls_spfli-box = abap_false.
ELSE.
ls_spfli-box = abap_true.
ENDIF.
MODIFY lt_spfli FROM ls_spfli TRANSPORTING box.
IF sy-tabix LE 5.
ls_spfli-light = 1. " 1 means Red Light
ELSEIF sy-tabix GT 5 AND sy-tabix LE 15.
ls_spfli-light = 2. " 2 means Yellow Light
ELSE.
ls_spfli-light = 3. " 3 means Green Light
ENDIF.
MODIFY lt_spfli FROM ls_spfli TRANSPORTING light.
ENDLOOP.
ENDFORM. " BUILD_DATA
FORM build_layout.
ls_layout-zebra = 'X'.
ls_layout-detail_popup = 'X'.
ls_layout-detail_titlebar = 'Detailed Flight Info'.
" Set the detailed pop up title
ls_layout-box_fieldname = 'BOX'.
ls_layout-lights_fieldname = 'LIGHT'.
"Pass the field name that will act as traffic light
"ls_layout-list_append = 'X'. "set the layout property to display multiple alv
ls_layout-colwidth_optimize = 'X'.
ENDFORM. " BUILD_LAYOUT
FORM display_list_alv.
DATA: it_events TYPE STANDARD TABLE OF slis_alv_event,
wa_events LIKE LINE OF it_events.
" 1. 填充事件表,将 'TOP_OF_PAGE' 事件与你的 FORM 子程序 'TOP_OF_PAGE' 绑定
wa_events-name = 'TOP_OF_PAGE'.
wa_events-form = 'TOP_OF_PAGE'. " 此处填写你自定义的 FORM 名称
APPEND wa_events TO it_events.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_structure_name = 'SPFLI'
is_layout = ls_layout
IT_EVENTS = it_events
TABLES
t_outtab = lt_spfli
EXCEPTIONS
program_error = 1
OTHERS = 2.
CASE sy-subrc.
WHEN 1.
MESSAGE 'Program Error' TYPE 'I'.
WHEN OTHERS.
ENDCASE.
"2 list
* SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE lt_spfli
* UP TO 20 ROWS ORDER BY CONNID DESCENDING.
*
* CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
* EXPORTING
* i_callback_program = sy-cprog
* i_structure_name = 'SPFLI'
* is_layout = ls_layout
* TABLES
* t_outtab = lt_spfli
* EXCEPTIONS
* program_error = 1
* OTHERS = 2.
* CASE sy-subrc.
* WHEN 1.
* MESSAGE 'Program Error' TYPE 'I'.
* WHEN OTHERS.
* ENDCASE.
ENDFORM. " DISPLAY_LIST_ALV
FORM top_of_page.
" 在这里使用 WRITE 语句输出你的页眉内容
WRITE: / 'Employees must now attach importance to proficiency in verbal communication and explicit technical skills to stay competitive. '.
WRITE: / 'A typical example is learning to preside over virtual meetings — a process requiring both genial manners and magnetic leadership.'.
WRITE: / 'Create Date:', SY-DATUM.
ULINE. " 可选:添加一条分割线
ENDFORM.