编写上传和下载程序示例的方法

编写上传和下载程序示例的方法

REPORT Z_HO_TTT .

parameters: pm_cr type TRKORR obligatory.

data: c_file(80), d_file(80).

DATA: C_L TYPE STRING, D_L TYPE STRING.

data: str(12).

str = pm_cr.

*shift str left by 3 places.
*str+7(1) = '.'.
*str+8(3) = pm_cr(3).

concatenate '/usr/sap/trans/cofiles/' pm_cr into c_file.
CONCATENATE 'C:/' pm_cr INTO C_L.
str(1) = 'R'.
concatenate '/usr/sap/trans/data/' pm_cr INTO D_FILE.
CONCATENATE 'C:/' pm_cr INTO D_L.

DATA: BEGIN OF I_LIST OCCURS 0,
STR(500),
END OF I_LIST.

DATA: I TYPE I, J TYPE I.
*文本文件下载
OPEN DATASET C_FILE FOR INPUT IN TEXT MODE.
DO.
READ DATASET C_FILE INTO I_LIST.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
APPEND I_LIST.
ENDDO.
close dataset c_file.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
filename = C_L
* FILETYPE = 'ASC'
tables
data_tab = I_LIST
.

REFRESH I_LIST.
CLEAR: I_LIST.
CLEAR: I.
*二进值文件下载
OPEN DATASET D_FILE FOR INPUT IN BINARY MODE.
DO.
READ DATASET D_FILE INTO I_LIST LENGTH J.
IF SY-SUBRC NE 0 AND J = 0.
EXIT.
ENDIF.
I = I + J.
APPEND I_LIST.
ENDDO.
close dataset D_file.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = I
filename = D_L
FILETYPE = 'BIN'
tables
data_tab = I_LIST.