Ver Mensaje Individual
  #4  
Viejo 27/06/12, 14:43:13
x27christian27x x27christian27x is offline
Junior Member
 
Fecha de Ingreso: jun 2012
Localización: lima, peru
Mensajes: 12
eliminar alv

claro, te entendi, el detalle es que solo sé capturar el indice de una tabla (dynpro), pero de un alv no se como hacerlo

TABLES: ztab_usu.

TYPES BEGIN OF ty_ztab_usu.
INCLUDE STRUCTURE ztab_usu.
TYPES END OF ty_ztab_usu.

DATA: it_ztab_usu TYPE STANDARD TABLE OF ty_ztab_usu.

FIELD-SYMBOLS: <fs_ztab_usu> LIKE LINE OF it_ztab_usu.

DATA : t_intab1 LIKE TABLE OF ztab_usu WITH HEADER LINE,
t_intab2 LIKE TABLE OF ztab_usu WITH HEADER LINE,
w_intab1 LIKE LINE OF t_intab1.

*DECLARACION DE VARIABLES ALV*
DATA: gs_layout_usu TYPE lvc_s_layo,
gt_fieldcat_usu TYPE lvc_t_fcat,
gs_fieldcat_usu TYPE lvc_s_fcat,
i_index_rows TYPE lvc_t_row,
i_selected_row LIKE lvc_s_row.



FORM eliminar_registro .
DATA : i_lines TYPE i.

CLEAR : t_intab2.
REFRESH : t_intab2.

* Capturar Indice de Fila Marcada
CALL METHOD alv_grid_usu->get_selected_rows
IMPORTING
et_index_rows = i_index_rows.
*
DESCRIBE TABLE i_index_rows LINES i_lines.

* IF i_lines = 0.
** MESSAGE t999 WITH 'Para Eliminar...Debe Marcar un Registro.'.
* EXIT.
* ENDIF.

* Lee Filas Marcacadas en TBI para Borrado
LOOP AT i_index_rows INTO i_selected_row.
READ TABLE t_intab1 INDEX i_selected_row-index INTO w_intab1.
APPEND w_intab1 TO t_intab2.
ENDLOOP.
* Borra Las Filas Marcadas en TBI de Borrado
LOOP AT t_intab2 INTO w_intab1.
DELETE t_intab1 WHERE CODIGO = w_intab1-CODIGO.
* AND mstae = w_intab1-mstae.

DELETE FROM ztab_usu WHERE CODIGO = w_intab1-CODIGO.
* AND mstae = w_intab1-mstae.
ENDLOOP.

COMMIT WORK.
*delete it_ztab_usu where CODIGO = ztab_wa-CODIGO.
*delete from ztab_usu where CODIGO = ztab_wa-CODIGO.
perform refresh_alv.

* IF sy-subrc = 0.
* MESSAGE i000 WITH 'Proceso de Borrado Ok.'.
* ELSE.
* MESSAGE i000 WITH 'Fallo el Proceso de Borrado'.
* ENDIF.
ENDFORM. " eliminar_registro
Responder Con Cita