#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
Hola.
Me suena a que tu field-symbols <lt_f4> no está asignado y al hacer el append casca. Prueba a chequear antes. IF <lt_f4> IS ASSIGNED. ... else. ... endif. Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|