쉽게 사용하던 것으로 파일 명까지 물어보았으나,
단순히 File 의 Path 만을 요청할 때 사용하면 유용한 Method
역시나 계속해서 잊어버리므로 메모;;;
*-- TOP 선언부
*-- For Select Folder
DATA: OBJFILE TYPE REF TO CL_GUI_FRONTEND_SERVICES.
DATA: PICKEDFOLDER TYPE STRING.
DATA: INITIALFOLDER TYPE STRING.
*&---------------------------------------------------------------------*
*& Form GET_FILE_PATH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_FILE_PATH USING P_FILE.
*-- 1. ONLY USE FILE PATH
CREATE OBJECT OBJFILE.
REFRESH IT_PATH.
CLEAR : OK_PATH.
DATA : L_INT TYPE I.
DATA : PFOLDER LIKE RLGRAP-FILENAME.
OBJFILE->GET_TEMP_DIRECTORY( CHANGING TEMP_DIR = INITIALFOLDER
EXCEPTIONS CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3 ).
OBJFILE->DIRECTORY_BROWSE( EXPORTING INITIAL_FOLDER = INITIALFOLDER
CHANGING SELECTED_FOLDER = PICKEDFOLDER
EXCEPTIONS CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3 ).
IF SY-SUBRC = 0.
PFOLDER = PICKEDFOLDER.
L_INT = STRLEN( PFOLDER ).
"국가별로 다르나 Length 제한
IF L_INT > 40.
MESSAGE E001 WITH 'The file path is too long! Select simple path!'.
OK_PATH = 'X'.
CLEAR : OK_CODE, SAVE_CODE.
EXIT.
ELSEIF L_INT = 0.
MESSAGE E001 WITH 'You have to select folder.'.
OK_PATH = 'X'.
CLEAR : OK_CODE, SAVE_CODE.
EXIT.
ENDIF.
MOVE : PFOLDER TO IT_PATH-PATH.
APPEND IT_PATH.
ELSE.
MESSAGE S001 WITH 'An error has occured picking a folder' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. " GET_FILE_PATH
이 경우는 버튼에 이벤트를 걸어둔 것.
단순히 File 의 Path 만을 요청할 때 사용하면 유용한 Method
역시나 계속해서 잊어버리므로 메모;;;
*-- TOP 선언부
*-- For Select Folder
DATA: OBJFILE TYPE REF TO CL_GUI_FRONTEND_SERVICES.
DATA: PICKEDFOLDER TYPE STRING.
DATA: INITIALFOLDER TYPE STRING.
*&---------------------------------------------------------------------*
*& Form GET_FILE_PATH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_FILE_PATH USING P_FILE.
*-- 1. ONLY USE FILE PATH
CREATE OBJECT OBJFILE.
REFRESH IT_PATH.
CLEAR : OK_PATH.
DATA : L_INT TYPE I.
DATA : PFOLDER LIKE RLGRAP-FILENAME.
OBJFILE->GET_TEMP_DIRECTORY( CHANGING TEMP_DIR = INITIALFOLDER
EXCEPTIONS CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3 ).
OBJFILE->DIRECTORY_BROWSE( EXPORTING INITIAL_FOLDER = INITIALFOLDER
CHANGING SELECTED_FOLDER = PICKEDFOLDER
EXCEPTIONS CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3 ).
IF SY-SUBRC = 0.
PFOLDER = PICKEDFOLDER.
L_INT = STRLEN( PFOLDER ).
"국가별로 다르나 Length 제한
IF L_INT > 40.
MESSAGE E001 WITH 'The file path is too long! Select simple path!'.
OK_PATH = 'X'.
CLEAR : OK_CODE, SAVE_CODE.
EXIT.
ELSEIF L_INT = 0.
MESSAGE E001 WITH 'You have to select folder.'.
OK_PATH = 'X'.
CLEAR : OK_CODE, SAVE_CODE.
EXIT.
ENDIF.
MOVE : PFOLDER TO IT_PATH-PATH.
APPEND IT_PATH.
ELSE.
MESSAGE S001 WITH 'An error has occured picking a folder' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM. " GET_FILE_PATH
이 경우는 버튼에 이벤트를 걸어둔 것.
'개발자愛 > SAP' 카테고리의 다른 글
ABAP -> 엑셀매크로(VBA) 로 데이터를 넘길때 주의점 하나 (0) | 2009.12.24 |
---|---|
Excel Macro(VBA) 사용시 2003과 2007버전의 차이점 한가지^^ (0) | 2009.12.16 |
[ABAP-FI] 기초금액 가져오는 펑션 (0) | 2009.12.08 |
[ABAP] Error Message 뿌릴때 E 타입으로 보여주기 (0) | 2009.12.08 |
[SAP/ABAP] CL_GUI_ALV_GRID 클래스를 이용, ALV 에서 TOP_OF_PAGE 사용하기 (2) | 2009.09.22 |