Anuncio

Colapsar
No hay anuncio todavía.

Problema creación ayuda campo ALV OO !!!!

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

  • Problema creación ayuda campo ALV OO !!!!

    Hola a todo el mundo, aquí ando pegándome con un ALV OO.

    Me he creado un ALV con dos campos el primero puede variar cada vez que se entre en la pantalla, según ese valor el segundo campo tiene una opción de ayuda que creo dinámicamente dependiendo del valor del primer campo.

    Mi problema es que como al abrir la ayuda le pulsen a cerrar la ayuda sin seleccionar algún dato me casca el ALV, me da un error interno del ALV. Alguien sabe como puedo solucionar esto ????? Saludos y muchas graciar por leer este mensaje.....

    Err.tmpo.ejec. GETWA_NOT_ASSIGNED
    Fecha y hora 19.01.2012 17:59:59



    Texto breve
    Field symbol has not yet been assigned.



    ¿Qué ha sucedido?
    Error in the ABAP Application Program

    The current ABAP program "CL_ALV_CHANGED_DATA_PROTOCOL==CP" had to
    terminated because it has
    come across a statement that unfortunately cannot be executed.



    He usado esto:

    set handler i_event_receiver->handle_f4 for go_grid.

    "Registramos que campos tienen ayuda dinámica en el ALV de características.
    perform register_f4_fields_alv. "set cells with search help

    *&---------------------------------------------------------------------*
    *& Classes definition for tool bar push button
    *& "Para el primer ALV dynpro 2000
    *&---------------------------------------------------------------------*
    class lcl_event_receiver definition.

    public section.

    methods:

    handle_toolbar for event toolbar of cl_gui_alv_grid
    importing e_object e_interactive,

    handle_user_command for event user_command of cl_gui_alv_grid
    importing e_ucomm,

    handle_double_click for event double_click of cl_gui_alv_grid
    importing e_row e_column,

    handle_hotspot_click for event hotspot_click of cl_gui_alv_grid
    importing e_row_id e_column_id es_row_no,

    handle_data_changed for event data_changed of cl_gui_alv_grid
    importing er_data_changed,

    handle_f4 for event onf4 of cl_gui_alv_grid
    importing e_fieldname e_fieldvalue es_row_no
    er_event_data et_bad_cells e_display.

    endclass. "lcl_event_receiver DEFINITION

    "Ayuda de búsqueda
    method handle_f4.

    perform handle_onf4_elemento using e_fieldname e_fieldvalue es_row_no
    er_event_data et_bad_cells e_display.

    er_event_data->m_event_handled = 'X'.

    endmethod. "handle_f4

    *&---------------------------------------------------------------------*
    *& Form Register_f4_fields
    *&---------------------------------------------------------------------*
    * Vamos a rellenar la ayuda que le corresponde al campo
    *&---------------------------------------------------------------------*
    form handle_onf4_elemento using e_fieldname
    e_fieldvalue
    es_row_no type lvc_s_roid
    er_event_data type ref to cl_alv_event_data
    et_bad_cells
    e_display.
    *
    field-symbols: <lt_f4> type lvc_t_modi.
    data: ls_f4 type lvc_s_modi.

    case e_fieldname. "read changed cell

    when 'ELEMENTO'.

    clear: it_elemento, it_return_tab2. refresh: it_elemento, it_return_tab2.

    clear g_caracteristicas.
    read table g_caracteristicas index es_row_no-row_id.

    clear zdw_par_cartel.
    select * into corresponding fields of table it_elemento
    from zdw_par_cartel where caracteristica = g_caracteristicas-caracteristica.

    * here must be the code to fill in the possible values table
    * and the call to fm F4IF_INT_TABLE_VALUE_REQUEST

    call function 'F4IF_INT_TABLE_VALUE_REQUEST'
    exporting
    retfield = 'ELEMENTO'
    value_org = 'S'
    tables
    value_tab = it_elemento
    return_tab = it_return_tab2
    exceptions
    parameter_error = 1
    no_values_found = 2
    others = 3.

    if sy-subrc = 0 and it_return_tab2-fieldval <> ''.
    assign er_event_data->m_data->* to <lt_f4>.
    ls_f4-fieldname = e_fieldname.
    ls_f4-row_id = es_row_no-row_id.
    ls_f4-value = it_return_tab2-fieldval.
    append ls_f4 to <lt_f4>.
    endif.

    endcase.

    endform. "HANDLE_ONF4
Trabajando...
X