|
|
程序:导EXCEL: 我现在改为导TXT看一下。
REPORT z_testdownserverfile
NO STANDARD PAGE HEADING
MESSAGE-ID zxx001.
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME.
* server's File Path
PARAMETERS: PA_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
* local's path
PARAMETERS PA_LNAME TYPE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BL1.
DATA: BEGIN OF REC_DATA,
LINE(250) TYPE C, "RECEIVE DATA
END OF REC_DATA.
DATA: TBL_DATA LIKE TABLE OF REC_DATA. "Table of TBL_DATA
DATA:
FLG_ERROR TYPE C.
DATA: WK_STOP TYPE C, "STOP FLAG
WK_UCOMM LIKE SY-UCOMM, "User command
WK_FNAME TYPE STRING,
WK_PATH TYPE STRING,
WK_FPATH TYPE STRING,
WK_NAME1 LIKE RLGRAP-FILENAME, "File Name
WK_NAME2 LIKE RLGRAP-FILENAME, "File Directory
WK_RETURN TYPE C. "Result of the query
*----- Constants ----------------------------------------------------*
CONSTANTS:
CST_X TYPE C VALUE 'X',
CST_MODULE01 TYPE MSGV1 VALUE 'WS_UPLOAD',
CST_DAT LIKE RLGRAP-FILETYPE VALUE 'DAT',
"DAT
CST_SPACE TYPE C VALUE ' ', "Blank
CST_BIAS TYPE C VALUE '\', "Bias
CST_F8(4) TYPE C VALUE 'ONLI', "F8
CST_FE(2) TYPE C VALUE 'FE', "FE
CST_DE(2) TYPE C VALUE 'DE', "'DE'
CST_TXT(5) TYPE C VALUE '*.XLS', "*.TXT XLS
CST_TXTFL(16) TYPE C VALUE 'TEXT FILE|*.XLS|',
CST_FILETYPE TYPE RLGRAP-FILETYPE VALUE 'ASC'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_LNAME.
* Get file name
PERFORM HELP_DIS.
**&---------------------------------------------------------------------
**
**& AT SELECTION-SCREEN
**&---------------------------------------------------------------------
**
*AT SELECTION-SCREEN.
* PERFORM CHECK_FILE.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM DOWNLOAD_DATA.
FORM DOWNLOAD_DATA.
DATA: LO_FILENAMEO TYPE STRING,
LO_NUM TYPE I.
CHECK FLG_ERROR = SPACE.
LO_FILENAMEO = PA_LNAME.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
FILENAME = LO_FILENAMEO "File path
WRITE_FIELD_SEPARATOR = CST_X
CHANGING
DATA_TAB = TBL_DATA
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.
*Cannot overwrite!
MESSAGE S320.
ELSE.
* The numbers of the records.
DESCRIBE TABLE TBL_DATA LINES LO_NUM.
* &1 records successfully download to file &2
MESSAGE S307 WITH LO_NUM PA_LNAME.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* GET DATA
*----------------------------------------------------------------------*
FORM GET_DATA.
OPEN DATASET PA_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.
* OPEN DATASET PA_FNAME FOR INPUT IN TEXT MODE. "TEXT MODE encoding
IF SY-SUBRC <> 0.
* Failed to open file (file name : &1)
MESSAGE S042 WITH PA_FNAME.
FLG_ERROR = CST_X.
ENDIF.
CHECK FLG_ERROR = SPACE.
DO.
READ DATASET PA_FNAME INTO REC_DATA.
IF SY-SUBRC <> 0 AND
SY-SUBRC <> 4.
* Failed to read file (file name : &1)
MESSAGE S297 WITH PA_FNAME.
CLOSE DATASET PA_FNAME.
FLG_ERROR = CST_X.
EXIT.
ENDIF.
CHECK FLG_ERROR = SPACE.
IF SY-SUBRC = 4.
EXIT.
ENDIF.
APPEND REC_DATA TO TBL_DATA.
ENDDO.
CHECK FLG_ERROR = SPACE.
CLOSE DATASET PA_FNAME.
IF SY-SUBRC <> 0.
* Failed to close file (file name : &1)
MESSAGE S044 WITH PA_FNAME.
FLG_ERROR = CST_X.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form HELP_DIS
*&---------------------------------------------------------------------*
* Get file name
*----------------------------------------------------------------------*
FORM HELP_DIS.
DATA: LO_LNAME TYPE STRING,
LO_TXT TYPE STRING,
LO_TXTFL TYPE STRING.
LO_LNAME = TEXT-040. "Local File Name
LO_TXT = CST_TXT. "*.TXT
LO_TXTFL = CST_TXTFL. "TEXT FILE|*.TXT|
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = LO_LNAME "Local File Name
DEFAULT_EXTENSION = LO_TXT "*.TXT
FILE_FILTER = LO_TXTFL "TEXT FILE|*.TXT|
CHANGING
FILENAME = WK_FNAME "File name
PATH = WK_PATH "File path
FULLPATH = WK_FPATH "Full path
EXCEPTIONS
others = 1
.
PA_LNAME = WK_FPATH.
ENDFORM. " HELP_DIS |
|