En esta ocasión les mostrare la típica selección de una
Carpeta o archivo de su equipo local o carpeta compartida.
Para el caso de una folder ó carpeta se utiliza el método CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE,Que muestra la siguiente ayuda de búsqueda.
y para el caso de un archivo
la función KD_GET_FILENAME_ON_F4, Que muestra la siguiente ayuda de búsqueda.
asi de fácil
acá les dejo el código de ejemplo.
REPORT ztest_folder_file .
*&---------------------------------------------------------------------*
* Dynpro
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK block_01.
PARAMETERS: folder LIKE rlgrap-filename.
PARAMETERS: file LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK block_01.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR folder.
DATA: l_folder TYPE string.
CALL METHOD cl_gui_frontend_services=>directory_browse
EXPORTING
window_title = 'Select Folder'
initial_folder = 'C:\'
CHANGING
selected_folder = l_folder
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF ( sy-subrc EQ 0 ).
folder = l_folder.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR file.
DATA: l_file TYPE rlgrap-filename.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static = 'X'
CHANGING
file_name = l_file.
IF ( sy-subrc EQ 0 ).
file = l_file.
ENDIF.
y como siempre les comento, si hay una forma mas fácil o mejor, me cuentan.
No hay comentarios:
Publicar un comentario