메뉴 건너뛰기

SAP 한국 커뮤니티

REPORT Z16_08

가능 2025.09.22 01:24 조회 수 : 0

REPORT z16_08.

TYPE-POOLS: slis.

DATA gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA gs_fieldcat TYPE slis_fieldcat_alv.

DATA gt_events TYPE slis_t_event.
DATA gs_event TYPE slis_alv_event.

DATA gs_layout TYPE slis_layout_alv.

gs_layout-zebra = 'X'.
gs_layout-confirmation_prompt = 'X'.
gs_layout-edit = 'X'.

DATA: gt_itab TYPE TABLE OF zemplist WITH HEADER LINE.

SELECT *
  FROM zemplist
  INTO CORRESPONDING FIELDS OF TABLE @gt_itab.

* Event
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
  EXPORTING
    i_list_type     = 0
  IMPORTING
    et_events       = gt_events
  EXCEPTIONS
    list_type_wrong = 1
    OTHERS          = 2.

gs_event-name = 'PF_STATUS_SET'.
gs_event-form = 'ALV_STATUS_SET'.
APPEND gs_event TO gt_events.

gs_event-name = 'DATA_CHANGED'.
gs_event-form = 'ALV_DATA_CHANGED'.
APPEND gs_event TO gt_events.

* Field Catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name         = sy-repid
*   i_internal_tabname     = 'GT_ITAB'
    i_structure_name       = 'ZEMPLIST'
    i_client_never_display = 'X'
    i_inclname             = sy-repid
    i_bypassing_buffer     = 'X'
    i_buffer_active        = 'X'
  CHANGING
    ct_fieldcat            = gt_fieldcat
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program      = sy-repid
    it_events               = gt_events
*   i_structure_name        = 'ZEMPLIST'
    it_fieldcat             = gt_fieldcat
    is_layout               = gs_layout
    i_callback_user_command = 'ALV_USER_COMMAND'
  TABLES
    t_outtab                = gt_itab.

FORM alv_status_set USING pt_extab TYPE slis_t_extab .

  CLEAR: pt_extab[].
*  SET PF-STATUS 'ALV_STATUS'.
  SET PF-STATUS 'STANDARD_FULLSCREEN'.

ENDFORM.                    "ALV_STATUS_SET

FORM alv_user_command USING p_ucomm    LIKE sy-ucomm
                            p_selfield TYPE slis_selfield.

  CASE p_ucomm.

    WHEN 'SAVE'.
      MODIFY zemplist FROM TABLE gt_itab.
      IF sy-subrc EQ 0.
        COMMIT WORK.
      ELSE.
        ROLLBACK WORK.
      ENDIF.

    WHEN 'CLOSE'.
      LEAVE PROGRAM.

    WHEN OTHERS.

  ENDCASE.

ENDFORM.                    " ALV_USER_COMMAND

FORM alv_data_changed USING pcl_data TYPE REF TO
                                          cl_alv_changed_data_protocol.
  DATA : l_name(20),
         ls_cells TYPE lvc_s_modi.

  FIELD-SYMBOLS <fs_value>.

  LOOP AT pcl_data->mt_mod_cells INTO ls_cells.

    CLEAR gt_itab.
    READ TABLE gt_itab  INDEX ls_cells-row_id.

    CONCATENATE 'GT_ITAB-' ls_cells-fieldname INTO l_name.
    ASSIGN (l_name) TO  <fs_value>.
    <fs_value> = ls_cells-value.

    MODIFY gt_itab INDEX ls_cells-row_id.

  ENDLOOP.

ENDFORM. "alv_data_changed

번호 제목 글쓴이 날짜 조회 수
463 INCLUDE Z17_04_0100_PBOO01 가능 2025.09.22 0
462 REPORT Z17_04 가능 2025.09.22 1
461 REPORT Z17_03 가능 2025.09.22 0
460 REPORT Z17_02 가능 2025.09.22 0
459 REPORT Z17_01 가능 2025.09.22 0
458 REPORT Z16_09 가능 2025.09.22 1
» REPORT Z16_08 가능 2025.09.22 0
456 REPORT Z16_07 가능 2025.09.22 0
455 REPORT Z16_06 가능 2025.09.22 0
454 REPORT Z16_05 가능 2025.09.22 0
453 REPORT Z16_04 가능 2025.09.22 1
452 REPORT Z16_03 가능 2025.09.22 0
451 REPORT z16_02 가능 2025.09.22 0
450 REPORT z16_01 가능 2025.09.22 0
449 REPORT Z15_28 가능 2025.09.22 1
448 REPORT Z15_27 가능 2025.09.22 0
447 REPORT Z15_26 가능 2025.09.22 0
446 REPORT Z15_25 가능 2025.09.22 0
445 REPORT Z15_24 가능 2025.09.22 0
444 REPORT Z15_23 가능 2025.09.22 0