Problema con el scroll en un ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • astursap
    Junior Member
    • dic
    • 14

    #1

    Problema con el scroll en un ALV

    Buenas.
    Tengo un report creado, con un ALV, y que tiene varias casillas para que cuando pinche vaya a un pedido o una factura o un IDOC.
    El problema viene cuando vuelvo al ALV tras haber visualizado cualquier documento de los antes mencionados, ya que si hago un scroll con el mouse, me salta un dump que dice... Field symbol has not yet been assigned.
    El error ocurre en los siguientes sitios segun la ST22.

    "GETWA_NOT_ASSIGNED" C
    "SAPLSLVC" or "LSLVCF36"
    "DATA_TABLE_FILL"

    he estado mirando las notes y no encuentro ninguna solucion, y ya no se como arreglarlo. Alguien sabe porque ocurre esto y como solucionarlo?

    gracias y un saludo
  • ballan
    Senior Member
    • oct
    • 671

    #2
    Si has creado el ALV con objetos te puede estar pasando que al hacer doble click e ir a otro sitio luego cuando vuelves el container no esta creado, o el objeto grid o algo de eso

    Comentario

    • nachosds
      Member
      • dic
      • 48

      #3
      ¿Como has hecho la llamada?
      Yo tengo hecho un ALV con la misma funcionalidad que tu pero con distintos campos. Te copio como lo he hecho:

      ---------------------------------
      data: d_ucomm LIKE sy-ucomm,
      d_campo TYPE slis_selfield.

      *Si hemos hecho doble click
      If d_ucomm = '&IC1'.
      read it_alv INDEX d_campo-tabindex. " la tabla que le pasamos al ALV
      SET PARAMETER ID 'campo' FIELD it_alv-campo.
      CALL TRANSACTION 'transaccion' AND SKIP FIRST SCREEN.
      endif.
      ---------------------------------

      Con esto a mi me va bastante bien, y cuando vuelvo al ALV me lo hace correctamente.

      Saludos y espero haberte ayudado!
      http://www.mnsystem.com/

      Comentario

      • astursap
        Junior Member
        • dic
        • 14

        #4
        esta es la funcion que uso para crear el alv:

        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
        i_callback_program = w_repid
        it_fieldcat = t_fieldcat
        is_layout = x_layout
        * it_sort = t_sort
        i_callback_pf_status_set = w_status
        i_callback_user_command = w_comm
        i_save = 'A'
        it_events = t_event
        i_grid_title = w_title
        TABLES
        t_outtab = it_data
        EXCEPTIONS
        program_error = 1
        OTHERS = 2.
        IF sy-subrc <> 0.
        ENDIF.

        Comentario

        • nachosds
          Member
          • dic
          • 48

          #5
          Originalmente publicado por astursap
          esta es la funcion que uso para crear el alv:

          CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
          i_callback_program = w_repid
          it_fieldcat = t_fieldcat
          is_layout = x_layout
          * it_sort = t_sort
          i_callback_pf_status_set = w_status
          i_callback_user_command = w_comm

          i_save = 'A'
          it_events = t_event
          i_grid_title = w_title
          TABLES
          t_outtab = it_data
          EXCEPTIONS
          program_error = 1
          OTHERS = 2.
          IF sy-subrc <> 0.
          ENDIF.
          i_callback_pf_status_set = 'W_STATUS'
          i_callback_user_command = 'W_UCOMM'

          Prueba a ver que tal
          http://www.mnsystem.com/

          Comentario

          • nachosds
            Member
            • dic
            • 48

            #6
            importante!!!
            En mayusculas y entre comillas!!!

            'W_STATUS'
            'W_UCOMM'
            http://www.mnsystem.com/

            Comentario

            • astursap
              Junior Member
              • dic
              • 14

              #7
              Ahora me sale otro dump, diciendo que el perform no existe (por poner 'W_UCOMM'), y no entro ni siquiera en el pedido o factura...

              Error: Call (PERFORM) to a non-existent routine.

              An exception occurred. This exception will be dealt with in more detail
              below. When the system check to see if this exception had been caught at
              runtime, it established that the class to which this exception is
              assigned, 'CX_SY_DYN_CALL_ILLEGAL_FORM', is not available in the database.
              Either the class has been deleted accidentally, or the release of the
              kernel differs from that of the database.
              The reason for this exception is:
              The program "SAPLSLVC_FULLSCREEN" is meant to execute an external PERFORM,
              namely the routine "W_UCOMM " of the program "ZLISTADO_EDI ", but
              this routine does not exist.

              Comentario

              • nachosds
                Member
                • dic
                • 48

                #8
                Claro, porque W_STATUS, y W_UCOMM deben de ser performs en los cuales controles el click y el status.

                Por ejemplo:

                FORM W_STATUS USING rt_extab TYPE slis_t_extab.

                SET PF-STATUS 'tu_status'.

                ENDFORM. " W_STATUS

                FORM W_UCOMM USING d_ucomm LIKE sy-ucomm
                d_campo TYPE slis_selfield.

                Aqui controlariamos el doble clic

                ENDFORM. " W_UCOMM
                http://www.mnsystem.com/

                Comentario

                • astursap
                  Junior Member
                  • dic
                  • 14

                  #9
                  Es verdad, q despiste...

                  bueno, pues corregido el error, sigue saliendome el dump del q hablaba en el primer post.

                  Comentario

                  • astursap
                    Junior Member
                    • dic
                    • 14

                    #10
                    up!.

                    Nadie sabe porque puede ser? no lo entiendo!!!

                    Comentario

                    • Turu
                      Junior Member
                      • mar
                      • 6

                      #11
                      Yo no tengo ni idea, he hecho un call transaction a un alv de prueba q tengo y me muevo sin problemas.

                      Mira en el SDN de SAP, yo he puesto SAPLSLVC y creo que el primer caso coincide bastante con lo que te pasa a ti.

                      Te pongo el enlace.
                      https://www.sdn.sap.com/irj/sdn/adva..._rnd_rankvalue

                      Espero que te sirva de ayuda.
                      Turu

                      Comentario

                      • astursap
                        Junior Member
                        • dic
                        • 14

                        #12
                        muchisimas gracias a todos por vuestra ayuda, al final lo solucioné haciendo el ALV de otra manera.
                        El último link lo tendré en cuenta, gracias!!

                        Comentario

                        • leir1612
                          Junior Member
                          • mar
                          • 16

                          #13
                          alv

                          Tambien lo podes solucionar de esta menera depues de termimar el llamado a otro reporte o comando tenes que refrescar tu alv de esta manera

                          rs_selfield-refresh = 'X'.

                          Comentario

                          Trabajando...