[ABAP] TYPE-M Table Control

SAPCO·2023년 11월 23일
0

- [ABAP]

목록 보기
8/18

0. 도입

Table control을 통해 인터널 테이블에 담겨있는 데이터를 목록으로 출력하려면 몇 가지 필수적으로 입력해야 할 소스가 있다.

1. 필수 코드

  • PROCESS BEFORE OUPUT에 입력해야 하는 코드

    1. ABAP 작업영역에 있는 필드데이터와 같은 이름을 가지는 Screen 작업 영역에 있는 필드에 복사.

    ITAB과 Table control의 Screen Table간 일치하는 필드의 데이터가 자동으로 복사된다.
    루핑은 1:1 1:2 1:3 2:1 2:2.. 병렬로 이루어진다.

    LOOP AT itab WITH CONTROL tc
    	CURSOR tc-current_line.
    ENDLOOP.
    1-2. Table control에서 데이터를 제어하는 방법.

    이 방법은 ITAB과 같은 인터널 테이블 없이 처리하려고 할 때 사용.
    화면에 나타나는 필드의 값과 프로그램에 정의된 필드를 일치시킨다. 이때 ABAP의 필드는 인터널 테이블에 선언된 필드가 아닌, 일반변수나 Structure 필드.
    <action> 공간에는 row 단위로 스크린과 프로그램에 정의된 필드를 서로 일치시키는 소스코드가 필요.

    LOOP WITH CONTROL <Table control>
    	'<action>'
    ENDLOOP.
  • PROCESS AFTER INPUT에 입력해야 하는 코드

    2. itab을 루핑하면서 Screen field에 새로운 값이 입력되면 해당 Screen field와 같은 이름을 가지는 itab의 필드의 데이터를 수정.
    LOOP AT itab.
    	CHAIN.
        FIELD : itab-field1, itab-field2, itab-field3, itab-field4, itab-field5.
        MODULE modify_itab ON CHAN-REQUEST.
      ENDCHAIN.
    ENDLOOP.

    Table control에서 수정된 필드가 위치하는 라인의 데이터로 itab을 수정하는 내용.
    PBO에서 itab과 Table control의 데이터 위치 구조를 맞추어 주어서 구조는 동일하다.

     MODULE modify_itab INPUT.
       MODIFY itab INDEX tc-current_line.
     ENDMODULE.

2. 선택 코드

- 스크린 페인터에서 그린 Table control 라인보다 tiab에 담겨있는 데이터의 라인 수가 많을 경우 상하 스크롤바를 사용할 수 있도록 해주는 로직.

PBO에서 init 부에 해당 소스코드 입력.

DESCRIBE TABLE itab  LINES tc-line.
profile
SAP CO

0개의 댓글