duda 'REUSE_ALV_GRID_DISPLAY'

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • marialeqd
    Senior Member
    • jun
    • 188

    #1

    duda 'REUSE_ALV_GRID_DISPLAY'

    Hola chicos tengo la siguiente situacion,
    estoy usando es ta funcion 'REUSE_ALV_GRID_DISPLAY' para generar un reporte pero un de los camos es editable y necesito usarlo coa guardar una modificacion que debo hacer registro a registro en la tabla interna, decir lo necesito usar como un table control. pero cuando llego al perform de lo s eventos la tabla intena no posee el valor que coloque desde el grid...
    sera que falta algun paso.? me falta alguna llamada a una funcion para obtener las modificaciones hechas?
    si aguien me puede ayudar se lo agradeceria.
    Mariale
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola Mariale ... aver nunca he intentado hacer un ALV editable con funciones pero si me funciono .... le coloque el refresh = 'X', te dejo el codigo que hice ... le colocas un break-point justo en el USER-COMMAND para que veas como cambia la tabla interna, dentro de PF-STATUS que he creado solo he agregado un boton con el codigo de funcion 'DALE'

    Código:
    REPORT ZPRUEBA_1.
    
    TYPE-POOLS: slis.
    
    DATA: gt_fieldcat   TYPE slis_t_fieldcat_alv,
          gs_fieldcat LIKE LINE OF gt_fieldcat,
          gs_layout     TYPE slis_layout_alv,
          gt_listheader TYPE slis_t_listheader.
    
    DATA: BEGIN OF itab OCCURS 0,
            c1 TYPE i,
            c2 TYPE i,
          END OF itab.
    
    START-OF-SELECTION.
    
      DO 10 TIMES.
        itab-c1 = sy-index.
        itab-c2 = sy-index * 2.
        APPEND itab.
      ENDDO.
    
      CLEAR gs_fieldcat. 
      gs_fieldcat-fieldname   = 'C1'.
      gs_fieldcat-tabname     = 'ITAB'.
      gs_fieldcat-seltext_l   = 'Primer Numero'.
      gs_fieldcat-outputlen   = 10. 
      APPEND gs_fieldcat TO gt_fieldcat.
    
      CLEAR gs_fieldcat.
      gs_fieldcat-fieldname   = 'C2'.
      gs_fieldcat-tabname     = 'ITAB'. 
      gs_fieldcat-seltext_l   = 'Segundo Numero'.
      gs_fieldcat-outputlen   = 10.
      gs_fieldcat-edit        = 'X'.
      APPEND gs_fieldcat TO gt_fieldcat.
    
      gs_layout-zebra = 'X'.
    
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM                = 'ZPRUEBA_1'
            I_CALLBACK_PF_STATUS_SET          = 'SET_STATUS'
            I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
          TABLES
            T_OUTTAB                          = itab
          EXCEPTIONS
            PROGRAM_ERROR                     = 1
            OTHERS                            = 2.
    
    FORM set_status USING rt_extab TYPE slis_t_extab.
    
      SET PF-STATUS 'STATUS_REUSE' EXCLUDING rt_extab.
    
    ENDFORM.
    
    FORM user_command USING p_opc
                            p_tab TYPE slis_selfield.
    
      CASE p_opc.
        WHEN 'DALE'.
          p_tab-refresh = 'X'.
          LOOP AT itab.
            WRITE: / itab-c1, itab-c2.
          ENDLOOP.
        WHEN 'OTHERS'.
          MESSAGE I000(ZFI) WITH 'Presiona otro boton'.
      ENDCASE.
    
    ENDFORM.
    David Carballido Córdova

    Comentario

    • DavidXD_XD
      Moderator
      • ago
      • 1255

      #3
      Hola otra vez ... probe quitandole el refresh y me actualiza normal la tabla interna , pero algo mas .. me actualiza la tabla dando doble click sobre cualquier celda
      David Carballido Córdova

      Comentario

      • evasquez
        Junior Member
        • feb
        • 11

        #4
        Buenos días, estoy tratando de grabar las modificaciones en el alv grid editable, lo graba pero cuando salgo e ingreso al programa de nuevo no a grabado nada, muestra el dato original, como puedo hacer para que se refleje lo grabado despues de ingresar nuevamente al programa, muchas gracias de antemano por la ayuda.

        Comentario

        • kibo
          Senior Member
          • may
          • 177

          #5
          Deberias de modificar la tabla de donde vas a buscar los datos.

          Es decir, para mostrar el ALV primero haces unos select y despues los muestras.
          Si queres modificar los datos, tenes que hacer un Update en esas tablas una vez que se haya editado el alv.
          http://diariotitular.com/contacto/

          Comentario

          • evasquez
            Junior Member
            • feb
            • 11

            #6
            Muy agradecido, estoy viendo lo de los Select.

            Comentario

            • Yoba21x37
              Junior Member
              • mar
              • 7

              #7
              ¡BUENAS!! Tengo este problema: Mi programa muestra un grid editable de alv; hemos creado un botón adicional para "Bajar archivo" a la PC, pero al hacer clic en el botón, me está dando el error: YV01:000 OLE objet method error.

              ¿Alguna idea de lo que pueda ser que me esté haciendo falta?

              Comentario

              Trabajando...