Autor Tema: ALV GRID  (Leído 10531 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado spertaculos

  • Novato
  • *
  • Mensajes: 13
    • Ver Perfil
ALV GRID
« 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
Mehdi

Desconectado molaci

  • Usuario Sr.
  • ****
  • Mensajes: 113
    • Ver Perfil
Re: ALV GRID
« Respuesta #1 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.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re: ALV GRID
« Respuesta #2 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.




Desconectado spertaculos

  • Novato
  • *
  • Mensajes: 13
    • Ver Perfil
Re: ALV GRID
« Respuesta #3 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 .
Mehdi