본문 바로가기
ABAP

ALV 5 (SPLIT)

by clode 2023. 2. 16.
728x90
반응형

스플릿은 한 컨테이너를 여러개로 나눠서 다른 ALV 화면을 보여줄수 있는 기능이다. 일반 ALV에선 CUSTOM CONTAINER를 사용했지만 스플릿 ALV에서는 SPLIT CONTAINER를 사용한다.

[초기화면 구성]

TABLES SCARR.
SELECT-OPTIONS: s_carrid FOR scarr-carrid.

셀렉트 옵션에서 사용하는 필드의 테이블은 TABLES로 선언 되어야한다. STRUCTURE로 사용되기 때문이다.

[실행화면 구성]

셀렉트옵션에 값을 입력하고 실행하면 해당하는 데이터가 나오게 하기 위해 테이블 SCARR를 참조하는 INTERNAL TABLE과 STRUCTURE를 선언해주고 INTERNAL TABLE에 SCARR의 데이터를 넣어준다.

셀렉트옵션은 범위값이기 때문에 WHERE조건에서 IN으로 조건을 준다.

DATA: gs_tab  TYPE scarr,
      gt_tab  TYPE TABLE OF scarr.

  SELECT * FROM scarr
    INTO TABLE gt_tab
   WHERE carrid IN s_carrid.

[화면 ALV 구성]

ALV를 출력해줄 화면을 하나 생성해준다. 화면에는 컨테이너를 그려준다.

컨테이너는 하나기때문에 컨테이너 변수 하나만 선언해주고 컨테이너를 구분해줄 2개의 SPLIT변수와 ALV는 총 3개가 나와야하므로 그리드 변수는 세개를 선언해준다.

DATA: g_custom_con TYPE REF TO cl_gui_custom_container,
      g_split1     TYPE REF TO cl_gui_easy_splitter_container,
      g_split2     TYPE REF TO cl_gui_easy_splitter_container,
      g_alv1       TYPE REF TO cl_gui_alv_grid,
      g_alv2       TYPE REF TO cl_gui_alv_grid,
      g_alv3       TYPE REF TO cl_gui_alv_grid.

실행했을때 ALV가 보여야하므로 PBO에 ALV를 구현하는 로직을 넣어준다.

  CHECK g_custom_con IS INITIAL.

  CREATE OBJECT g_custom_con
    EXPORTING
      container_name = 'HD_CON'.

  CREATE OBJECT g_split1
    EXPORTING
      parent    = g_custom_con
      orientation = cl_gui_easy_splitter_container=>orientation_vertical.

  CREATE OBJECT g_split2
    EXPORTING
      parent    = g_split1->bottom_right_container
      orientation = cl_gui_easy_splitter_container=>orientation_vertical.

  CREATE OBJECT g_alv1
    EXPORTING
      i_parent = g_split1->top_left_container.

  CREATE OBJECT g_alv2
    EXPORTING
      i_parent = g_split2->top_left_container.

  CREATE OBJECT g_alv3
    EXPORTING
      i_parent = g_split2->bottom_right_container.

각 ALV GRID에 출력될 내용을 구현해준다. OUTTAB에는 어떤 INTERNAL TABLE을 보여줄건지, 보여줄 INTERNAL TABLE을 입력한다. ALV를 SCARR 테이블의 전체를 보여주면 되기때문에 STRUCTURE_NAME에 테이블 이름을 넣어줬지만 몇몇 특정 필드들만 보여주고 싶다면 수동으로 필드 카탈로그를 구성한뒤에 메소드 호출부분에 필드 카탈로그 이름을 입력해주면 된다.

  CALL METHOD g_alv1->set_table_for_first_display
    EXPORTING
      i_structure_name = 'SCARR'
    CHANGING
      it_outtab        = gt_tab.

  CALL METHOD g_alv2->set_table_for_first_display
    EXPORTING
      i_structure_name = 'SCARR'
    CHANGING
      it_outtab        = gt_tab.

  CALL METHOD g_alv3->set_table_for_first_display
    EXPORTING
      i_structure_name = 'SCARR'
    CHANGING
      it_outtab        = gt_tab.
728x90
반응형

'ABAP' 카테고리의 다른 글

ALV 7  (0) 2023.02.16
ALV 6 (필드카탈로그 구성)  (0) 2023.02.16
ALV 4 (Layout)  (0) 2023.02.16
ALV 3 (Hotspot)  (0) 2023.02.16
ALV 2 (이벤트)  (0) 2023.02.16

댓글