본문 바로가기
ABAP/Function|Class

[Function] CLOI_PUT_SIGN_IN_FRONT - 마이너스 부호를 앞으로 보내기

by name_text 2023. 5. 11.

마이너스 부호를 앞으로 보내기

CLOI_PUT_SIGN_IN_FRONT

 

SAP GUI는 기본적으로 숫자의 마이너스(-) 부호를 숫자 뒤에 표현하게 됩니다.

일반적인 상황에서는 별 문제가 없는데, 텍스트 형식으로 숫자를 표현할때(숫자가 포함된 텍스트를 표현 하거나 외부 연동시 Char형으로만 연동을 원할때) 마이너스 부호로 인해 문제가 발생하게 됩니다.

 

"CLOI_PUT_SIGN_IN_FRONT" 펑션을 이용해 텍스트형 숫자의 부호를 앞으로 옮길 수 있습니다.

#1. 사용 예시

DATA: LV_VALUE TYPE NETWR,
      LV_TEXT(15) TYPE C.

LV_VALUE = -1.
WRITE LV_VALUE TO LV_TEXT.  CONDENSE LV_TEXT.
WRITE :/ '변경전', LV_TEXT.

"마이너스 부호를 앞으로 보내기
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
  CHANGING
    VALUE         = LV_TEXT
          .
WRITE :/ '변경후', LV_TEXT.

#2. 테스트 결과

 

#3. String Function

String Function 을 이용하면 더욱 간편하게 마이너스 부호를 앞으로 보낼수 있습니다

SIGN = LEFT          " -" left without space, no "+"
SIGN = LEFTPLUS      "-" and "+" left without space
SIGN = LEFTSPACE    "-" left without space, blank left for "+"
SIGN = RIGHT        "-" right without space, no "+"
SIGN = RIGHTPLUS    "-" and "+" right without space
SIGN = RIGHTSPACE   "-" left without space, blank right for "+" 

DATA: LV_VALUE TYPE NETWR,
      LV_TEXT(15) TYPE C.

LV_VALUE = -1.
WRITE LV_VALUE TO LV_TEXT.  CONDENSE LV_TEXT.
WRITE :/ '변경전', LV_TEXT.

"마이너스 부호를 앞으로 보내기
WRITE :/ '변경후', |{ LV_VALUE SIGN = LEFT }|.

 

댓글