ABAP에서 P Type 변수를 출력(WRITE)할 때 천 단위 콤마(,)를 제거(생략)하는 방법


SAP에서 ABAP으로 리포터를 개발할 때 주로 많이 사용하는 방법이 ALV로 리포터를 구현하는 방법입니다.

하지만 WRITE 구문으로 출력 리포터를 개발하는 경우도 많이 있습니다. 단순한 인쇄 목적의 리포터 프로그램은 대부분 WRITE 구문으로 리포터 프로그램을 개발하게 됩니다.

ABAP에서 WRITE 구문으로 출력할 때 출력하는 변수의 데이터 타입이 ‘P’ 타입인 경우 자동으로 천 단위 콤마(,)가 붙게 됩니다.

이번 글에서는 ABAP에서 P Type 변수를 출력(WRITE)할 때 천 단위 콤마(,)를 제거(생략)하는 방법에 대해 알아보겠습니다.

ABAP의 Data Type ‘P’에 대해 알아보기

다양한 개발 프로그램에서 고유한 형식의 Data Type을 정의해서 사용하게 됩니다.
ABAP도 여러 가지 Data Type을 가지고 있으며 소수점이 있는 숫자형 변수를 정의할 때 ‘P’ 데이터 타입을 정의해서 사용하게 됩니다.

  • Data Type ‘P’ : Packed Number 타입으로 소수점 자릿수를 지정해서 숫자형 변수를 선언할 때 사용하는 데이터 타입입니다.
  • 사용 예 : DATA value(10) TYPE P DECIMALS 2.
    – 소수점 2자리로 된 10자리 숫자형 변수를 선언하는데 변수 이름을 ‘value’로 선언한 예 입니다.

ABAP P Type 변수를 WRITE할 때 천 단위 콤마(,)를 제거(생략)하는 방법

일반적으로 큰 숫자를 출력할 때 천 단위 구분으로 콤마(,)를 표시해서 출력하게 됩니다. 천 단위로 콤마가 찍혀 있어야 숫자를 더 빨리 읽고 이해할 수 있습니다.

하지만 상황에 따라 천 단위 콤마를 제거해서 출력해야 할 때가 있습니다.
출력한 리포터를 로컬 파일로 익스포트(Export)해서 엑셀로 불러올 때 천 단위 콤마가 있으면 정상적인 숫자로 불러오지 못하고 문자로 인식해서 불러오는 경우가 발생하게 됩니다.

ABAP에서 필요에 따라 천 단위 콤마를 없애야 할 경우 아래 소스처럼 WRITE 옵션으로 ‘NO-GROUPING‘을 붙여주면 천 단위 콤마가 생략되어 출력하게 됩니다.

DATA: value(10) TYPE p DECIMALS 2.
 
value = ‘152643.29’.
 
WRITE: / value.               ==> 출력결과: 152,643.29
WRITE: / value NO-GROUPING.   ==> 출력결과: 152643.29

▼ 위 ABAP 프로그램을 실행한 화면입니다.

ABAP에서 P Type 변수를 출력(WRITE)할 때 천 단위 콤마(,)를 제거(생략)하는 방법

마무리

큰 숫자에서 천 단위 콤마(,) 구분은 꼭 필요한 요소입니다. 천 단위 콤마(,) 구분이 있음으로 인해 쉽게 숫자를 읽을 수 있습니다.

하지만 상황에 따라 천 단위 구분 콤마(,)를 없애야 할 경우가 생길 때도 있습니다.
WRITE 구문의 NO-GROUPING 옵션만 붙여 주면 간단하게 천 단위 콤마를 제거해서 숫자를 출력할 수 있습니다.





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


답글 남기기