ABAP 0722 클래스

CinnamonTree·2022년 7월 22일
0

ABAP

목록 보기
5/6

테이블

TYPE TABLE 데이터 한꺼번에 출력

cl_demo_output=>display( gt_scarr )

스트럭쳐 단위의 데이터 이동

  • 각 스트럭쳐의 COMPONENT의 이름 비교하여 같으면 넣음
    MOVE-CORRESPONDING GS_CARRIER TO GS_CARRIERFLIGHT.
    MOVE-CORRESPONDING GS_FLIGHT TO GS_CARRIERFLIGHT.

INTERNAL TABLE

DATA ITAB TYPE TABLE OF TS WITH HEADER LINE.
=> WITH HEADER LINE == DATA GS LIKE LINE OF GT_ITAB.
REFRESH - INTERNAL TABLE CONTENT 삭제
CLEAR - HEADER LINE만 초기화
FREE - 메모리까지 해제

클래스

인스턴스 메서드 <-> 클래스 메서드 선언

클래스를 로컬에서 만들어 사용을 하면 선언부/구현부로 나눔.
메소드의 구현부는 코드가 길어질 거니까 분리함.

class lcl_compute definition.
  public section.
    " 그냥 methods:라고 쓰면 인스턴스 메스드이고
    " class-methods라고 선언하면 static method라고 선언을 한것임.
    class-methods: get_percentage_by_lcl
      importing iv_act type i iv_max type i
      exporting ev_percentage type p.
endclass.

클래스 인스턴스 생성 및 메서드 사용

"클래스 타입 생성
DATA gc_obj TYPE REF TO class_poo.
"인스턴스 생성
CREATE OBJECT gc_obj.
"인스턴스 메서드 호출
CALL METHOD gc_obj->poo "시스템에 등록한 글로벌 클래스
	EXPORTING
    ~
" 클래스 메서드 호출
CALL METHOD gc_obj=>poo "시스템에 등록한 글로벌 클래스
	EXPORTING
    ~

데이터 참조

아래의 경우 레퍼런스로 똑같은 데이터를 참조하여 메모리를 아낌.

  • 처음에 같은 데이터를 가리키도록 할 때.
  • 파라미터로 전달할때 .
  • PERFORM 구문에서 USING VALUE(pa_int1), CHANGING VALUE(gv_a) 대신 USING (pa_int) CHANGING (gv_a)를 썼을 때.

ABAP EVENTS

선언부 / selection screen 전 initializing / at selection-screen / start-of-selection

헤더 테이블

seltab header table

  • so_carr[] : 인터널 테이블
  • so_carr : 헤더라인(=wa)

Module pool

  • screen과 gui status는 보통 1대1 관계
  • module은 PROCESS AFTER INPUT, PROCESS BEFORE OUTPUT에 생성 시 리스트에 자동 추가됨.
  • module pool은 screen들 간 이동을 지원하는 프로그램이라고 생각하면 된다. USER command에 따라 Case When 구문으로 screen 이동을 할 수 있다.

0개의 댓글