*******************************************
*Structure declaration for header - fieldnames
TYPES : BEGIN OF TY_HEADER,
FIELDNAME(100) TYPE C,
END OF TY_HEADER.
*Internal table and workarea declaration for header
DATA : IT_EXCEL_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 0,
WA_EXCEL_HEADER TYPE TY_HEADER.
********************************************
WA_EXCEL_HEADER-FIELDNAME = 'Sold-to-party name'.
APPEND WA_EXCEL_HEADER TO IT_EXCEL_HEADER.
********************************************
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
* bin_filesize =
FILENAME = P_PATH
FILETYPE = 'DBF'
* append = SPACE
* WRITE_FIELD_SEPARATOR = '#'
* HEADER = '00'
* trunc_trailing_blanks = SPACE
* WRITE_LF = 'X'
* COL_SELECT = 'X'
* COL_SELECT_MASK = '#'
* DAT_MODE = 'X'
CONFIRM_OVERWRITE = 'X'
* no_auth_check = SPACE
* codepage = SPACE
* ignore_cerr = ABAP_TRUE
* replacement = '#'
* write_bom = SPACE
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* wk1_n_format = SPACE
* wk1_n_size = SPACE
* wk1_t_format = SPACE
* wk1_t_size = SPACE
* show_transfer_status = 'X'
FIELDNAMES = IT_EXCEL_HEADER
* write_lf_after_last_line = 'X'
* IMPORTING
* filelength =
CHANGING
DATA_TAB = GT_DOWNLOAD
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
NOT_SUPPORTED_BY_GUI = 22
ERROR_NO_GUI = 23
OTHERS = 24.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
********************************************
이렇게 사용했습니다.
그러나 실제 다운로드 받았을때는 헤더 필드 네임이 전부 10자리로 잘려서 나오더군요.
10자리 이상 나오게 할 방법이 없을까요?
혹시 알고 계시는 분. 답변 부탁드립니다. ^^ 감사합니다.
댓글 3
-
밥~~
2010.12.10 18:33
-
작은꿈
2010.12.10 19:10
밥~~ // 답변 감사합니다. 하지만 ASC나 DAT로 했을경우 데이터가 온전히 다운로드가 안됩니다.
예를 들면 '001234' 라는 데이터는 엑셀에서 열었을때 '1234'로 보입니다. 변환되서 보이는거죠.
SMW0를 사용할만한 프로그램은 아니구요. 매크로 같은것이 들어가는게 아니라서요.
물론 싱글 쿼테이션(')을 사용할 수도 있겠지만 엑셀에서 바로 열었을때 싱글 쿼테이션이 그대로 나타나는 문제도 있었습니다.
그래서 최종적으로 EXCEL에 적용할 수 있는 'DBF' 타입을 선택했고요.
문제는 데이터는 잘 나오는데 헤더가 10자리로 제한이 되더군요. 또한 스탠다드 소스 분석을 했을때. NO-GAP 구문이 적용되어 스페이스가 죄다 붙어 버리더군요.
-
작은꿈
2010.12.10 20:00
FILETYPE = 'DBF' --> 반드시 DBF를 사용해야 합니까?
일반적으로 filetype은 'ASC' or 'DAT'를 사용합니다...
그리고, 다운로드시에는 저같은 경우 itab을 char타입으로 선언하여, head 선언없이
첫 라인을 head text로 채우는 경우도 있었습니다...