*数据的定义
DATA: TAB TYPE FILETABLE, "存放文件名的内表
WA TYPE LINE OF FILETABLE, "用来读取文件名的结构
FILE_FILTER TYPE STRING, "file filter
RC TYPE I. "函数返回值
*定义file filter,注意定义的格式,显示的时候最后一个为默认的显示
*与你定义的DEFAULT_EXTENSION无关
FILE_FILTER = 'All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'.
*这就是打开文件的函数,或者说方法也行
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
* 对话框的标题
WINDOW_TITLE = 'WINDOW_TITLE'
* 默认的文件后缀名
DEFAULT_EXTENSION = '*.DOC'
* 默认打开的文件名
DEFAULT_FILENAME = 'C:/TEST'
* 文件打开的filter
FILE_FILTER = FILE_FILTER
* 初始化的目录
INITIAL_DIRECTORY = 'C:/'
* 是否可以同时打开多个文件
MULTISELECTION = 'X'
CHANGING
* 你所打开的文件名字列表
FILE_TABLE = TAB
* 返回值,如果成功打开了,为1
RC = RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
others = 5
.
IF SY-SUBRC = 0 AND RC = 1.
READ TABLE TAB INTO P_FILE.
ENDIF.