ALV 툴바를 이용하여 스프레드시트 또는 로컬 파일을 이용하여 저장하면 no_out 대상은 제외되지만..
아래와 같이 출력기능을 별도로 구현할 경우에는
인터널테이블 정보로 ALV 정보와 별도 출력가능합니다.
방법1. CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA' ("SMW0 : SAP 웹저장소" 활용 시),
방법2. CALL FUNCTION 'GUI_DOWNLOAD'
다른 방법이 있으면 고수님들 답변이 추가로 있을 것 같습니다~ 참고하세요~
* 방법1. Function 관련은 아래 소스 참고하세요.
* Excel 관련 Data
INCLUDE ole2incl. INCLUDE officeintegrationinclude. DATA: g_excel TYPE ole2_object, " Excel object
g_mapl TYPE ole2_object, " list of workbooks
g_map TYPE ole2_object, " workbook
g_sheets TYPE ole2_object, " workbook's sheets
g_sheet TYPE ole2_object, " workbook's sheet
gs_columns TYPE ole2_object,
g_cell TYPE ole2_object, " cell
g_font TYPE ole2_object. " font DATA: g_retcode TYPE t_oi_ret_string. DATA: g_doc_table LIKE w3mime OCCURS 0. DATA: g_doc_size TYPE i. DATA: g_doc_type(80) VALUE soi_doctype_excel_sheet. DATA: g_doc_format(80) TYPE c. DATA: g_file LIKE rlgrap-filename,
g_filename(80) TYPE c,
g_file_length(20).
FORM open_doc_xls USING p_form
p_task.
DATA : l_key LIKE wwwdatatab,
l_temp_file LIKE w3file-name,
l_file LIKE rlgrap-filename.
* 문서 가져오기 CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA' EXPORTING
object_id = p_form IMPORTING
data_size = g_doc_size
document_format = g_doc_format
document_type = g_doc_type TABLES
data_table = g_doc_table EXCEPTIONS
object_not_found = 1
internal_error = 2 OTHERS = 3. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
IF g_doc_size IS INITIAL. PERFORM error_hdl. ENDIF.
* 파일명 CONCATENATE 'C:\SD\Templete\' text-h01 '_' sy-datum '.XLS' INTO l_file. * 파일 Download CALL FUNCTION 'DOWNLOAD_WEB_OBJECT' EXPORTING key = c_filekey
destination = l_file.
IF g_excel-header = space OR g_excel-handle = -1. CREATE OBJECT g_excel 'Excel.Application'. ENDIF.
* 문서 열기 CALL METHOD OF
g_excel 'Workbooks' = g_mapl. CALL METHOD OF
g_mapl 'OPEN' = g_map EXPORTING
#1 = l_file.
* 문서 미리보기 IF p_task EQ 'DISP'. " 미리보기일 경우 SET PROPERTY OF g_excel 'Visible' = 1. ELSEIF p_task EQ 'EXEC'. SET PROPERTY OF g_excel 'Visible' = 0. ENDIF. GET PROPERTY OF g_excel 'ACTIVESHEET' = g_sheet.
ENDFORM. " OPEN_DOC_XLS
* 방법2. Function 사용법은 ABAP 소스화면서 F1 으로 예제까지 확인가능하여 생략합니다.
ALV 툴바를 이용하여 스프레드시트 또는 로컬 파일을 이용하여 저장하면 no_out 대상은 제외되지만..
아래와 같이 출력기능을 별도로 구현할 경우에는
인터널테이블 정보로 ALV 정보와 별도 출력가능합니다.
방법1. CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA' ("SMW0 : SAP 웹저장소" 활용 시),
방법2. CALL FUNCTION 'GUI_DOWNLOAD'
다른 방법이 있으면 고수님들 답변이 추가로 있을 것 같습니다~ 참고하세요~
* 방법1. Function 관련은 아래 소스 참고하세요.
* Excel 관련 Data
INCLUDE ole2incl.
INCLUDE officeintegrationinclude.
DATA: g_excel TYPE ole2_object, " Excel object
g_mapl TYPE ole2_object, " list of workbooks
g_map TYPE ole2_object, " workbook
g_sheets TYPE ole2_object, " workbook's sheets
g_sheet TYPE ole2_object, " workbook's sheet
gs_columns TYPE ole2_object,
g_cell TYPE ole2_object, " cell
g_font TYPE ole2_object. " font
DATA: g_retcode TYPE t_oi_ret_string.
DATA: g_doc_table LIKE w3mime OCCURS 0.
DATA: g_doc_size TYPE i.
DATA: g_doc_type(80) VALUE soi_doctype_excel_sheet.
DATA: g_doc_format(80) TYPE c.
DATA: g_file LIKE rlgrap-filename,
g_filename(80) TYPE c,
g_file_length(20).
FORM open_doc_xls USING p_form
p_task.
DATA : l_key LIKE wwwdatatab,
l_temp_file LIKE w3file-name,
l_file LIKE rlgrap-filename.
CLEAR: g_doc_size,
g_doc_format,
g_doc_type,
g_doc_table[].
* 문서 가져오기
CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA'
EXPORTING
object_id = p_form
IMPORTING
data_size = g_doc_size
document_format = g_doc_format
document_type = g_doc_type
TABLES
data_table = g_doc_table
EXCEPTIONS
object_not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF g_doc_size IS INITIAL.
PERFORM error_hdl.
ENDIF.
* 파일명
CONCATENATE 'C:\SD\Templete\' text-h01 '_' sy-datum '.XLS' INTO l_file.
* 파일 Download
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = c_filekey
destination = l_file.
IF g_excel-header = space OR g_excel-handle = -1.
CREATE OBJECT g_excel 'Excel.Application'.
ENDIF.
* 문서 열기
CALL METHOD OF
g_excel
'Workbooks' = g_mapl.
CALL METHOD OF
g_mapl
'OPEN' = g_map
EXPORTING
#1 = l_file.
* 문서 미리보기
IF p_task EQ 'DISP'. " 미리보기일 경우
SET PROPERTY OF g_excel 'Visible' = 1.
ELSEIF p_task EQ 'EXEC'.
SET PROPERTY OF g_excel 'Visible' = 0.
ENDIF.
GET PROPERTY OF g_excel 'ACTIVESHEET' = g_sheet.
ENDFORM. " OPEN_DOC_XLS
* 방법2. Function 사용법은 ABAP 소스화면서 F1 으로 예제까지 확인가능하여 생략합니다.