Anuncio

Colapsar
No hay anuncio todavía.

Problema detectar cambio valor ALV OO Celda

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • 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
Trabajando...
X