miércoles, 21 de diciembre de 2011

Seleccion de Folder y File


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