PARAMETERS: p_file LIKE rlgrap-filename
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM frm_get_file_name USING p_file.
FORM frm_get_file_name USING p_file.
方法一:
DATA: li_tab TYPE filetable,
l_subrc TYPE sy-subrc.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = '选择文件'
default_filename = '*.*'
multiselection = ' '
CHANGING
file_table = li_tab
rc = l_subrc.
IF l_subrc <> -1.
READ TABLE li_tab INDEX 1 INTO p_file.
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
方法二:
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
* DEF_FILENAME = ''
* DEF_PATH = ' '
mask =
' Excel(*.xls;*.xlsx)|*.xls;*.xlsx|All File(*.*)|*.*||'
* MODE = ' '
title = '选择文件'
IMPORTING
filename = p_file
* RC =
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0 AND sy-subrc <> 3.
MESSAGE '文件选择出错!' TYPE 'S'.
STOP.
ENDIF.
ENDFORM.