SAP/ABAP

ABAP Call Screen 100 실행 후 Write 구문 출력하기

그녀는애교쟁이 2015. 1. 26. 13:00
반응형

개발을 하다보면 그냥 WRITE 구문을 사용해서 메시지를 출력하고 싶을 때가 있다. CALL SCREEN 100 을 써서 별도의 스크린을 만들면 WRITE 구문을 사용 할 수가 없다. 그렇기 때문에 REPORT 초기화면에서 쓰는 것과 같이 화면에 출력이 되지 않는다. 이미 ALV나 별도의 화면이 있는 상황에서 단순히 WRITE 구문을 사용하고 싶다면 아래와 같은 코드를 추가해 주면 된다. ( 예를 들면 BDC를 돌리고 그리고 그 결과를 출력하기 위해서 WRITE 구문을 쓰려고 한던지 할 때 사용하면 된다. ) 


코드의 핵심부분은 SUPPRESS DIALOG 이다. 이 코드를 추가하면 100번 스크린에서 WRITE 구문을 출력 할 수 있다. ( 실제로 100번 스크린에서 출력이 되는 것은 아니다. 왜냐하면 SCREEN 0 로 RETURN을 미리 하기 때문이다. )





*&---------------------------------------------------------------------*
*& Report  YTEST017
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ytest017.

START-OF-SELECTION.
  CALL SCREEN 0100.

*&---------------------------------------------------------------------*
*&      Module  DISPLAY  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE display OUTPUT.

  LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
  SUPPRESS DIALOG.  " <- 이부분을 추가한다.

  WRITE : 'Call Screen 100 결과'.
  uline : /1.
  WRITE : /, 5(100) '테스트 출력'.
  
ENDMODULE.                 " DISPLAY  OUTPUT

*&---------------------------------------------------------------------*
* Screen 100 Source
*&---------------------------------------------------------------------*
PROCESS BEFORE OUTPUT.
  MODULE display.

PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.