본문 바로가기
ERP-SAP/ABAP

<ABAP> Char to Num 펑션 (부호 있을때, Sign 있을때 Sign number) 마이너스 부호 위치 변경

by 행복한워니의 기록 2013. 7. 8.
728x90
반응형

동적 생성을 하다보면.. 혹은 Excel 업로드를 하다보면..
 
가끔 Char 타입의 숫자를 읽어올때가 있다.
 
그런데 그 char 타입 숫자 부호가 앞에 붙어 있을때..
 
즉, -1234 일때.. 해당 필드로 이전시키면.. 덤프난다..
 
원래 부호있는 숫자 필드의 경우 1234- 로 들어가야 하기 때문이다..
 
 
 
그럼 해결방법은 간단하다..
 
변환해주면 된다.. char to num
 
기본적으로 char 는 num 필드에 그냥 꼽아도 되지만.. 부호가 있다면..
 
변환을 해주어야 겠지..
 
Describe 필드를 해서 필드 타입이 P타입이나 N 타입이면.. 컨버젼을 타게 했다..
 
참고로 typ 필드는 data : typ(1) type c. 로 선언되어 있다.
 
참고해서 돌려보길 바란당.. ㅎ
 
 
 
 

    LOOP AT lt_intern.
    CLEAR lv_index.
    IF lt_intern-row > 0"읽어들이는 라인 (excel line)
      lv_index lt_intern-col ).
      ASSIGN COMPONENT lv_index OF STRUCTURE <struc> TO <field>.
      DESCRIBE FIELD <field> TYPE typ.

      IF typ 'P' OR typ 'N'.
        CALL FUNCTION 'MOVE_CHAR_TO_NUM'
          EXPORTING
            chr             lt_intern-value
          IMPORTING
            num             <field>
          EXCEPTIONS
            convt_no_number 1
            convt_overflow  2
            OTHERS          3.
      ELSE.
        <field> lt_intern-value.
      ENDIF.

      AT END OF row.
        APPEND <struc> TO <table>.      "CLEAR  gt_excel.
      ENDAT.
    ENDIF.
  ENDLOOP.

728x90
반응형