GT_DOWN-LINE(20) 으로 선언된 변수가 있을 때,
GT_DOWN-LINE(3) = 'AAA'
GT_DOWN-LINE+3(4) = SPACE 를 입력하고
FORM DOWNLOAD_DATA .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = LV_FILE_NAME
FILETYPE = 'ASC'
* TRUNC_TRAILING_BLANKS_EOL = ' ' <-- 이부분을 주석처리 했더니
제가 지정한 스페이스도 나오지
않네요.
TABLES
DATA_TAB = GT_DOWN
EXCEPTIONS
OTHERS = 22.
ENDFORM.
이런식으로 다운을 받을 때, 제가 지정한 스페이스 외에 또다른 스페이스들이 선언한 20 바이트를 채우기 위해
채워져서 다운 됩니다.
(예를 들면 AAA+스페이스 17자리)
제가 채운 4바이트의 스페이스 이외의 스페이스 없이 다운 받을 수 있는 방법 없을까요?
고수님들의 답변 기다리고 있겠습니다...
아래와 같은 답변을 다른 용도의 글에 단 적이 있습니다(CMS관련)
internal table을 읽은 다음 한 줄로 만드는 펑션은 아는게 없습니다만,
loop을 돌면서 concatenate를 하면 되지 않을까 막연히 생각해 봅니다.
CMS의 데이터를 정의하는게 어떻게 되는지 모르겠습니다만..
문제는 정확한 자리수를 체크할 듯 한데, 이 경우 concatenate를 하면 space로 밖에 구분이 되지
않아서 위의 방법은 적절치 못할 것도 같습니다.
후배 사원이 작성한 프로그램 중에서, 이런 문제 때문에 쓴 소스코드가 아래와 같은 형식입니다.
it-text+0(06) = itab1-a.
it-text+6(02) = itab1-b.
it-text+8(13) = itab1-c.
it-text+21(22) = itab1-d.
it-text+43(08) = itab1-e.
it-text+72(2000) = itab1-f.
REFRESH offset_tab.
APPEND 2072 TO offset_tab.
CALL METHOD cl_abap_list_utilities=>memory_to_display
EXPORTING
memory_data = it-text
offset_tab = offset_tab
IMPORTING
display_data = it-text.
응용해 보시면 어떨까 합니다.
참고해 보십시오.