ABAP 스크린 프로그램에서 Enter키 후에 특정 입력 필드로 커서를 이동 하는 방법


SAP에서 ABAP으로 스크린 프로그램(Online Program)을 개발할 때 GUI 화면에 여러 개의 입력 필드를 배치해서 개발하게 됩니다.

SAP GUI 화면에서 입력 필드에 값을 입력하고 엔터(Enter)를 누르게 되면 입력 커서는 자동으로 화면의 첫 번째 입력 필드로 이동하게 됩니다.

하지만 특정 입력 필드에서 엔터(Enter)를 했을 때 또 다른 특정 입력 필드로 커서가 이동하길 원할 때가 있습니다.

A 입력 필드에서 Enter를 누르면 C 입력 필드로 이동하고, B 입력 필드에서 Enter를 누르면 D 입력 필드로 커서가 자동 이동되거나,
A 또는 B 입력 필드에서 Enter를 누르면 E 입력 필드로 이동하고, C 또는 D 입력 필드에서 Enter를 누르면 F 입력 필드로 커서가 자동으로 이동하도록 프로그램을 개발해야 할 때가 있습니다.

이번 글에서는 SAP ABAP 스크린 프로그램에서 Enter키 후에 특정 입력 필드로 커서를 이동 하는 방법에 대해 알아보겠습니다.

ABAP 스크린 프로그램에서 Enter키 후에 특정 입력 필드로 커서를 이동 하는 방법

SAP 온라인 프로그램에서 엔터(Enter) 후에 특정 입력 필드로 커서 이동 시키는 방법

▶ PBO에서 특정 입력 필드로 커서 위치를 이동 시킵니다.

PROCESS BEFORE OUTPUT.
  MODULE STATUS_0100.
  MODULE SET_CURSOR.

▶ PAI에서 현재의 커서 위치를 가져옵니다.

PROCESS AFTER INPUT.
   MODULE GET_CURSOR.
   MODULE USER_COMMAND_0100. 

PBO / PAI MODULE 처리

▶ 현재 커서의 위치를 가져오기 위한 PAI 모듈

*&————————————————————–*
*&      Module  GET_CURSOR  INPUT
*&————————————————————–*

MODULE GET_CURSOR INPUT.
  GET CURSOR FIELD CURSORFIELD.    “현재 커서의 위치를 가져옴
ENDMODULE.                 ” GET_CURSOR  INPUT


▶ 특정 위치로 커서 위치를 이동 시키기 위한 PBO 모듈

*&————————————————————–*
*&      Module  SET_CURSOR  OUTPUT
*&————————————————————–*

MODULE SET_CURSOR OUTPUT.
  IF CURSORFIELD = ‘SC_AUFNR’.        “현재 커서 위치가 SC_AUFNR인 경
    SET CURSOR FIELD ‘SC_ZSPERNR’.   “커서 위치를 SC_ZSPERNR로 이동 시킴
  ENDIF.
ENDMODULE.                 ” SET_CURSOR  OUTPUT

결론

PAI(PROCESS AFTER INPUT) MODULE에서 현재 커서의 입력 필드 이름을 알아내고, PBO(PROCESS BEFORE OUTPUT) MODULE에서 이동할 입력 필드를 지정해 주면 됩니다.

상황에 맞게 다양한 조건을 추가해서 원하는 입력 필드 위치로 커서를 이동 시킬 수가 있습니다.





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


답글 남기기