Selección de lineas alv

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Beita25
    Junior Member
    • ago
    • 7

    #1

    Selección de lineas alv

    Hola, buenas a todos,
    Tengo un problema, tengo un listado de materiales en un alv, pero no consigo dar como hacer para seleccionar varias lineas de dicho listado, ya que tengo que crear un boton para borrar las lineas seleccionadas (q puede ser ninguna, una o varias) pero no consigo que el alv me permita hacer eso, ¿como podria hacerlo?

    Muchas gracias por adelantado
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, creo q estas viendo un ALV List, ahi solo se puede asignar una linea a menos que se imite el diseño de la SE16 con un checkbox al costado de cada registro, en el ALV Grid puedes escoger varias lineas, y sap te da botones standares para que no haya la necesidad de programarlas, espero te sirva
    David Carballido Córdova

    Comentario

    • vickxo
      Senior Member
      • nov
      • 118

      #3
      Prueba esto...igual y te ayuda es con ALV...

      REPORT zvdll_pruebas.
      *---------------------------------------------------------------------*
      * Example with FM REUSE_ALV_POPUP_TO_SELECT *
      *---------------------------------------------------------------------*
      * Author : Michel PIOUD *
      * Email : mpioud@yahoo.fr HomePage : http://www.geocities.com/mpioud *
      *---------------------------------------------------------------------*
      SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
      PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
      SELECTION-SCREEN END OF LINE.
      *---------------------------------------------------------------------*
      TYPES:
      BEGIN OF ty_user_addr,
      bname TYPE user_addr-bname, " User name
      name_first TYPE user_addr-name_first, " First name
      name_last TYPE user_addr-name_last, " Last name
      checkbox,
      END OF ty_user_addr.
      *---------------------------------------------------------------------*
      DATA:
      * Data displayed
      gt_user TYPE TABLE OF ty_user_addr.
      *---------------------------------------------------------------------*
      INITIALIZATION.

      v_1 = 'Maximum of records to read'.

      *---------------------------------------------------------------------*
      START-OF-SELECTION.

      PERFORM f_read_data.

      PERFORM f_display_data.

      *---------------------------------------------------------------------*
      * Form f_read_data
      *---------------------------------------------------------------------*
      FORM f_read_data.

      * Read Users address data
      SELECT bname name_first name_last
      UP TO p_max ROWS
      INTO CORRESPONDING FIELDS OF TABLE gt_user
      FROM user_addr.

      ENDFORM. " F_READ_DATA
      *---------------------------------------------------------------------*
      * Form f_display_data
      *---------------------------------------------------------------------*
      FORM f_display_data.

      * Macro definition
      DEFINE m_fieldcat.
      add 1 to ls_fieldcat-col_pos.
      ls_fieldcat-fieldname = &1.
      ls_fieldcat-ref_tabname = &2.
      append ls_fieldcat to lt_fieldcat.
      END-OF-DEFINITION.

      TYPE-POOLS: slis. " ALV Global types

      DATA:
      l_exit,
      ls_private TYPE slis_data_caller_exit,
      ls_user TYPE ty_user_addr,
      ls_fieldcat TYPE slis_fieldcat_alv,
      lt_fieldcat TYPE slis_t_fieldcat_alv.

      * Build the field catalog
      m_fieldcat 'BNAME' 'USER_ADDR'.
      m_fieldcat 'NAME_FIRST' 'USER_ADDR'.
      m_fieldcat 'NAME_LAST' 'USER_ADDR'.

      * Optimize column width
      ls_private-columnopt = 'X'.

      * Display data in a POPUP
      CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
      EXPORTING
      i_selection = 'X'
      i_zebra = 'X'
      it_fieldcat = lt_fieldcat
      i_tabname = 'GT_USER'
      i_checkbox_fieldname = 'CHECKBOX'
      is_private = ls_private
      IMPORTING
      e_exit = l_exit
      TABLES
      t_outtab = gt_user.

      CHECK l_exit = space.

      * What has been selected ?
      LOOP AT gt_user INTO ls_user WHERE checkbox = 'X'.
      MESSAGE i368(00) WITH ls_user-bname 'selected'.
      ENDLOOP.

      ENDFORM. " F_DISPLAY_DATA
      *********** END OF PROGRAM Z_REUSE_ALV_POPUP_TO_SELECT ****************

      Saludos ...
      el tema esta en hacer la pregunta correcta...

      Comentario

      Trabajando...