Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: spertaculos en 09 de Mayo de 2008, 11:20:55 am

Título: ALV GRID
Publicado 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
Título: Re: ALV GRID
Publicado por: molaci en 09 de Mayo de 2008, 12:38:09 pm
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.
Título: Re: ALV GRID
Publicado por: Carlos en 09 de Mayo de 2008, 12:43:04 pm
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.



Título: Re: ALV GRID
Publicado por: spertaculos en 09 de Mayo de 2008, 02:37:57 pm
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 .