Selección de lineas en ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • maskehash
    Junior Member
    • nov
    • 19

    #1

    Selección de lineas en ALV

    Tengo una ALV echa por la clase cl_gui_alv_grid.

    En mi caso lo que cargo las posiciones de varias ordenes de trasnporte. Lo que quiero es que cuando seleccióne una linea, directamente se seleccionen el resto de las lineas a la vez, y al reves, cuando desseleccione una linea, que se deseleccionen la del resto de la orden.


    Haber si alguien me puede ayudar.

    Gracias adelantadas.
  • maskehash
    Junior Member
    • nov
    • 19

    #2
    Hay algún evento para cuando se seleccióna o deselecciona una linea de la ALV?.

    Comentario

    • Jorge L T
      Member
      • jul
      • 58

      #3
      Originalmente publicado por maskehash
      Hay algún evento para cuando se seleccióna o deselecciona una linea de la ALV?.
      Estos son 1 p/ filas y el otro p/ columnas

      CALL METHOD gr_alvgrid->GET_SELECTED_ROWS
      IMPORTING
      et_row_no = gt_row_no .

      CALL METHOD gr_alvgrid->GET_SELECTED_COLUMNS
      IMPORTING
      et_index_columns = gt_index_columns.

      Me parece que en tu caso , cuando se 'dispare' GET_SELECTED_ROWS no debes hacer caso al valor de et_row_no y escribir la lógica para marcar todas las filas del Control.
      Saludos
      J

      Comentario

      • maskehash
        Junior Member
        • nov
        • 19

        #4
        Al final la estoy haciendo por función en vez de por clase, pero creo recordar que el metodo este tedevuelve las lineas seleccionas, entonces cmo tu dices puede jugar con el. Pero no se si cuando cambia la selección de una linea me salta el evento que me permite hacer el chequeo de lo que quiero.

        Estoy probandolo con las funciones, le he puesto el hotspot al campo, pero no me salta sino hace doble-click, o es que estoy haciendo algo mal.

        Seguiré investigando, gracias por tu respuesta.

        Originalmente publicado por Jorge L T
        Estos son 1 p/ filas y el otro p/ columnas

        CALL METHOD gr_alvgrid->GET_SELECTED_ROWS
        IMPORTING
        et_row_no = gt_row_no .

        CALL METHOD gr_alvgrid->GET_SELECTED_COLUMNS
        IMPORTING
        et_index_columns = gt_index_columns.

        Me parece que en tu caso , cuando se 'dispare' GET_SELECTED_ROWS no debes hacer caso al valor de et_row_no y escribir la lógica para marcar todas las filas del Control.
        Saludos
        J

        Comentario

        • Ariel-StaFe
          Senior Member
          • nov
          • 321

          #5
          Alv Con Seleccion Multiple

          Hola. Perdon.
          Necesito saber que filas seleccionó mi usuario en un alv.
          No entiendo donde debo codificar lo del metodo.. o cual sería la funcion ?
          Desde ya muchas gracias.
          Ariel-StaFe
          Analista Programador Abap Senior
          Santa Fe Capital
          Pcia de Santa Fe
          Argentina

          Comentario

          • Astaroth_SA
            Member
            • jul
            • 58

            #6
            En el botón (o evento) donde vayas a ejecutar el código sobre las líneas seleccionadas tienes que usar el método get_selected_rows

            Código:
            DATA: lo_seleccion TYPE REF TO  cl_salv_selections,
                  lt_fila      TYPE  salv_t_row.
            
            CALL METHOD lo_seleccion->get_selected_rows
              RECEIVING
                value = lt_fila. <-- Hay tienes las filas seleccionadas
            Editado por última vez por Astaroth_SA; 26/09/2019, 07:35:30.

            Comentario

            • Ariel-StaFe
              Senior Member
              • nov
              • 321

              #7
              Gracias Genio. Ya pude resolverlo. Saludos.
              Ariel-StaFe
              Analista Programador Abap Senior
              Santa Fe Capital
              Pcia de Santa Fe
              Argentina

              Comentario

              Trabajando...