간단한 예제를 들면.. 아래와 같이 처리를 합니다.
ITAB의 LINE 필드에 데이타를 쭈욱 넣어서 만들어주고.
이걸 WRITE로 뿌려줍니다.
DATA: BEGIN OF ITAB OCCURS 0,
LINE(50),
END OF ITAB.
ITAB-LINE+0(1) = '|'.
ITAB-LINE+1(20) = '테스트'.
ITAB-LINE+21(1) = '|'.
APPEND ITAB.
CLEAR: ITAB.
ITAB-LINE+0(1) = '|'.
ITAB-LINE+1(20) = '테스트입니다.'.
ITAB-LINE+21(1) = '|'.
APPEND ITAB.
LOOP AT ITAB.
WRITE: / ITAB-LINE.
ENDLOOP.
테스트 결과는..
|테스트 |
|테스트입니다. |
이렇게 나옵니다.
|테스트 |
|테스트입니다. |
이렇게 포멧을 맞추는 방법은 없을까요..
WRITE시에 ITAB도+0(1) 이런씩으로 주면되긴합니다만,, 여러가지 경우가 있어서 이렇게 사용을 하지 못하네요.
고수님들 부탁드립니다 ( __ )
CALL METHOD CL_ABAP_LIST_UTILITIES=>REPLACE_INTO_DISPLAY_LAYOUT
EXPORTING
FIELD = '|'
DISPLAY_OFFSET = 0
DISPLAY_LENGTH = 1
CHANGING
DISPLAY_DATA = ITAB-LINE.
요렇게 해보시면 될듯 합니다.
아마도 유니코드 때문에 위와 같은 현상이 나타 날꺼예요~
수고하세요.