ABAP Report 프로그램의 Write 구문에서 입력 필드와 버튼을 사용 하는 방법


SAP ABAP에서 리포트(Report) 프로그램을 개발할 때 WRITE 구문으로 리스트를 출력하게 됩니다.

간혹 WRITE 구문으로 만든 리스트에서 입력 필드(Input Field)가 필요한 경우가 생깁니다.
화면으로 리포트를 출력한 상태에서 입력 필드에 추가 내용을 입력하고 인쇄를 하거나 입력 필드의 내용으로 후속 작업을 처리하고자 할 때 WRITE 구문에 INPUT 필드를 추가해서 사용하게 됩니다.

WRITE의 Format Options 중에 INPUT 포맷 옵션을 사용하면 간단하게 Input filed를 구현할 수 있습니다.

그리고 WRITE 구문으로 만들어진 리스트에서 라인을 선택(Select) 하면 발생하는 이벤트인 AT LINE-SELECTION에 버튼을 구현할 수 있습니다.

이번 글에서는 ABAP Report 프로그램의 Write 구문에서 입력 필드와 버튼을 사용 하는 방법에 대해 알아보겠습니다.

ABAP Report 프로그램의 Write 구문에서 입력 필드와 버튼을 사용 하는 방법 예제

▼ SAP ABAP Report 프로그램에서 WRITE 구문의 INPUT 포맷 옵션과 HOTSPOT 포맷 옵션을 사용한 예제 입니다.

  • INPUT 옵션은 WRITE 문에서 입력 필드를 만들 때 사용하는 포맷 옵션입니다.
  • HOTSPOT 옵션은 WRITE 문에서 마우스 커서의 모양을 손가락 클릭 모양의 커서로 변환하는 포맷 옵션입니다.
    HOTSPOT으로 정의된 필드에 마우스가 가면 마우스 커서 모양이 손가락 클릭 모양으로 바뀌게 됩니다.
REPORT  ymm0001 .
 
DATA: input_field TYPE c LENGTH 20,
      line_num TYPE i,
      col_no TYPE i,
      btn_text(10) TYPE c VALUE ‘>> 확인 <<‘.
 
 
*—————————————–
START-OF-SELECTION.
 
  input_field = ”.
 
  WRITE:/ ‘Input text:’.
  WRITE  input_field INPUT.            ” 입력 가능 필드로
  WRITE  btn_text COLOR 5 HOTSPOT.     ” 손가락모양 커서 만들때
 
 
*—————————————–
AT LINE-SELECTION.
 
  IF sy-cucol >= 35 AND sy-cucol <= 45.   ” 클릭한 커서의 가로 위치로 btn_text 필드인지 확인
 
    ” 선택한 Row의 라인번호
    line_num = sy-lilli.
 
    ” 해당 라인 전체 내용에서 input_field 필드값만 읽기
    READ LINE line_num FIELD VALUE input_field.
 
    IF input_field = ”.
      MESSAGE i000(zca001) WITH ‘텍스트를 입력하세요.’.
    ELSE.
      WRITE: ‘The input was: ‘,
               input_field.
    ENDIF.
  ENDIF.
 

ABAP Report 프로그램의 Write 구문에서 입력 필드와 버튼을 사용 하는 방법 실행화면

▼ 앞 단락의 ABAP 프로그램을 실행했을 때의 화면입니다.

  • 입력 필드(input_field) 하나와 실제 버튼은 아니지만 버튼 효과를 낼 수 있는 텍스트 필드(btn_text) 하나가 출력 된 화면입니다.
ABAP Report 프로그램의 Write 구문에서 입력 필드와 버튼을 사용 하는 방법 1

>> 확인 <<을 클릭했을 때의 화면입니다.

  • “확인” 버튼, 정확하게 말하면 해당 라인을 클릭했을 때 AT LINE-SELECTION 이벤트가 발생하게 됩니다.
  • sy-cucol 시스템 필드 값으로 클릭한 마우스 위치를 체크해서 btn_text 필드를 클릭했는지 확인하게 됩니다.
ABAP Report 프로그램의 Write 구문에서 입력 필드와 버튼을 사용 하는 방법 2


정리를 하면 ABAP의 Report 프로그램 리스트에서 입력 필드를 사용하는 일은 그렇게 흔한 작업은 아니지만 가끔 필요할 때가 있어 알아두면 유용하게 사용할 수 있는 기능입니다.
버튼 구현도 마찬가지로 알아두면 유용하게 사용할 수 있습니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기