下载模板文件前获取一下文件的存放位置:
DATA gv_file TYPE rlgrap-filename.
PERFORM get_fullpath CHANGING gv_file.
FORM get_fullpath CHANGING p_file.
CALL FUNCTION 'TMP_GUI_BROWSE_FOR_FOLDER'
EXPORTING
window_title = 'Select Save Path'
initial_folder = ''
IMPORTING
selected_folder = p_file
EXCEPTIONS
cntl_error = 1
OTHERS = 2.
ENDFORM. " GET_FULLPATH
下载模板:
PERFORM download_temp USING 'ZPICKINGLIS'.
FORM download_temp USING value(p_name).
DATA: l_objdata LIKE wwwdatatab,
l_objname TYPE string,
l_rc LIKE sy-subrc,
l_errtxt TYPE string,
l_objid TYPE wwwdatatab-objid.
l_objid = p_name.
CONCATENATE l_objid '.XLSX' INTO l_objname.
CONDENSE l_objname NO-GAPS.
SELECT SINGLE relid objid
INTO CORRESPONDING FIELDS OF l_objdata
FROM wwwdata
WHERE srtf2 = 0
AND relid = 'MI'
AND objid = l_objid.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = l_objdata
destination = gv_file
IMPORTING
rc = l_rc.
IF l_rc <> 0.
CONCATENATE 'Template:' l_objname 'download failed' INTO l_errtxt.
MESSAGE l_errtxt TYPE 'E'.
ENDIF.
ENDFORM. " DOWNLOAD_TEMP
通过OLE方式将内表数据写入到模板文件中:
DATA: gv_application TYPE ole2_object,
gv_sheet TYPE ole2_object,
gv_cell TYPE ole2_object,
gv_workbook TYPE ole2_object,
gv_columns TYPE ole2_object,
gv_rows TYPE ole2_object.
CONCATENATE gv_file '\' 'Picking Pallet List-' sy-datum sy-uzeit '.XLSX' INTO gv_file.
l_visible = 'X'.
CREATE OBJECT gv_application 'Excel.Application'.
PERFORM open_excel_sheet USING l_visible gv_file 'Sheet1'.
PERFORM fill_excel USING gv_application.
PERFORM free_object.
FORM open_excel_sheet USING pv_visible pv_file pv_sheet.
CALL METHOD OF
gv_application
'Workbooks' = gv_workbook.
CALL METHOD OF
gv_workbook
'Open' = gv_workbook
EXPORTING
#1 = pv_file.
CALL METHOD OF
gv_workbook
'Worksheets' = gv_sheet
EXPORTING
#1 = pv_sheet.
CALL METHOD OF gv_sheet 'Activate'.
IF pv_visible = 'X'.
SET PROPERTY OF gv_application 'Visible' = 1.
ENDIF.
ENDFORM.
FORM fill_excel USING xls TYPE ole2_object.
DATA: row TYPE i,
col TYPE i.
row = 2.
LOOP AT gt_out INTO gs_out.
col = 1.
PERFORM fill_cell USING xls row col gs_out-zpltnum.
col = col + 1.
PERFORM fill_cell USING xls row col gs_out-zpltitem.
col = col + 1.
PERFORM fill_cell USING xls row col gs_out-aufnr.
...
col = col + 1.
PERFORM fill_cell USING xls row col gs_out-zmatklp.
col = col + 1.
PERFORM fill_cell USING xls row col gs_out-matnr.
ENDLOOP.
ENDFORM.
FORM free_object .
CALL METHOD OF
gv_workbook
'Save'.
CALL METHOD OF
gv_workbook
'Close'
EXPORTING
#1 = 0.
CALL METHOD OF
gv_application
'Quit'.
FREE OBJECT gv_sheet.
FREE OBJECT gv_workbook.
FREE OBJECT gv_application.
ENDFORM. " FREE_OBJECT
网友评论