EXCEL_OLE_STANDARD_DAT
FORM frm_batch_output TABLES pt_out STRUCTURE gt_out.
DATA:l_filename TYPE string,
l_path TYPE string,
l_fullpath TYPE string,
l_title TYPE string,
l_x_filename LIKE rlgrap-filename.
DATA: BEGIN OF lt_field OCCURS 0,
fname(40) TYPE c ,
END OF lt_field.
DATA: BEGIN OF lt_tab OCCURS 0,
matnr(18),
maktx(40),
werks(4),
lgort(4),
lgort1(20),
lgort2(20),
END OF lt_tab.
IF pt_out[] IS INITIAL.
MESSAGE s208 WITH '查无需要下载的数据' DISPLAY LIKE 'I'.
RETURN.
ENDIF.
CONCATENATE '补充库位下载_' sy-datum '_' sy-uzeit INTO l_title.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = l_title
* default_extension = 'xlsx'
default_file_name = l_title
file_filter = '(电子表格EXCEL)'
CHANGING
filename = l_filename
path = l_path
fullpath = l_fullpath
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE s398 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
LEAVE SCREEN.
ELSEIF l_fullpath IS INITIAL.
MESSAGE s208 WITH '请选择保存路径' DISPLAY LIKE 'E'.
LEAVE SCREEN.
ENDIF.
lt_field-fname = '物料编号'.
APPEND lt_field.
CLEAR lt_field.
lt_field-fname = '物料描述'.
APPEND lt_field.
CLEAR lt_field.
lt_field-fname = '工厂'.
APPEND lt_field.
CLEAR lt_field.
lt_field-fname = '库位'.
APPEND lt_field.
CLEAR lt_field.
lt_field-fname = '补充库位一'.
APPEND lt_field.
CLEAR lt_field.
lt_field-fname = '补充库位二'.
APPEND lt_field.
CLEAR lt_field.
LOOP AT pt_out.
MOVE-CORRESPONDING pt_out TO lt_tab.
APPEND lt_tab.
CLEAR lt_tab.
ENDLOOP.
l_x_filename = l_fullpath.
CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'
EXPORTING
file_name = l_x_filename
* create_pivot = 0
* DATA_SHEET_NAME = ' '
* PIVOT_SHEET_NAME = ' '
* PASSWORD = ' '
* PASSWORD_OPTION = 0
TABLES
* PIVOT_FIELD_TAB =
data_tab = lt_tab
fieldnames = lt_field
EXCEPTIONS
file_not_exist = 1
filename_expected = 2
communication_error = 3
ole_object_method_error = 4
ole_object_property_error = 5
invalid_pivot_fields = 6
download_problem = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " FRM_BATCH_OUTPUT