*&———————————————————————*
*& Report  ZJACKTEST
*&
*&———————————————————————*
*&
*&
*&———————————————————————*

REPORT  ZJACKTEST.

TYPE-POOLS: slis.

* >> field catalog 사용을 위한 data 선언
DATA: fieldcat TYPE slis_t_fieldcat_alv,
      fieldcat_ln LIKE LINE OF fieldcat.

DATA: col_pos TYPE i.

* >> t_outtab internal table 정의
DATA: BEGIN OF alv_it_mara OCCURS 0,
      matnr LIKE mara-matnr,
      ersda LIKE mara-ersda,
      ernam LIKE mara-ernam,
     END OF alv_it_mara.

* >> selection : ALV 초기화면에 보일 해당 필드만 지정해서 넣는다.
SELECT matnr ersda ernam
       INTO CORRESPONDING FIELDS OF TABLE alv_it_mara
       FROM mara.

* >> 구조화 프로그래밍을 위한 PERFORM 문 들….
PERFORM build_fieldcat.
PERFORM build_fieldcat2.
PERFORM build_fieldcat3.
PERFORM start_list_viewer.

*—————————————————————-*
*       FORM build_fieldcat1                                     *
*—————————————————————-*
*       첫번째 보여줄 필드                                       *
*—————————————————————-*
FORM build_fieldcat.
  ADD 1 TO col_pos.
  fieldcat_ln-ref_tabname = ‘MARA’.
  fieldcat_ln-fieldname = ‘MATNR’.
  fieldcat_ln-key = space.
  fieldcat_ln-do_sum = space.
  fieldcat_ln-col_pos = col_pos.
  fieldcat_ln-no_out = space.
  fieldcat_ln-qfieldname = space.
  fieldcat_ln-hotspot = space.
*—————————————————————-*
* 칼라지정시에는 ‘Cxyz’순으로 쓰임, 여기서 C는 Default이고
* x : color number
* y,z : 0 = ‘off’, 1 = ‘on’ 의 의미를 가집니다.
* y : intensified display on/off, z : inverse display on / off
*—————————————————————-*
  fieldcat_ln-emphasize = ‘C300′.
  APPEND fieldcat_ln TO fieldcat.
ENDFORM.

*—————————————————————-*
*       FORM build_fieldcat2                                     *
*—————————————————————-*
*      두번째 보여줄 필드                                        *
*—————————————————————-*
FORM build_fieldcat2.
  ADD 2 TO col_pos.
  fieldcat_ln-ref_tabname = ‘MARA’.
  fieldcat_ln-fieldname = ‘ERSDA’.
  fieldcat_ln-key = space.
  fieldcat_ln-do_sum = space.
  fieldcat_ln-col_pos = col_pos.
  fieldcat_ln-no_out = space.
  fieldcat_ln-qfieldname = space.
  fieldcat_ln-hotspot = space.
  fieldcat_ln-emphasize = ‘C600′.
  APPEND fieldcat_ln TO fieldcat.
ENDFORM.

*—————————————————————-*
*       FORM build_fieldcat3                                     *
*—————————————————————-*
*       세번째 보여줄 필드                                       *
*—————————————————————-*
FORM build_fieldcat3.
  ADD 3 TO col_pos.
  fieldcat_ln-ref_tabname = ‘MARA’.
  fieldcat_ln-fieldname = ‘ERNAM’.
  fieldcat_ln-key = space.
  fieldcat_ln-do_sum = space.
  fieldcat_ln-col_pos = col_pos.
  fieldcat_ln-no_out = space.
  fieldcat_ln-qfieldname = space.
  fieldcat_ln-hotspot = space.
  fieldcat_ln-emphasize = ‘C701′.
  APPEND fieldcat_ln TO fieldcat.
ENDFORM.

*—————————————————————-*
*       FORM START_LIST_VIEWER                                   *
*—————————————————————-*
*       ……..                                                 *
*—————————————————————-*
FORM start_list_viewer.
  DATA: pgm LIKE sy-repid.
  pgm = sy-repid.

  CALL FUNCTION ‘REUSE_ALV_LIST_DISPLAY’
      EXPORTING
         i_callback_program       = pgm
*        I_CALLBACK_USER_COMMAND  = ‘USER_COMMAND’
         it_fieldcat              = fieldcat
*        IT_SORT                  = SORTCAT
         i_save                   = ‘A’    "select & save layout

      TABLES
         t_outtab                 = alv_it_mara.
*        EXCEPTIONS
*           program_error            = 1
*           OTHERS                   = 2.

 

Result

alv_template

Related posts