Anuncio

Colapsar
No hay anuncio todavía.

Problema campos ALV OO Ayuda búsqueda!!!

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

  • Problema campos ALV OO Ayuda búsqueda!!!

    Hola a todos compañeros tengo un pequeño problemilla que no entiendo lo que pasa, he creado un ALV OO con dos campos editables que son fechas, bien he puesto que esto campos tengan ayuda para que busquen las fechas, lo he declaro de la siguiente forma en el catálogo:

    Código:
     l_fieldcatalog-fieldname   = 'FECHA_DESDE'.      "Fecha Desde
      l_fieldcatalog-scrtext_l   = 'Fecha Desde'.
      l_fieldcatalog-col_pos     = 3.
      l_fieldcatalog-key         = 'X'.
      l_fieldcatalog-outputlen   = 10.
      l_fieldcatalog-edit        = 'X'.
      l_fieldcatalog-REF_FIELD   = 'BUDAT'.
      l_fieldcatalog-REF_TABLE   = 'BKPF'.
    
      append l_fieldcatalog to g_fieldcatalog2.
      clear: l_fieldcatalog.
    
      l_fieldcatalog-fieldname   = 'FECHA_HASTA'.      "Fecha Hasta
      l_fieldcatalog-scrtext_l   = 'Fecha Hasta'.
      l_fieldcatalog-col_pos     = 4.
      l_fieldcatalog-key         = 'X'.
      l_fieldcatalog-outputlen   = 10.
      l_fieldcatalog-edit        = 'X'.
      l_fieldcatalog-REF_FIELD   = 'BUDAT'.
      l_fieldcatalog-REF_TABLE   = 'BKPF'.
    
    El ALV se genera bien co la ayuda que me da la opción de usar la ayuda para poder modificar los datos, pero al cambiar la fecha no me captura el dato seleccionado "o algo me he dejado", si que si pongo a mano la fecha y cambia la que hay me lo detecta se mete en el metodo handle_data_changed
    y lo guarda, el problema que si lo hago desde la ayuda detecta que ha cambiado pero no detecta que ha habido un cambio.
    
    He registrado estos dos eventos para detectar los cambios:
    
    *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.
    
    
    Y mi método data_changed lo tengo de la siguiente forma:
    
    class lcl_event_receiver2 definition.
    
      public section.
    
        methods:
    
        handle_data_changed for event data_changed of cl_gui_alv_grid
        importing er_data_changed.
    
    endclass.                    "lcl_event_receiver DEFINITION
    
      method handle_data_changed.
    
        data: ls_mod_cells     type lvc_s_modi,
              lf_et_index_rows type lvc_t_row,
              lf_et_row_no     type lvc_t_roid.
    
        clear g_wa_zcpr_cat_lin.
    
        loop at er_data_changed->mt_mod_cells into ls_mod_cells.
    
          read table g_zcpr_cat_lin index ls_mod_cells-row_id
                                          into g_wa_zcpr_cat_lin.
    
          if ls_mod_cells-fieldname eq 'FECHA_DESDE' and sy-subrc eq 0.
             move ls_mod_cells-value to g_wa_zcpr_cat_lin-fecha_desde.
             modify g_zcpr_cat_lin index ls_mod_cells-row_id
                                         from g_wa_zcpr_cat_lin.
          endif.
    
          if ls_mod_cells-fieldname eq 'FECHA_HASTA' and sy-subrc eq 0.
             move ls_mod_cells-value to g_wa_zcpr_cat_lin-fecha_hasta.
             modify g_zcpr_cat_lin index ls_mod_cells-row_id
                                         from g_wa_zcpr_cat_lin.
          endif.
    
        endloop.
    
      endmethod.
    Pero no me funciona con la ayuda, que me falta o que estoy haciendo mal ???? Alguna pista por favor.......... Gracias por leer este mensaje y feliz navidad..........

    Saludos
    Editado por última vez por koken; 22/12/2009, 16:07:06.
Trabajando...
X