MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 29/12/08, 12:43:33
elena_mr elena_mr is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 17
Unhappy 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
Responder Con Cita
  #2  
Viejo 29/12/08, 19:26:56
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
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
Responder Con Cita
  #3  
Viejo 30/12/08, 08:15:28
elena_mr elena_mr is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 17
¿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
Responder Con Cita
  #4  
Viejo 30/12/08, 09:17:26
francesc francesc is offline
Member
 
Fecha de Ingreso: mar 2006
Localización: Barcelona
Mensajes: 58
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.
Responder Con Cita
  #5  
Viejo 30/12/08, 11:23:37
elena_mr elena_mr is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 17
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...
Responder Con Cita
  #6  
Viejo 30/12/08, 13:07:51
francesc francesc is offline
Member
 
Fecha de Ingreso: mar 2006
Localización: Barcelona
Mensajes: 58
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 )
Responder Con Cita
  #7  
Viejo 07/01/09, 08:37:21
elena_mr elena_mr is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 17
Wink ¿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.
Responder Con Cita
  #8  
Viejo 07/01/09, 11:36:08
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
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
Responder Con Cita
  #9  
Viejo 07/01/09, 12:22:48
elena_mr elena_mr is offline
Junior Member
 
Fecha de Ingreso: dic 2008
Mensajes: 17
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.
Responder Con Cita
  #10  
Viejo 07/01/09, 12:56:15
francesc francesc is offline
Member
 
Fecha de Ingreso: mar 2006
Localización: Barcelona
Mensajes: 58
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 ).
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 18:33:13.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web