동적 생성을 하다보면.. 혹은 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.
'ERP-SAP > ABAP' 카테고리의 다른 글
<ABAP> WRITE ~ TO ~ USING EDIT MASK 활용 (0) | 2013.07.22 |
---|---|
<ABAP> Select-options 옵션 (EQ,BT,NB,GE,LE,GT,LT,NE) (0) | 2013.07.11 |
<ABAP> Data Type을 가져오는 Class (read Data Type, Read type) (0) | 2013.07.08 |
<ABAP> T-code 유저 Role 부여하기 (0) | 2013.07.05 |
<ABAP> 라이센스 관리- 중복로그인 제한(Multi Logon) (0) | 2013.07.04 |