본문 바로가기
ABAP

Table control

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

테이블 컨트롤

  • 테이블에 대량의 데이터를 표시하는데 사용한다. 그래서 사용할때 흐름로직에 LOOP 꼭 필요 !!!
  • 모든 화면 요소와 마찬가지로 스크린페인터에서 정의된다.
  • 테이블 컨트롤 내에서 입력 / 출력 필드, 라디오 버튼, 확인란, 라디오 버튼 그룹 및 푸시 버튼을 표시 할 수 있다.
  • 첫 번째 행은 항상 헤더 행이다.

SFLIGHT 테이블에서 10건의 데이터만 테이블 컨트롤을 사용해 불러온다.

[프로그램 로직]

<TOP>

TABLES : SFLIGHT.

DATA: OK_CODE LIKE SY-UCOMM.

DATA: GS_TAB TYPE SFLIGHT,
          GT_TAB TYPE TABLE OF SFLIGHT.

CONTROLS CONT1 TYPE TABLEVIEW USING SCREEN 0100. 

화면100 사용해서 테이블 컨트롤 사용

<화면 100>

DICTIONARY가 아닌 프로그램에서 얻어와 텍스트를 일일히 다 직접 입력해줬다.. DICTIONARY에서 불러올껄

PROCESS BEFORE OUTPUT.
 MODULE status_0100.
 MODULE select_0100.

 LOOP AT gt_tab INTO gs_tab WITH CONTROL CONT1. "테이블컨트롤에 어떤거 담을건지
 ENDLOOP.


PROCESS AFTER INPUT.
MODULE exit AT EXIT-COMMAND.
 MODULE user_command_0100.

 LOOP AT gt_tab. "값 변경시 어떤값 변경했는지
  MODULE read_table_control.
 ENDLOOP.

<PBO>

MODULE status_0100 OUTPUT.
 SET PF-STATUS 'S100'.
 SET TITLEBAR 'S100'.
ENDMODULE.


MODULE select_0100 OUTPUT.
  SELECT * FROM sflight
    INTO TABLE gt_tab
    UP TO 10 ROWS.
ENDMODULE.

10건만 불러온다.

<PAI>

MODULE exit INPUT.
  CASE ok_code.
    WHEN 'EXIT' OR 'CANC'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.



MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.



MODULE read_table_control INPUT. 
  modify gt_tab from gs_tab INDEX cont1-current_line.
ENDMODULE.

테이블컨트롤에서 값 변경했을 때 변경한 해당 라인 값,wa값 읽어서 int에 반영한다.

728x90
반응형

'ABAP' 카테고리의 다른 글

RFC 1  (0) 2023.02.14
Tabstrip  (0) 2023.02.14
Module-pool 6 (Subscreen, table control)  (0) 2023.02.14
Module-pool 5 (변경/생성)  (0) 2023.02.14
Module-pool 4 (Radio button)  (0) 2023.02.14

댓글