#1
|
|||
|
|||
Seleccionar registros en ALV
Buenos días,
Por favor, a ver si alguien me puede echar una mano con esto: He creado un ALV GRID con tres campos editables, y me piden que cuando se modifique alguno de estos campos se marque automáticamente la fila correspondiente (es decir, quede seleccionado el registro para el cual se ha hecho 1 o varias modificaciones en sus campos editables). Muchas gracias de antemano por vuestra ayuda. Elena |
#2
|
||||
|
||||
Hola ... probe un metodo y funciono, intenta esto ...
Ojo que ese codigo va en el PBO, nos cuentas como te fue
__________________
David Carballido Córdova |
#3
|
|||
|
|||
¿Se puede hacer sin metodos?
Muchas gracias David,
el problema es que ya tengo completamente terminado el alv, y querría tener que modificar lo menos posible... Para mostrar el alv utilizo lo siguiente: CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_pf_status_set = 'ALV_STATUS' i_callback_user_command = 'USER_COMMAND' is_layout = sg_layout it_fieldcat = tg_fieldcat[] i_save = c_save i_grid_settings = sg_grid_settings TABLES t_outtab = it_tabla3. Si utilizo un metodo creo que no puedo pasarle el status, el user command, el grid_settings ,... y me hacen falta. Muchas gracias Elena |
#4
|
|||
|
|||
En el catálogo de campos tendrás el campo de selección como un char(1), a este campo prueba, en modo debugging a pasarle un valor ( .... = 'x' ) justo antes de la llamada a la función y ver si en el ALV te marca el registro. Si es así entonces esta 'marca' la tienes que hacer en el perform del user-command, recuerda también que el campo rs_selfield-refresh = 'X' para que te actualice el ALV.
|
#5
|
|||
|
|||
Necesito más ayuda
Gracias francesc,
pero creo que no puede ser nada del catálogo de campos, ya que lo que quiero seleccionar son filas, no columnas, y en el catálogo de campos defino columnas ¿no?. Me estoy volviendo loca con este tema... |
#6
|
|||
|
|||
Si marcas la casilla de selección, te tiene que salir la línea marcada ( lo que antes comentaba que hicieras con un break-point justo antes de la llamada a la función, marcas el campo de selección de un registro cualquiera .... = 'X' y en el ALV te tiene que aparecer el registro marcado )
|
#7
|
|||
|
|||
¿Campo de selección??????
Gracias Francesc,
creo que el problema es precisamente lo que tú me planteas, no sé qué campo toma el valor 'X' cuando se marca una fila. Si alguien me lo puede decir, a lo mejor puedo seguir por ahí. Gracias a todos. |
#8
|
|||
|
|||
Para interactuar con la fila seleccionada en el ALV basado en MF.
1. A tu tabla interna it_tabla3, agregale un campo, este nuevo campo es Caracater de largo 1. 2. A la estructura GS_LAYOUT que estás pasando al MF 'REUSE_ALV_GRID_DISPLAY' agrega lo siguiente gs_layout-box_fieldname = 'FLAG'. Don de FLAG es el nombre del campo que te pedí agregar en el punto 1. Con eso, cuando te marquen una fila del ALV ése campo, en este caso FLAG, quedará con una X indicando que la fila está seleccionada. Espero te ayude, Saludos |
#9
|
|||
|
|||
Graciaaaaaaaaaaaaaaas
Muchisimas gracias,
era eso lo que estaba buscando, ahora sólo me falta que se me marque el flag con X cuando se modifique alguno de los campos editables del ALV (también me valdría cuando dé un enter creo) el problema es que no encuentro el valor adecuado del sy-ucomm donde poner el flag a X. Alguna idea??? Lo dicho muchas gracias, me ha sido muy útil. |
#10
|
|||
|
|||
Ponle un break-point en la rutina del user-command del ALV (la rutina declarada en el i_callback_user_command de la función REUSE.... del ALV ).
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|