300x250
728x90

Table Control이란?


# ALV가 나오기 전, 대량의 데이터를 보여줄 때 필요했던 것Table Control이다.

 

 

Table Control 전체적인 그림 


# Table ControlLOOP문을 통해서 라인을 계속 그려줘야 한다. 

# PBO, PAI에서 그려주고 인터널테이블을 업데이트시켜 주는 형식

 

 

시작해 보자.

 

 

Table Control 설정 ( TOP )


# 다음과 같이 설정해 보자. 여기서 중요한 것은 Table Control 이름을 잘 기억해야 한다. 

# 또한 SCARR에 대한 Internal Table과 Structure 만들어주자.

* Table Control
CONTROLS  CTR_100 TYPE TABLEVIEW USING SCREEN '0100'.

DATA:
  GT_LIST TYPE TABLE OF SCARR,
  GS_LIST TYPE SCARR.

 

 

Call Screen 전에 SELECT 하기.

# 참고로 Table ControlSY-DBCNT 무조건 해줘야 한다

 

 

 

 

Table Control 생성( Screen 0100 )


#1. 원하는 스크린에서 Table Control 생성을 해보자.

 

#2. 상단에 있는 레이아웃 버튼을 클릭하고,

 

#3. Table Control( 테이블 제어 ) 생성해 보자.

 

#4. Table Control 이름설정해줘야 하는데 TOP에서 설정했던 이름을 넣어주자.

 

#5. Dictionary / 프로그램필드 버튼을 클릭 후,  프로그램에서 얻기를 클릭, TOP에서 설정했던 스트럭처를 선택해 주자.

 

 

#6. 다음과 같이 Table Control안필드를 넣어주면 된다.

 

# 7. Table Control 생성 완료.

 

Table Control 속성 설정


#1. 사용자가 보기 쉽게 분리자에서 수직, 수평을 누르면 라인이 생긴다.

 

#2. 또한 상단에 Title을 만들어야 하기 때문에 텍스트 필드를 통해서 값을 넣어보자. 

 

#3. 라인마다 텍스트 필드를 넣으면 다음과 같이 나올 것이다. 이제 이름을 설정해 보자.

 

#4. 이름 설정, 라인 넓이 설정, 소문자/대문자 설정도 가능하다. ( 상황에 맞게 설정 ), 모든 설정이 끝났으면 엑티베이트 하자.

 

 

화면 그려주기 ( PROCESS BEFORE OUTPUT ) 


#1. 다음과 같이 LOOP문을 돌아서 화면을 그려줘야 한다. 

LOOP AT GT_LIST INTO GS_LIST WITH CONTROL CTR_100.

ENDLOOP.

 

# Table Control 설정을 하고 싶으면 LOOP문 안에서 설정을 하면 된다. 

## 필드를 활성화/비 활성화 또는 필수 값 등등..

 

 

변환 화면 그려주기 ( PROCESS AFTER INPUT )


#1. LOOP문을 돌면서 변경된 값업데이트시켜 주자.

LOOP AT GT_LIST.

  MODULE PAI_TABLE_CONTROL.

ENDLOOP.

 

#2. 다음과 같이 변경된 GS_LIST 값을 업데이트시켜 주자. 

  MODIFY GT_LIST FROM GS_LIST INDEX CTR_100-CURRENT_LINE.

 

실행시켜 보자.

 

# 필드 비활성화/ 활성화는 로직으로도 변환 가능하고 Table Control 속성에서도 변경할 수 있다. 

 

# Table Control 라인 선택 설정하기


# 01. TOP에서 MARK 라는 필드를 선언을 해줘야한다. 방법은 여러가지지만 기존에 있던 GT_LIST에서 MARK라는 필드확장해서 사용하겠다. 

TYPES: BEGIN OF TY_S_LIST.

       INCLUDE STRUCTURE SCARR.

TYPES: MARK TYPE C,

       END OF TY_S_LIST.

DATA:
*  GT_LIST TYPE TABLE OF SCARR,     AS-IS
  GT_LIST TYPE TABLE OF TY_S_LIST," TO-BE
  GS_LIST TYPE TY_S_LIST.

 

# 02. 스크린 페인터에서 선택열포함 체크 한 후? " GS_LIST-MARK  " 필드를 넣어보자.

# GS_LIST-MARK를 넣어줘야 로직을 따로 설정 안 해줘도 된다.

# 테스트를 하기위해서 "변경"이라는 버튼을 만들었다.

 

# 03. 그리고 다음과 같이 " AZ "라는 라인선택 후, "변경"이라는 버튼을 클릭하면

 

# 04. 다음과 같이 디버깅을 보게 되면 GT_LISTMARK" X " 값이 찍혀있는 걸 볼 수 있다. 이것을 통해서 해당하는 라인을 가져와서 데이터변경하거나 삭제하거나 할 수 있게 된다.  

 

 

 

끝.

도움이 되셨으면 하단에 있는 광고 한 번씩 눌러주세유!!

 

728x90
LIST

'.SAP > ..ABAP' 카테고리의 다른 글

SAP WatchPoint 정리  (0) 2023.12.12
SAP Table Technical Setting 설정  (0) 2023.12.12
SAP GUI 한글(폰트) 깨짐  (0) 2023.11.02
SAP Self Join 정리  (1) 2023.10.31
SAP Lock Object 정리  (2) 2023.10.27