Foro de programación ABAP
SAP / ABAP => Programación ABAP => Mensaje iniciado por: spertaculos en 09 de Mayo de 2008, 11:20:55 am
-
Hola ,
tengo una problema con ALV Grid , lo que quiero hacer es seleccionar unos registros en el ALV gracias a un CheckBox y despues hacer un tratamiento cuando pluso el buton pero solamente con los registros seleccionados ,
lo que hecho en el user command es :
CASE u_ucomm.
WHEN 'SAVE'.
LOOP AT i_vbrk WHERE checked EQ 'X'.
Tratamiento......
ENDLOOP.
ENDCASE.
he hecho un break point , el problema es : cuando pluso SAVE el programa no entra al loop nunca , aunque he seleccionado algunos registros antes .
una cosa : tengo que utilisar la funcion REUSE_ALV_GRID_DISPLAY .
Gracias de antemano
-
Una pregunta, el botón que pulsas al grabar es el del estandar o en uno que te has creado tu en el status.
Quizás si es el estandar no pase por tu u_ucomm
Saludos.
-
Lo normal sería crearte un botón en el pf-status que al pulsarlo hagas el tratamiento que quieras.
Y una vez tengas esto, grabar las modificaciones tratadas.
Un saludo.
-
Hola ,
Gracias molaci y carlos por las respuestas .
el botón que pulso al grabar no es el del estandar es uno creado .
he encontrado una solucion , me funciona muy bien . el problema era , no entra en el loop porque no hay registors seleccionado aunque los selecciono , entonces el campo CHECKED de la tabla interna i_vbrk no toma el valor 'X' cuando selecciono un registro.
la solucion es :
CASE u_ucomm.
WHEN 'SAVE'.
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
LOOP AT i_vbrk WHERE checked EQ 'X'.
MOVE i_vbrk TO itab.
APPEND itab.
ENDLOOP.
ENDCASE.
espero que ese codigo va a servir a alguien :)
muchas gracias .