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 |
댓글