función " examinar"

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • oieraz
    Member
    • nov
    • 54

    #1

    función " examinar"

    Hola estoy buscando una función que me permita al ejecutar la opción del menu botón EXCEL, visualizar un desplegable en el que pueda seleccionar la carpeta lugar de windows donde quiero exportar mi formulario de sap.

    Gracias por vuestra colaboración
  • ic_man_777
    Member
    • oct
    • 97

    #2
    cl_gui_frontend_services=>directory_browse

    Yo he usado esta:


    Código:
    CALL METHOD cl_gui_frontend_services=>directory_browse
         EXPORTING
          window_title = 'Seleccionar carpeta para log de errores'
          initial_folder = 'C:\Documents and Settings\All Users\Escritorio'
         CHANGING:  selected_folder = v_directorio
         EXCEPTIONS:
          cntl_error = 1
          error_no_gui    = 2
          not_supported_by_gui = 3.

    ... espero te sea útil.

    Salu2.

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      Hola ... te paso la aplicacion que realize para lo que exactamente quieres ...

      1. Cree una screen en modo dialogo para que sea llamado cuando pulse un boton de descargar.

      Código:
      PROCESS BEFORE OUTPUT.
        MODULE STATUS.
      
      PROCESS AFTER INPUT.
        MODULE EXIT_COMMAND AT EXIT-COMMAND.
        MODULE USER_COMMAND.
      
      PROCESS ON VALUE-REQUEST.
        FIELD G_DIRECTORY MODULE GET_DIRECTORY.
      Aqui esta en detalle cada evento MODULE

      Código:
      [COLOR="Blue"]*&---------------------------------------------------------------------*
      *&      Module  STATUS  OUTPUT
      *&---------------------------------------------------------------------*[/COLOR]
      MODULE STATUS OUTPUT.
      
        CASE sy-dynnr.
          WHEN 100.
            SET PF-STATUS 'ST_100'.
          WHEN 200.
            SET PF-STATUS 'ST_200'.
            SET TITLEBAR 'TIT_200'.
            PERFORM status_200.
          WHEN 300.
            CLEAR g_directory.
            SET PF-STATUS 'ST_300'.
            SET TITLEBAR 'TIT_300'.
          WHEN 400.
            SET PF-STATUS 'ST_400'.
            SET TITLEBAR 'TIT_400'.
            PERFORM status_400.
          WHEN 500.
            SET PF-STATUS 'ST_500'.
            SET TITLEBAR 'TIT_500'.
            PERFORM status_500.
          WHEN 600.
            SET PF-STATUS 'ST_600'.
            SET TITLEBAR 'TIT_600'.
            PERFORM status_600.
        ENDCASE.
      
      ENDMODULE.                 " STATUS  OUTPUT
      Código:
      [COLOR="blue"]*&---------------------------------------------------------------------*
      *&      Module  USER_COMMAND  INPUT
      *&---------------------------------------------------------------------*[/COLOR]
      MODULE USER_COMMAND INPUT.
      
        CLEAR fcode.
        fcode = ok_code.
        CLEAR ok_code.
        CASE sy-dynnr.
          WHEN 100.
             ... (demas dynpros)
          WHEN 300.
            CASE fcode.
              WHEN 'TRANSFER'.
                PERFORM user_command_300.
                MESSAGE S000 WITH text-t04.
                LEAVE TO SCREEN 0.
              WHEN 'CANCEL'.
                LEAVE TO SCREEN 0.
            ENDCASE.
          WHEN 400.
            ...
        ENDCASE.
      
      ENDMODULE.                 " USER_COMMAND  INPUT
      
      [COLOR="blue"]*&---------------------------------------------------------------------*
      *&      Module  GET_DIRECTORY  INPUT
      *&---------------------------------------------------------------------*
      *       text
      *----------------------------------------------------------------------*[/COLOR]
      MODULE GET_DIRECTORY INPUT.
      
        g_title = text-t03.                  "Titulo para la ventana de directorio
      
        CALL METHOD cl_gui_frontend_services=>directory_browse
          EXPORTING
            window_title            = g_title
            initial_folder          = 'C:\'
          CHANGING
            selected_folder         = g_ruta
          EXCEPTIONS
            cntl_error              = 1
            error_no_gui            = 2.
      
         CALL METHOD cl_gui_cfw=>flush.
      
         g_directory = g_ruta.
      
      ENDMODULE.                 " GET_DIRECTORY  INPUT
      Ahora explicare ... dentro del dynpro 300 he creado 2 botones:
      1. COn el codigo de funcion TRANSFER: me permite descargar el contenido
      2. CANCEL: Cancela la descarga del conntenido

      Para ese dynpro he creado un campo en el cual insertare la ruta del directorio porque el nombre del archivo es generado automaticamente por el programa, para eso solo necesitare la ruta hacia donde ira el archivo, para eso llamo al metodo directory_browse de la clase cl_gui_frontend_services y nada mas, con eso me abre una ventana tipo WINDOWS para seleccionar el directorio, coloco abajo como he declarado las variables ...

      Código:
      DATA: g_path      TYPE string,
            g_title     TYPE string,
            g_ind       TYPE c,
            g_paval     TYPE t001z-paval,
            g_ext       TYPE char3,
            g_act_alv   TYPE c,
            g_ruta      TYPE string,
            g_directory TYPE rlgrap-filename.
      El nombre del campo en el dynpro es g_directory ... espero que t pueda servir la info ... nos cuentas como te fue
      David Carballido Córdova

      Comentario

      Trabajando...