ABAP SELECTION-SCREEN에서 PARAMETERS의 입력 비활성 하는 방법


SAP ABAP에서 Report 프로그램을 개발할 때 SELECTION-SCREEN에서 PARAMETERS를 사용해서 리포터의 실행 조건을 입력 받게 됩니다.
SELECTION-SCREEN에서 PARAMETERS와 함께 SELECT-OPTIONS를 사용하여 다중 값의 실행 조건을 입력 받기도 합니다.

가끔 실행 조건 중에 무조건 기본적으로 사용되는 조건 값이 있을 수 있습니다.

예를 들어 해당 ABAP 프로그램은 지정된 회사 코드만 조회하거나 또는 지정된 플랜트만 조회하거나 또는 지정된 자재 유형만 조회하는 프로그램을 개발한다고 했을 때 굳이 PARAMETERS로 회사 코드나 플랜트나 자재 유형을 입력 받을 필요는 없습니다. 프로그램에서 직접 지정해서 실행하면 되기 때문입니다.

하지만 SELECTION-SCREEN의 PARAMETERS에 조건을 입력 받는 것이 의미 없는 경우에라도 사용자가 어떤 조건으로 실행되는지 알려 줄 필요는 있습니다. 이럴 경우 PARAMETERS로 조건 입력을 화면에 함께 표시를 하지만 입력을 비활성으로 해 놓으면 PARAMETERS의 입력 값이 변경되는 일 없이 해당 조건으로 실행 조건을 처리할 수 있게 됩니다.

또는 특정 사용자에게만 PARAMETERS의 입력을 활성화 하고, 다른 사용자에게는 비활성 해서 사용하는 방법을 구현할 수도 있습니다.

이번 글에서는 ABAP SELECTION-SCREEN에서 PARAMETERS의 입력 비활성 하는 방법에 대해 알아보겠습니다.

ABAP에서 PARAMETERS 입력을 비활성 하는 방법에 대한 실제 예제

▼ 아래 ABAP 프로그램은 여러 개의 PARAMETERS 중에서 일부를 입력 비활성 하는 예제입니다.

  • 입력을 비활성 하는 PARAMETERS는 DEFAULT 값을 미리 지정해 놓습니다.
 
SELECTIONSCREEN BEGIN OF BLOCK BL4 WITH FRAME TITLE TEXT004.
PARAMETERS: GV_MAIL(30) LOWER CASE ,
            GV_NAME(30) LOWER CASE ,
            GV_ATTN(80).    
SELECTIONSCREEN SKIP 1.
PARAMETERS: GV_ORIG(80),
            GV_DELIV(40) DEFAULT ‘AS SOON AS POSSIBLE’ ,
            GV_TERM(40) DEFAULT ‘PO에서 가져옴’ ,
            GV_ZZONP(40),    
            GV_ZZDSP(40),   
            GV_PACK(40) DEFAULT ‘EXPORT STANDARD PACKING’ ,
            GV_PAY(40) DEFAULT ‘PO에서 가져옴’ ,
            GV_REMAR(80).   
SELECTIONSCREEN END OF BLOCK BL4.

*——————————————————————–
AT SELECTIONSCREEN OUTPUT.
 
  LOOP AT SCREEN.
    IF SCREENNAME = ‘PA_DELIV’ OR SCREENNAME = ‘PA_TERM’ OR SCREENNAME = ‘PA_PACK’ OR SCREENNAME = ‘PA_PAY’.
      SCREENINPUT = 0. “입력 비활성
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
 

ABAP에서 PARAMETERS 입력을 비활성 하는 방법에 대한 실제 예제 실행 결과

▼ 아래 화면은 앞 단락의 ABAP 프로그램의 실행 결과 입니다.

  • SCREEN-INPUT = 0‘으로 설정하면 해당 입력이 비활성 됩니다. 반대로 ‘SCREEN-INPUT = 1‘로 설정하면 입력이 활성 됩니다.
  • 2.DELIVERY, 3.TERM OF SHIPMENT, 6.PACKING, 7.PAYMENT 이렇게 네 개의 PARAMETERS를 입력 비활성 처리를 하고 있습니다.
  • 만약 특정 사용자에게 비활성을 적용해야 하는 경우 IF 조건문에서 SY-UNAME = ‘사용자ID’를 사용하면 사용자 별로 입력 활성 및 비활성을 제어할 수 있습니다.
ABAP SELECTION-SCREEN에서 PARAMETERS의 입력 비활성 하는 방법





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


답글 남기기