Ayuda SAP

Indices y Id's en ALV grid

saludos comunidad:

de nuevo con una consulta por que tengo rato quebrandome la cabeza y no entiendo bien como proceder con lo siguiente; tengo un alv grid editable y quiero seleccionar varios registros y eliminarlos con un boton dentro de una dynpro, hasta ahi todo bien, el problema es cuando quiero eliminarlos con el loop.

cual es la forma correcta de hacerlo, por que tengo el index del registro del frid, pero como borro el registro que corresponde en la base de datos??

no se si me explique bien, esto es dentro de abap.

saludos y espero sus consejos

Podrías pasar el código que usas así evaluamos el tema?
Cómo quieres eliminar con el loop?

Pasa el código aquí, así lo pasamos al repositorio ABAP

Hola,

Como dice Sidv, deberiamos ver bien el codigo pero sería algo asi:

loop at gt_alv.

delete ztabla WHERE clave1 = gt_alv-campoalv
                AND clave2 = gt_alv-otrocampoalv.

ENDLOOP.

Saludos,
Sebastián

 WHEN 'ELIMINAR'.
        data:
            ls_row      TYPE lvc_s_row,
            lt_rows     type lvc_t_row,
            li_numeros_filas_a  TYPE lvc_t_roid. 
        CALL METHOD VG_DGRID->get_selected_rows
           IMPORTING
             et_index_rows = lt_rows.       
        LOOP AT lt_rows INTO ls_row.
*    ////////// AQUI QUIERO PONER EL DELETE DE LA TABLA POR ID ////////////////
*           if SY-SUBRC EQ 0.
*                MESSAGE 'Registro Eliminado con exito...' TYPE 'I' display like 'E'.
*          else.
*                MESSAGE 'Ha ocurrido un error... revisar ' TYPE 'I' display like 'E'.
*          endif.
        ENDLOOP.

que onda a ver si asi esta bien el codigo

También no sé si sea lo mas óptimo para eliminar los registros

saludos

ya encontre la forma de resolverlo, lo hice de la siguiente forma

CALL METHOD VG_DGRID->get_selected_rows
           IMPORTING
             et_index_rows = lt_row.
        DESCRIBE TABLE lt_row LINES l_lines.
        IF l_lines > 0.
            CLEAR gt_datostabla_selected.
            LOOP AT lt_row INTO ls_row.
                READ TABLE gt_datostabla INTO gs_datostabla_selected
                INDEX ls_row-index.
                delete from YLEGTMPTABLEUSR where id_usr = gs_datostabla_selected-ID_USR.
            ENDLOOP.
        ENDIF.

en realidad es una forma muy sencilla pero andaba muy perdido.

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.