REPORT ZTEST_GUI_UPLOAD .
DATA:
TD_BKPF TYPE TABLE OF BKPF,
TH_BKPF TYPE BKPF.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FRM_UPLOAD_DATA.
PERFORM FRM_WRITE_MSG.
*&---------------------------------------------------------------------*
*& Form FRM_UPLOAD_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_UPLOAD_DATA.
DATA:
LTD_FILETABLE TYPE FILETABLE,
LTH_FILETABLE LIKE LINE OF LTD_FILETABLE,
LW_RC TYPE I,
LW_FILENAME TYPE STRING.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'Select upload file!'
DEFAULT_EXTENSION = 'XLS'
* DEFAULT_FILENAME =
FILE_FILTER = 'XLS'
* INITIAL_DIRECTORY =
* MULTISELECTION = "是否可以同时打开多个文件
CHANGING
FILE_TABLE = LTD_FILETABLE "你所打开的文件名字列表
RC = LW_RC "返回值,如果成功打开了,为1
* USER_ACTION =
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
others = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE LTD_FILETABLE INTO LTH_FILETABLE INDEX 1.
LW_FILENAME = LTH_FILETABLE-FILENAME.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = LW_FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* IMPORTING
* FILELENGTH =
* HEADER =
CHANGING
DATA_TAB = TD_BKPF
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
others = 17.
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_UPLOAD_DATA
*&---------------------------------------------------------------------*
*& Form FRM_WRITE_MSG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_WRITE_MSG.
DATA:
LW_LINES TYPE I.
DESCRIBE TABLE TD_BKPF LINES LW_LINES.
WRITE: 'Upload records:' , LW_LINES.
ENDFORM. " FRM_WRITE_MSG