REPORT ZTEST_GUI_DOWNLOAD .
DATA:
TD_BKPF TYPE TABLE OF BKPF.
START-OF-SELECTION.
PERFORM FRM_GET_DATA.
PERFORM FRM_DOWNLOAD.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA.
SELECT *
FROM BKPF
INTO TABLE TD_BKPF
WHERE BUKRS = '0001'
AND GJAHR = '2009'.
IF SY-SUBRC <> 0.
LEAVE TO SCREEN 0.
ENDIF.
ENDFORM. " FRM_GET_DATA
*&---------------------------------------------------------------------*
*& Form FRM_DOWNLOAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_DOWNLOAD.
DATA:
LW_WINTITLE TYPE STRING,
LW_FILENAME TYPE STRING,
LW_FILEPATH TYPE STRING,
LW_FULLPATH TYPE STRING.
LW_WINTITLE = 'Downlaod file!'.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = lw_wintitle "对话框的标题
DEFAULT_EXTENSION = 'XLS' "默认的文件后缀名
* DEFAULT_FILE_NAME = "默认文件名
FILE_FILTER = 'XLS' "文件的filter
* INITIAL_DIRECTORY = "初始化的目录
CHANGING
FILENAME = LW_FILENAME "保存的文件名
PATH = LW_FILEPATH "文件路径
FULLPATH = LW_FULLPATH "全文件路径
* USER_ACTION =
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
others = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
* BIN_FILESIZE = "File length for binary files
FILENAME = LW_FILENAME "Name of file
FILETYPE = 'ASC' "File Type (ASC or BIN)
APPEND = SPACE "Writing mode (overwrite, append)
WRITE_FIELD_SEPARATOR = 'X' "Separate Columns by Tabs in Case of ASCII Download
* HEADER = '00' "Byte Chain Written in Binary Mode at the Start of the File
* TRUNC_TRAILING_BLANKS = SPACE "Do not Write Blank at the End of Char Fields
* WRITE_LF = 'X' "Insert CR/LF at End of Line in Case of Char Download
* COL_SELECT = SPACE "Copy Single Columns of the Table Only
* COL_SELECT_MASK = SPACE "Vector Containing an 'X' for the Column To Be Copied
* IMPORTING
* FILELENGTH =
CHANGING
DATA_TAB = TD_BKPF
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
others = 22.
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_DOWNLOAD