Monday, November 15, 2010

Ventana de diálogo para abrir un archivo

FORM obtener_filepath  CHANGING p_ls_path TYPE string.
  DATA: li_subrc       LIKE sy-subrc,
         ltd_filetable TYPE filetable,
         lwa_filetable TYPE file_table,
         ls_path       TYPE string,
         user_action   TYPE i.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = 'Seleccionar archivo de texto'
      default_filename        = '*.txt'
      multiselection          = ' '
    CHANGING
      file_table              = ltd_filetable
      rc                      = li_subrc
      user_action             = user_action
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      OTHERS                  = 5.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSE.
    CASE user_action.
      WHEN 0.
        READ TABLE ltd_filetable INTO lwa_filetable INDEX 1.
        p_ls_path = lwa_filetable-filename.
      WHEN OTHERS.
        MESSAGE i398 WITH 'No se selecciono un archivo'.
    ENDCASE.
  ENDIF.
ENDFORM.

No comments:

Post a Comment