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 17/03/10, 16:51:30
fenix28 fenix28 is offline
Member
 
Fecha de Ingreso: may 2007
Mensajes: 39
Problema detectar cambio valor ALV OO Celda

Hola a todo el mundo tengo un problemilla, que cuando en un ALV OO me cambian el valor numérico en una celda editable y le dan por ejemplo a botón "GUARDAR" del status de la pantalla el ALV no detecta que se ha modificado el dato y claro no puedo guardar ese valor. Estoy usando lo siguiente para que me lo detecte.

create object obj_contenedor2 "Creating container object
exporting
container_name = i_container2.

create object obj_grid2 "Creating AlV Grid Object
exporting
i_parent = obj_contenedor2.

create object i_event_receiver2. "Creating event receiver object

set handler i_event_receiver2->handle_user_command for obj_grid2.
set handler i_event_receiver2->handle_toolbar for obj_grid2.
set handler i_event_receiver2->handle_double_click for obj_grid2.
set handler i_event_receiver2->handle_hotspot_click for obj_grid2.
set handler i_event_receiver2->handle_data_changed for obj_grid2.

perform exclude_tb_functions changing l_exclude2.

*Registrar Evento Enter para poder activar el evento data_changed.
call method obj_grid2->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.

* Registramos el evento cuando se modificar el dato por si acaso no pulsan el ENTER
call method obj_grid2->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_modified.

* En el catálogo decimos en que orden van a salir los campos.
perform create_field_catalog2. "Field Catalogue creation

* Esto hay que hacerlo para que salga la columna de selección.
i_layout2-sel_mode = 'D'.

call method obj_grid2->set_table_for_first_display
exporting
is_layout = i_layout2
it_toolbar_excluding = l_exclude2
changing
it_outtab = g_t_zinvt_posic[]
it_fieldcatalog = g_fieldcatalog2.

Si bien me detecta cuando cambian de celta o le dan al enter, no hay manera de conseguir que cuando pulsen un icono del status de la pantalla "no del ALV" me detecte el cambio.

Otra pregunta es posible a nivel de ALV OO hacer editable una celde, es decir en una misma columna tener unas celdas editables y otra que no se pueden editar...

Muchas gracias por leer este mensaje y un saludo a todo el mundo.
Responder Con Cita
  #2  
Viejo 17/03/10, 19:21:10
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, eso me paso en una ocasion, de momento lo solucione quitandole el boton de guardar y colocandole dentro de la barra de herramientas del mismo ALV con el evento handle_toolbar, cuando eso pasa y le das en grabar, primero procesara el handle_data_changed, y luego procesara el handle_toolbar reconociendo el ultimo valor que guardaste y grabando todos los datos ,espero te ayude
__________________
David Carballido Córdova
Responder Con Cita
  #3  
Viejo 18/03/10, 07:07:29
fenix28 fenix28 is offline
Member
 
Fecha de Ingreso: may 2007
Mensajes: 39
Muchas gracias compañero, eso era lo que me temía que tendría que poner el icono y todo en un icono del pf-status del ALV.

Saludos..
Responder Con Cita
  #4  
Viejo 03/03/16, 07:35:30
basilon basilon is offline
Member
 
Fecha de Ingreso: dic 2006
Localización: Barcelona - España
Mensajes: 98
Justo antes de grabar para que tome los cambios en el ALV pones esto:

CALL METHOD obj_grid2->check_changed_data.
__________________
Barcelona blanquiazul !
Responder Con Cita
  #5  
Viejo 15/07/16, 18:39:28
ariasnaty ariasnaty is offline
Member
 
Fecha de Ingreso: nov 2006
Localización: Gualeguaychu
Mensajes: 31
Sumar filas de un alv en una columna final como total

Hola!... les consulto:
Existe algún evento en el avl que se active en el momento de modificar la disposición?

Me pasa que tengo varias columnas con importes y al final una que suma por linea como total, pero si eliminan alguna columna, el total es erróneo.
Hay alguna forma de refrescar esa ultima columna?
Algún evento que se active cuando sacan o agregan columnas?
Gracias

Naty
Responder Con Cita
  #6  
Viejo 15/07/16, 19:16:23
Avatar de J e f f
J e f f J e f f is offline
Member
 
Fecha de Ingreso: nov 2007
Localización: Junín, Bs As, Argentina
Mensajes: 91

Lo que se me ocurre, es completar el campo total en la logica del programa, de manera que si eliminan o no las columnas, el valor no cambie. Se entiende? Lo calculas en la logica, y luego en el ALV simplemente lo mostras.

Saludos,
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 22:37:32.


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