REUSE_ALV_LIST_DISPLAY显示列表和相关配置,checkbox,弹窗

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.
posted @ 2026-08-05 15:56  虚拟过客之IT老男人  阅读(3)  评论(0)    收藏  举报