Codes
*&---------------------------------------------------------------------*
*& Form FRM_PC_FILENAME_GET
*&---------------------------------------------------------------------*
* 擖椡僼傽僀儖偺専嶕僿儖僾
*&---------------------------------------------------------------------*
* -->UP_MODE 儌乕僪慖戰:
* 奐偔偺応崌偼乭O乭
* 曐懚偺応崌偼乭S乭
* <--CP_FILENAME 僼傽僀儖柤徧
*----------------------------------------------------------------------*
FORM FRM_PC_FILENAME_GET USING VALUE(UP_MODE) TYPE C
CHANGING VALUE(CP_FILENAME) TYPE RLGRAP-FILENAME.
*亂儘乕僇儖僨乕僞愰尵亃
DATA:
LC_FILE TYPE STRING, "僼傽僀儖柤徧
LC_PATH TYPE STRING, "僼傽僀儖宱楬
LC_FULLPATH TYPE STRING, "弌椡僼傽僀儖柤徧
L_TAB_FILE TYPE FILETABLE, "僼傽僀儖傪堐帩偡傞僥乕僽儖
LSTR_FILE TYPE FILE_TABLE, "僼傽僀儖柤徧傪奿擺偡傞儗僐乕僪
LC_AMOUNT TYPE I. "僼傽僀儖柤徧偺屄悢
IF UP_MODE = CNS_MODE_SAVE.
* 儌乕僪慖戰偼曐懚偺応崌丄僼傽僀儖偺専嶕僿儖僾傪億僢僾傾僢僾
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
CHANGING
FILENAME = LC_FILE "僼傽僀儖柤徧
PATH = LC_PATH "僼傽僀儖宱楬
FULLPATH = LC_FULLPATH "慡僼傽僀儖柤徧
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4.
IF SY-SUBRC = 0.
CP_FILENAME = LC_FULLPATH.
ENDIF.
ELSE.
* 儌乕僪慖戰偼奐偔偺応崌丄僼傽僀儖偺専嶕僿儖僾傪億僢僾傾僢僾
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
CHANGING
FILE_TABLE = L_TAB_FILE "僼傽僀儖僥乕僽儖
RC = LC_AMOUNT "僼傽僀儖柤徧偺屄悢
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5.
IF SY-SUBRC = 0.
READ TABLE L_TAB_FILE INTO LSTR_FILE INDEX 1.
CP_FILENAME = LSTR_FILE.
ENDIF.
ENDIF.
ENDFORM. " FRM_PC_FILENAME_GET
